@@ -84,11 +84,12 @@ class LessonsPresenterTest {
8484 private val settings: Settings = mockk {
8585 every { appLanguageFlow } returns appLangFlow
8686 }
87+ private val lessonsFlowProducer: LessonsFlowProducer = mockk {
88+ every { getFlow(any(), any()) } returns flowOf(emptyList())
89+ every { getFlow(any(), Locale .ENGLISH ) } returns enLessonsFlow
90+ }
8791 private val toolsRepository: ToolsRepository = mockk {
8892 every { getLessonsFlow() } returns lessonsFlow
89-
90- every { getLessonsFlowByLanguage(any()) } returns flowOf(emptyList())
91- every { getLessonsFlowByLanguage(Locale .ENGLISH ) } returns enLessonsFlow
9293 }
9394 private val translationsRepository: TranslationsRepository = mockk {
9495 every { getTranslationsFlowForTools(any()) } returns translationsFlow
@@ -101,6 +102,7 @@ class LessonsPresenterTest {
101102 context = context,
102103 eventBus = eventBus,
103104 languagesRepository = languagesRepository,
105+ lessonsFlowProducer = lessonsFlowProducer,
104106 remoteConfig = remoteConfig,
105107 settings = settings,
106108 toolCardPresenter = FakeToolCardPresenter (),
@@ -337,8 +339,6 @@ class LessonsPresenterTest {
337339 // region State.languageFilter Event.SelectItem
338340 @Test
339341 fun `State - languageFilter - Event - SelectItem` () = testScope.runTest {
340- every { toolsRepository.getLessonsFlowByLanguage(any()) } returns flowOf(emptyList())
341-
342342 presenter.test {
343343 expectMostRecentItem().languageFilter
344344 .also { assertEquals(appLangFlow.value, it.selectedItem?.code) }
@@ -352,35 +352,7 @@ class LessonsPresenterTest {
352352 // region State.lessons
353353 @Test
354354 fun `State - lessons` () = testScope.runTest {
355- enLessonsFlow.value = listOf (
356- randomTool(" lesson1" , isHidden = false , defaultOrder = 0 ),
357- randomTool(" lesson2" , isHidden = false , defaultOrder = 1 ),
358- )
359-
360- presenter.test {
361- assertEquals(listOf (" lesson1" , " lesson2" ), expectMostRecentItem().lessons.map { it.toolCode })
362- }
363- }
364-
365- @Test
366- fun `State - lessons - hide hidden lessons` () = testScope.runTest {
367- enLessonsFlow.value = listOf (
368- randomTool(" lesson1" , isHidden = false , defaultOrder = 0 ),
369- randomTool(" lesson2" , isHidden = true , defaultOrder = 1 ),
370- randomTool(" lesson3" , isHidden = false , defaultOrder = 2 ),
371- )
372-
373- presenter.test {
374- assertEquals(listOf (" lesson1" , " lesson3" ), expectMostRecentItem().lessons.map { it.toolCode })
375- }
376- }
377-
378- @Test
379- fun `State - lessons - sorted by defaultOrder` () = testScope.runTest {
380- enLessonsFlow.value = listOf (
381- randomTool(" lesson2" , isHidden = false , defaultOrder = 1 ),
382- randomTool(" lesson1" , isHidden = false , defaultOrder = 0 ),
383- )
355+ enLessonsFlow.value = listOf (randomTool(" lesson1" ), randomTool(" lesson2" ))
384356
385357 presenter.test {
386358 assertEquals(listOf (" lesson1" , " lesson2" ), expectMostRecentItem().lessons.map { it.toolCode })
@@ -389,27 +361,39 @@ class LessonsPresenterTest {
389361
390362 @Test
391363 fun `State - lessons - Filtered by selected language` () = testScope.runTest {
392- every { toolsRepository.getLessonsFlowByLanguage(Locale .FRENCH ) }
393- .returns(flowOf(listOf (randomTool(" lesson" , isHidden = false ))))
364+ every { lessonsFlowProducer.getFlow(any(), Locale .FRENCH ) } returns flowOf(listOf (randomTool(" lesson" )))
394365
395366 presenter.test {
396367 with (expectMostRecentItem()) {
397368 assertEquals(emptyList(), lessons)
398- verify(exactly = 0 ) { toolsRepository.getLessonsFlowByLanguage( Locale .FRENCH ) }
369+ verify(exactly = 0 ) { lessonsFlowProducer.getFlow(any(), Locale .FRENCH ) }
399370
400371 languageFilter.eventSink(FilterMenu .Event .SelectItem (Language (Locale .FRENCH )))
401372 }
402373
403374 assertEquals(listOf (" lesson" ), expectMostRecentItem().lessons.map { it.toolCode })
404- verify { toolsRepository.getLessonsFlowByLanguage(Locale .FRENCH ) }
375+ verify { lessonsFlowProducer.getFlow(any(), Locale .FRENCH ) }
376+ }
377+ }
378+
379+ @Test
380+ fun `State - lessons - passes mode to lessonsFlowProducer` () = testScope.runTest {
381+ presenter.test {
382+ val state = expectMostRecentItem()
383+ assertEquals(UiState .Mode .PERSONALIZATION , state.mode)
384+ verify { lessonsFlowProducer.getFlow(UiState .Mode .PERSONALIZATION , any()) }
385+
386+ state.eventSink(UiEvent .ChangeMode (UiState .Mode .ALL_LESSONS ))
387+ awaitItem()
388+ verify { lessonsFlowProducer.getFlow(UiState .Mode .ALL_LESSONS , any()) }
405389 }
406390 }
407391
408392 @Test
409393 fun `State - lessons - Event - Click` () = testScope.runTest {
410394 enLessonsFlow.value = listOf (
411- randomTool(" lesson1" , isHidden = false , defaultOrder = 0 ),
412- randomTool(" lesson2" , type = Tool .Type .LESSON , isHidden = false , defaultOrder = 1 ),
395+ randomTool(" lesson1" ),
396+ randomTool(" lesson2" , type = Tool .Type .LESSON ),
413397 )
414398
415399 presenter.test {
0 commit comments