Skip to content

Commit 4f27c18

Browse files
committed
Change order of exceptions
1 parent 0849597 commit 4f27c18

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

core/screenshot-testing/src/main/kotlin/com/google/samples/apps/nowinandroid/core/testing/util/ScreenshotHelper.kt

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import androidx.compose.ui.test.DarkMode
3131
import androidx.compose.ui.test.DeviceConfigurationOverride
3232
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
3333
import androidx.compose.ui.test.onRoot
34-
import androidx.compose.ui.test.printToString
3534
import androidx.test.ext.junit.rules.ActivityScenarioRule
3635
import com.github.takahirom.roborazzi.ExperimentalRoborazziApi
3736
import com.github.takahirom.roborazzi.RoborazziATFAccessibilityCheckOptions
@@ -44,6 +43,7 @@ import com.github.takahirom.roborazzi.captureRoboImage
4443
import com.github.takahirom.roborazzi.checkRoboAccessibility
4544
import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckPreset
4645
import com.google.android.apps.common.testing.accessibility.framework.AccessibilityViewCheckResult
46+
import com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityViewCheckException
4747
import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme
4848
import org.hamcrest.Matcher
4949
import org.hamcrest.Matchers
@@ -62,14 +62,19 @@ enum class DefaultTestDevices(val description: String, val spec: String) {
6262
FOLDABLE("foldable", "spec:shape=Normal,width=673,height=841,unit=dp,dpi=480"),
6363
TABLET("tablet", "spec:shape=Normal,width=1280,height=800,unit=dp,dpi=480"),
6464
}
65-
6665
fun <A : ComponentActivity> AndroidComposeTestRule<ActivityScenarioRule<A>, A>.captureMultiDevice(
6766
screenshotName: String,
6867
accessibilitySuppressions: Matcher<in AccessibilityViewCheckResult> = Matchers.not(Matchers.anything()),
6968
body: @Composable () -> Unit,
7069
) {
71-
listOf(DefaultTestDevices.FOLDABLE).forEach {
72-
this.captureForDevice(it.description, it.spec, screenshotName, body = body, accessibilitySuppressions = accessibilitySuppressions)
70+
DefaultTestDevices.entries.forEach {
71+
this.captureForDevice(
72+
deviceName = it.description,
73+
deviceSpec = it.spec,
74+
screenshotName = screenshotName,
75+
body = body,
76+
accessibilitySuppressions = accessibilitySuppressions,
77+
)
7378
}
7479
}
7580

@@ -98,20 +103,33 @@ fun <A : ComponentActivity> AndroidComposeTestRule<ActivityScenarioRule<A>, A>.c
98103
}
99104
}
100105
}
106+
107+
// Run Accessibility checks first so logging is included
108+
val accessibilityException = try {
109+
this.onRoot().checkRoboAccessibility(
110+
roborazziATFAccessibilityCheckOptions = RoborazziATFAccessibilityCheckOptions(
111+
failureLevel = CheckLevel.Warning,
112+
checker = RoborazziATFAccessibilityChecker(
113+
preset = AccessibilityCheckPreset.LATEST,
114+
suppressions = accessibilitySuppressions
115+
),
116+
),
117+
)
118+
null
119+
} catch (e: AccessibilityViewCheckException) {
120+
e
121+
}
122+
101123
this.onRoot()
102124
.captureRoboImage(
103125
"src/test/screenshots/${screenshotName}_$deviceName.png",
104126
roborazziOptions = roborazziOptions,
105127
)
106-
this.onRoot().checkRoboAccessibility(
107-
roborazziATFAccessibilityCheckOptions = RoborazziATFAccessibilityCheckOptions(
108-
failureLevel = CheckLevel.Warning,
109-
checker = RoborazziATFAccessibilityChecker(
110-
preset = AccessibilityCheckPreset.LATEST,
111-
suppressions = accessibilitySuppressions
112-
),
113-
),
114-
)
128+
129+
// Rethrow the Accessibility exception once screenshots have passed
130+
if (accessibilityException != null) {
131+
throw accessibilityException
132+
}
115133
}
116134

117135
/**

feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTests.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ class ForYouScreenScreenshotTests {
5858
/**
5959
* Use a test activity to set the content on.
6060
*/
61-
@get:Rule val composeTestRule = createAndroidComposeRule<ComponentActivity>()
61+
@get:Rule
62+
val composeTestRule = createAndroidComposeRule<ComponentActivity>()
6263

6364
private val userNewsResources = UserNewsResourcePreviewParameterProvider().values.first()
6465

0 commit comments

Comments
 (0)