Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performScrollTo
import androidx.navigation.compose.rememberNavController
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.instructure.horizon.R
import com.instructure.horizon.features.dashboard.DashboardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardButtonRoute
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardHeaderState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardState
import com.instructure.horizon.features.dashboard.widget.course.DashboardCourseSection
Expand All @@ -32,6 +34,7 @@ import com.instructure.horizon.features.dashboard.widget.course.card.CardClickAc
import com.instructure.horizon.features.dashboard.widget.course.card.DashboardCourseCardModuleItemState
import com.instructure.horizon.features.dashboard.widget.course.card.DashboardCourseCardParentProgramState
import com.instructure.horizon.features.dashboard.widget.course.card.DashboardCourseCardState
import com.instructure.horizon.horizonui.foundation.HorizonColors
import com.instructure.horizon.model.LearningObjectType
import org.junit.Rule
import org.junit.Test
Expand All @@ -50,6 +53,11 @@ class HorizonDashboardCourseSectionUiTest {
programs = DashboardPaginatedWidgetCardState(
listOf(
DashboardPaginatedWidgetCardItemState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Program",
color = HorizonColors.Surface.institution().copy(0.1f),
iconRes = R.drawable.book_2
),
title = "Program 1",
route = DashboardPaginatedWidgetCardButtonRoute.HomeRoute("")
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
*/
package com.instructure.horizon.ui.features.dashboard.widget.announcement

import androidx.compose.ui.test.assertHasClickAction
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onAllNodesWithText
import androidx.compose.ui.test.onFirst
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.navigation.compose.rememberNavController
Expand All @@ -27,12 +28,12 @@ import androidx.test.platform.app.InstrumentationRegistry
import com.instructure.horizon.R
import com.instructure.horizon.features.dashboard.DashboardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardButtonRoute
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardChipState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardHeaderState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardPaginatedWidgetCardState
import com.instructure.horizon.features.dashboard.widget.announcement.DashboardAnnouncementBannerSection
import com.instructure.horizon.features.dashboard.widget.announcement.DashboardAnnouncementBannerUiState
import com.instructure.horizon.horizonui.molecules.StatusChipColor
import com.instructure.horizon.horizonui.foundation.HorizonColors
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
Expand Down Expand Up @@ -77,9 +78,8 @@ class DashboardAnnouncementBannerWidgetUiTest {
val errorMessage = context.getString(R.string.dashboardAnnouncementBannerErrorMessage)

composeTestRule.onNodeWithText(errorMessage, substring = true).assertIsDisplayed()
composeTestRule.onNodeWithText("Refresh")
composeTestRule.onNodeWithText("Refresh", useUnmergedTree = true)
.assertIsDisplayed()
.assertHasClickAction()
.performClick()

assert(refreshCalled) { "Refresh callback should be called when retry button is clicked" }
Expand All @@ -88,9 +88,10 @@ class DashboardAnnouncementBannerWidgetUiTest {
@Test
fun testSuccessStateWithSingleAnnouncementDisplaysCorrectly() {
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "Important Announcement",
source = "Course Name",
Expand Down Expand Up @@ -122,21 +123,21 @@ class DashboardAnnouncementBannerWidgetUiTest {
fun testSuccessStateWithMultipleAnnouncementsDisplaysAllItems() {
val announcements = listOf(
DashboardPaginatedWidgetCardItemState(
pageState = "1 of 2",
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "First Announcement",
source = "Course 1",
date = Date(),
route = DashboardPaginatedWidgetCardButtonRoute.MainRoute("")
),
DashboardPaginatedWidgetCardItemState(
pageState = "2 of 2",
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "Second Announcement",
source = "Course 2",
Expand All @@ -156,19 +157,18 @@ class DashboardAnnouncementBannerWidgetUiTest {
}

composeTestRule.onNodeWithText("First Announcement").assertIsDisplayed()
composeTestRule.onNodeWithText(
context.getString(R.string.dashboardAnnouncementBannerFrom, "Course 1")
).assertIsDisplayed()
composeTestRule.onNodeWithText(context.getString(R.string.dashboardAnnouncementBannerFrom, "Course 1")).assertIsDisplayed()

composeTestRule.onNodeWithText("1 of 2", useUnmergedTree = true).assertIsDisplayed()
composeTestRule.onAllNodesWithText("1 of 2").onFirst().assertIsDisplayed()
}

@Test
fun testSuccessStateWithGlobalAnnouncementWithoutSource() {
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "Global Announcement",
source = null,
Expand All @@ -195,9 +195,10 @@ class DashboardAnnouncementBannerWidgetUiTest {
@Test
fun testSuccessStateAnnouncementIsClickable() {
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "Test Announcement",
source = "Test Course",
Expand All @@ -224,9 +225,10 @@ class DashboardAnnouncementBannerWidgetUiTest {
fun testSuccessStateDisplaysDateCorrectly() {
val testDate = Date(1704067200000L)
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "Dated Announcement",
source = "Test Course",
Expand All @@ -250,9 +252,10 @@ class DashboardAnnouncementBannerWidgetUiTest {
@Test
fun testSuccessStateWithAnnouncementWithoutDate() {
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = "No Date Announcement",
source = "Test Course",
Expand All @@ -277,9 +280,10 @@ class DashboardAnnouncementBannerWidgetUiTest {
fun testSuccessStateWithLongAnnouncementTitle() {
val longTitle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. This is a very long announcement title that should be displayed properly in the widget."
val testAnnouncement = DashboardPaginatedWidgetCardItemState(
chipState = DashboardPaginatedWidgetCardChipState(
headerState = DashboardPaginatedWidgetCardHeaderState(
label = "Announcement",
color = StatusChipColor.Sky
color = HorizonColors.Surface.institution().copy(alpha = 0.1f),
iconRes = R.drawable.campaign
),
title = longTitle,
source = "Test Course",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.instructure.horizon.features.dashboard.DashboardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardWidgetPageState
import com.instructure.horizon.features.dashboard.widget.myprogress.DashboardMyProgressSection
import com.instructure.horizon.features.dashboard.widget.myprogress.DashboardMyProgressUiState
import com.instructure.horizon.features.dashboard.widget.myprogress.card.DashboardMyProgressCardState
Expand All @@ -42,7 +43,7 @@ class DashboardMyProgressWidgetUiTest {
)

composeTestRule.setContent {
DashboardMyProgressSection(state)
DashboardMyProgressSection(state, DashboardWidgetPageState.Empty)
}

composeTestRule.waitForIdle()
Expand All @@ -60,7 +61,7 @@ class DashboardMyProgressWidgetUiTest {
)

composeTestRule.setContent {
DashboardMyProgressSection(state)
DashboardMyProgressSection(state, DashboardWidgetPageState.Empty)
}

composeTestRule.onNodeWithText("Activities").assertIsDisplayed()
Expand All @@ -85,7 +86,7 @@ class DashboardMyProgressWidgetUiTest {
)

composeTestRule.setContent {
DashboardMyProgressSection(state)
DashboardMyProgressSection(state, DashboardWidgetPageState.Empty)
}

composeTestRule.onNodeWithText("Activities").assertIsDisplayed()
Expand All @@ -105,7 +106,7 @@ class DashboardMyProgressWidgetUiTest {
)

composeTestRule.setContent {
DashboardMyProgressSection(state)
DashboardMyProgressSection(state, DashboardWidgetPageState.Empty)
}

composeTestRule.onNodeWithText("This widget will update once data becomes available.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.instructure.horizon.R
import com.instructure.horizon.features.dashboard.DashboardItemState
import com.instructure.horizon.features.dashboard.widget.DashboardWidgetPageState
import com.instructure.horizon.features.dashboard.widget.skilloverview.DashboardSkillOverviewSection
import com.instructure.horizon.features.dashboard.widget.skilloverview.DashboardSkillOverviewUiState
import com.instructure.horizon.features.dashboard.widget.skilloverview.card.DashboardSkillOverviewCardState
Expand All @@ -30,7 +31,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -45,7 +46,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -66,7 +67,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val retryLabel = context.getString(R.string.dashboardWidgetCardErrorRetry)
Expand All @@ -83,7 +84,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -101,7 +102,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -120,7 +121,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -139,7 +140,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand All @@ -158,7 +159,7 @@ class DashboardSkillOverviewWidgetUiTest {
)

composeTestRule.setContent {
DashboardSkillOverviewSection(uiState, rememberNavController())
DashboardSkillOverviewSection(uiState, DashboardWidgetPageState.Empty, rememberNavController())
}

val title = context.getString(R.string.dashboardSkillOverviewTitle)
Expand Down
Loading
Loading