@@ -8,10 +8,15 @@ import org.junit.Test
88import org.mockito.Mock
99import org.mockito.kotlin.any
1010import org.mockito.kotlin.anyOrNull
11+ import org.mockito.kotlin.doAnswer
1112import org.mockito.kotlin.mock
13+ import org.mockito.kotlin.times
14+ import org.mockito.kotlin.verify
1215import org.mockito.kotlin.whenever
1316import org.wordpress.android.BaseUnitTest
1417import org.wordpress.android.fluxc.Dispatcher
18+ import org.wordpress.android.fluxc.action.EditorThemeAction
19+ import org.wordpress.android.fluxc.annotations.action.Action
1520import org.wordpress.android.fluxc.model.AccountModel
1621import org.wordpress.android.fluxc.model.LocalOrRemoteId.LocalId
1722import org.wordpress.android.fluxc.model.PostModel
@@ -20,6 +25,7 @@ import org.wordpress.android.fluxc.model.page.PageModel
2025import org.wordpress.android.fluxc.model.page.PageStatus
2126import org.wordpress.android.fluxc.model.post.PostStatus
2227import org.wordpress.android.fluxc.store.AccountStore
28+ import org.wordpress.android.fluxc.store.EditorThemeStore
2329import org.wordpress.android.fluxc.store.MediaStore
2430import org.wordpress.android.ui.pages.PageItem
2531import org.wordpress.android.ui.pages.PageItem.Divider
@@ -30,6 +36,7 @@ import org.wordpress.android.ui.posts.AuthorFilterSelection
3036import org.wordpress.android.ui.posts.AuthorFilterSelection.EVERYONE
3137import org.wordpress.android.ui.posts.AuthorFilterSelection.ME
3238import org.wordpress.android.util.LocaleManagerWrapper
39+ import org.wordpress.android.util.config.GlobalStyleSupportFeatureConfig
3340import org.wordpress.android.viewmodel.pages.PageListViewModel.PageListState
3441import org.wordpress.android.viewmodel.pages.PageListViewModel.PageListType.PUBLISHED
3542import org.wordpress.android.viewmodel.pages.PostModelUploadUiStateUseCase.PostUploadUiState
@@ -68,9 +75,16 @@ class PageListViewModelTest : BaseUnitTest() {
6875 @Mock
6976 lateinit var accountStore: AccountStore
7077
78+ @Mock
79+ lateinit var globalStyleSupportFeatureConfig: GlobalStyleSupportFeatureConfig
80+
81+ @Mock
82+ lateinit var editorThemeStore: EditorThemeStore
83+
7184 private lateinit var viewModel: PageListViewModel
7285 private val site = SiteModel ()
7386 private val pageListState = MutableLiveData <PageListState >()
87+ private lateinit var actions: MutableList <Action <* >>
7488
7589 @Before
7690 fun setUp () {
@@ -83,7 +97,9 @@ class PageListViewModelTest : BaseUnitTest() {
8397 dispatcher,
8498 localeManagerWrapper,
8599 accountStore,
86- testDispatcher()
100+ testDispatcher(),
101+ globalStyleSupportFeatureConfig,
102+ editorThemeStore,
87103 )
88104
89105 whenever(pageItemProgressUiStateUseCase.getProgressStateForPage(any())).thenReturn(
@@ -115,6 +131,11 @@ class PageListViewModelTest : BaseUnitTest() {
115131
116132 val blazeSiteEligibility = MutableLiveData <Boolean >()
117133 whenever(pagesViewModel.blazeSiteEligibility).thenReturn(blazeSiteEligibility)
134+
135+ doAnswer {
136+ actions.add(it.getArgument(0 ))
137+ }.whenever(dispatcher).dispatch(any())
138+ actions = mutableListOf ()
118139 }
119140
120141 @Test
@@ -475,6 +496,22 @@ class PageListViewModelTest : BaseUnitTest() {
475496 assertThat(pageItem.author).isNull()
476497 }
477498
499+ @Test
500+ fun `Should refresh EditorTheme when start is called the first time` () {
501+ val pages = MutableLiveData <List <PageModel >>()
502+ whenever(pagesViewModel.pages).thenReturn(pages)
503+ viewModel.start(PUBLISHED , pagesViewModel)
504+ assertThat(actions.last().type).isEqualTo(EditorThemeAction .FETCH_EDITOR_THEME )
505+ }
506+
507+ @Test
508+ fun `Should call EditorThemeStore getIsBlockBasedTheme when start is called the first time` () {
509+ val pages = MutableLiveData <List <PageModel >>()
510+ whenever(pagesViewModel.pages).thenReturn(pages)
511+ viewModel.start(PUBLISHED , pagesViewModel)
512+ verify(editorThemeStore).getIsBlockBasedTheme(site)
513+ }
514+
478515 private fun buildPageModel (
479516 id : Int ,
480517 date : Date = Date (0),
0 commit comments