Skip to content

Commit 32094e5

Browse files
frettclaude
andcommitted
Fold HomeLayout Paparazzi tests into DashboardLayoutPaparazziTest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent cc2fdb4 commit 32094e5

2 files changed

Lines changed: 62 additions & 116 deletions

File tree

app/src/testDebug/kotlin/org/cru/godtools/ui/dashboard/DashboardLayoutPaparazziTest.kt

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,17 @@ import kotlinx.coroutines.test.UnconfinedTestDispatcher
2727
import kotlinx.coroutines.test.resetMain
2828
import kotlinx.coroutines.test.setMain
2929
import org.cru.godtools.base.ui.BasePaparazziTest
30+
import org.cru.godtools.base.ui.circuit.screen.dashboard.page.HomeScreen
3031
import org.cru.godtools.base.ui.circuit.screen.dashboard.page.LessonsScreen
3132
import org.cru.godtools.base.ui.circuit.screen.dashboard.page.ToolsScreen
3233
import org.cru.godtools.model.Language
3334
import org.cru.godtools.model.Tool
3435
import org.cru.godtools.model.randomTool
36+
import org.cru.godtools.ui.banner.tutorial.TutorialFeaturesBannerPresenter
3537
import org.cru.godtools.ui.dashboard.DashboardPresenter.UiState
3638
import org.cru.godtools.ui.dashboard.filters.FilterMenu
39+
import org.cru.godtools.ui.dashboard.home.HomeLayout
40+
import org.cru.godtools.ui.dashboard.home.HomePresenter
3741
import org.cru.godtools.ui.dashboard.lessons.LessonsLayout
3842
import org.cru.godtools.ui.dashboard.lessons.LessonsPresenter
3943
import org.cru.godtools.ui.dashboard.tools.ToolFiltersStateProducer.Filters
@@ -188,6 +192,62 @@ class DashboardLayoutPaparazziTest(
188192
}
189193
// endregion ToolsLayout
190194

195+
// region HomeLayout
196+
private var homeState = HomePresenter.UiState(
197+
dataLoaded = true,
198+
spotlightLessons = listOf(
199+
ToolCardStateTestData.tool.copy(toolCode = "lesson", translation = null)
200+
),
201+
favoriteTools = listOf(
202+
ToolCardStateTestData.tool.copy(toolCode = "tool1", translation = null),
203+
ToolCardStateTestData.tool.copy(toolCode = "tool2", translation = null),
204+
ToolCardStateTestData.tool.copy(toolCode = "tool3", translation = null),
205+
ToolCardStateTestData.tool.copy(toolCode = "tool4", translation = null),
206+
ToolCardStateTestData.tool.copy(toolCode = "tool5", translation = null),
207+
),
208+
)
209+
210+
@Test
211+
fun `HomeLayout()`() {
212+
assumeTrue(locale == null)
213+
snapshotDashboardLayout(state.copy(initialPage = HomeScreen))
214+
}
215+
216+
@Test
217+
fun `HomeLayout() - Banner - Tutorial`() {
218+
assumeTrue(locale == null)
219+
homeState = homeState.copy(banner = TutorialFeaturesBannerPresenter.UiState())
220+
snapshotDashboardLayout(state.copy(initialPage = HomeScreen))
221+
}
222+
223+
@Test
224+
fun `HomeLayout() - Data Not Loaded`() {
225+
assumeTrue(
226+
"Only do a single screenshot since this is currently a blank screen",
227+
deviceConfig == DeviceConfig.NEXUS_5 &&
228+
locale == null &&
229+
nightMode == NightMode.NOTNIGHT &&
230+
accessibilityMode == AccessibilityMode.NO_ACCESSIBILITY
231+
)
232+
homeState = homeState.copy(dataLoaded = false, favoriteTools = emptyList())
233+
snapshotDashboardLayout(state.copy(initialPage = HomeScreen))
234+
}
235+
236+
@Test
237+
fun `HomeLayout() - No Spotlight Lessons`() {
238+
assumeTrue(locale == null)
239+
homeState = homeState.copy(spotlightLessons = emptyList())
240+
snapshotDashboardLayout(state.copy(initialPage = HomeScreen))
241+
}
242+
243+
@Test
244+
fun `HomeLayout() - No Favorites`() {
245+
assumeTrue(locale == null)
246+
homeState = homeState.copy(favoriteTools = emptyList())
247+
snapshotDashboardLayout(state.copy(initialPage = HomeScreen))
248+
}
249+
// endregion HomeLayout
250+
191251
// region LessonsLayout
192252
private val lessonsState = LessonsPresenter.UiState(
193253
languageFilter = FilterMenu.UiState(
@@ -209,6 +269,8 @@ class DashboardLayoutPaparazziTest(
209269
// endregion LessonsLayout
210270

211271
private val circuit = Circuit.Builder()
272+
.addPresenter<HomeScreen, HomePresenter.UiState> { _, _, _ -> presenterOf { homeState } }
273+
.addUi<HomeScreen, HomePresenter.UiState> { state, modifier -> HomeLayout(state, modifier) }
212274
.addPresenter<ToolsScreen, ToolsPresenter.UiState> { _, _, _ -> presenterOf { toolsState } }
213275
.addUi<ToolsScreen, ToolsPresenter.UiState> { state, modifier -> ToolsLayout(state, modifier) }
214276
.addPresenter<LessonsScreen, LessonsPresenter.UiState> { _, _, _ -> presenterOf { lessonsState } }

app/src/testDebug/kotlin/org/cru/godtools/ui/dashboard/home/HomeLayoutPaparazziTest.kt

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)