Update stories jump logic to match spec.

This commit is contained in:
Alex Hart
2022-09-26 14:20:50 -03:00
committed by Cody Henthorne
parent e8c10cd550
commit 931b9f8831
8 changed files with 96 additions and 82 deletions

View File

@@ -145,6 +145,24 @@ class StoryViewerPageViewModelTest {
testSubscriber.assertValueAt(0) { it.selectedPostIndex == 2 }
}
@Test
fun `Given no unread and jump to next unread enabled, when I goToNext, then I expect storyIndex to be size`() {
// GIVEN
val storyPosts = createStoryPosts(3) { true }
whenever(repository.getStoryPostsFor(any(), any())).thenReturn(Observable.just(storyPosts))
// WHEN
val testSubject = createTestSubject(isJumpForwardToUnviewed = true)
testScheduler.triggerActions()
testSubject.goToNextPost()
testScheduler.triggerActions()
// THEN
val testSubscriber = testSubject.state.test()
testSubscriber.assertValueAt(0) { it.selectedPostIndex == 3 }
}
@Test
fun `Given a single story, when I goToPrevious, then I expect storyIndex to be -1`() {
// GIVEN
@@ -163,11 +181,16 @@ class StoryViewerPageViewModelTest {
testSubscriber.assertValueAt(0) { it.selectedPostIndex == -1 }
}
private fun createTestSubject(): StoryViewerPageViewModel {
private fun createTestSubject(isJumpForwardToUnviewed: Boolean = false): StoryViewerPageViewModel {
return StoryViewerPageViewModel(
RecipientId.from(1),
-1L,
false,
StoryViewerPageArgs(
recipientId = RecipientId.from(1),
initialStoryId = -1L,
isOutgoingOnly = false,
isJumpForwardToUnviewed = isJumpForwardToUnviewed,
source = StoryViewerPageArgs.Source.UNKNOWN,
groupReplyStartPosition = -1
),
repository,
mock()
)