takahirom/roborazzi (io.github.takahirom.roborazzi)
### [`v1.34.0`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.34.0)
[Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.33.0...1.34.0)
#### Stabilize RoborazziOptions and RoborazziRule.Options
RoborazziOptions and RoborazziRule.Options were not annotated with `ExperimentalRoborazziApi`, but their constructor parameters had the annotation. This caused `ExperimentalRoborazziApi` to be unintentionally exposed. To address this, we have separated constructors for stable parameters. Additionally, within Roborazzi samples, we have enabled `allWarningsAsErrors = true` to ensure that any unexpected exposure can be promptly identified.
Thank you for reporting this issue and for your code review, [@ZacSweers](https://redirect.github.com/ZacSweers)!
#### Fixes for Accessibility Checks
We introduced [Experimental Accessibility Test Framework checks](https://redirect.github.com/takahirom/roborazzi/tree/main/roborazzi-accessibility-check) in [version 1.33.0](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.33.0).\
Thanks to [@yschimke](https://redirect.github.com/yschimke)'s contribution, several fixes have been implemented for accessibility checks, including check suppression and improved logging.
#### What's Changed
- Update accessibility sample to show presets by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/562](https://redirect.github.com/takahirom/roborazzi/pull/562)
- Log warnings when Accessibility checks not configured correctly by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/572](https://redirect.github.com/takahirom/roborazzi/pull/572)
- Fix: Restore Robolectric fingerprint after accessibility checks by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/574](https://redirect.github.com/takahirom/roborazzi/pull/574)
- \[Idea Plugin] Fix wrong variable naming in Roborazzi IntelliJ Plugin by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/571](https://redirect.github.com/takahirom/roborazzi/pull/571)
- Apply suppressions to AccessibilityViewCheckResult instead of filtering by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/573](https://redirect.github.com/takahirom/roborazzi/pull/573)
- Fix the issue where the experimental annotation was exposed when using stable APIs in Roborazzi options by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/566](https://redirect.github.com/takahirom/roborazzi/pull/566)
**Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.33.0...1.34.0
### [`v1.33.0`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.33.0)
[Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.32.2...1.33.0)
##### Experimental Accessibility Test Framework checks
Thanks to [@yschimke](https://redirect.github.com/yschimke)'s contribution, we now have a library that integrates accessibility checks into Roborazzi. It uses the [Accessibility Test Framework](https://redirect.github.com/google/Accessibility-Test-Framework-for-Android) to ensure accessibility.
Please add the library dependency:
```kotlin
testImplementation("io.github.takahirom.roborazzi:roborazzi-accessibility-check:[version]")
```
https://github.com/takahirom/roborazzi/tree/main/roborazzi-accessibility-check
##### Configure in Junit Rule
```kotlin
@get:Rule
val roborazziRule = RoborazziRule(
composeRule = composeTestRule,
captureRoot = composeTestRule.onRoot(),
options = Options(
roborazziAccessibilityOptions = RoborazziATFAccessibilityCheckOptions(
checker = RoborazziATFAccessibilityChecker(
checks = setOf(NoRedTextCheck()),
suppressions = matchesElements(withTestTag("suppress"))
),
failureLevel = RoborazziATFAccessibilityChecker.CheckLevel.Warning
),
// If you want to automatically check accessibility after a test, use AccessibilityCheckAfterTestStrategy.
accessibilityCheckStrategy = AccessibilityCheckAfterTestStrategy(),
)
)
```
##### Add accessibility checks
```kotlin
composeTestRule.onNodeWithTag("nothard").checkRoboAccessibility(
// If you don't specify options, the options in RoborazziRule will be used.
roborazziATFAccessibilityCheckOptions = RoborazziATFAccessibilityCheckOptions(
checker = RoborazziATFAccessibilityChecker(
preset = AccessibilityCheckPreset.LATEST,
),
failureLevel = RoborazziATFAccessibilityChecker.CheckLevel.Warning
)
)
```
Not only is this library designed to make our app accessible to everyone, but I also believe that AI agent testing will be a future trend, and we want to prepare for it. I think this could help make our app accessible to AI as well, enabling agents to interact with it, such as clicking on image buttons using content descriptions. Additionally, we can create custom checks, like NoRedTextCheck, specifically for AI.
##### What's Changed
- Include AI assertion results in the Roborazzi test report by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/552](https://redirect.github.com/takahirom/roborazzi/pull/552)
- Add modules and configurations to dependency diff by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/558](https://redirect.github.com/takahirom/roborazzi/pull/558)
- Update Robolectric 4.14 by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/426](https://redirect.github.com/takahirom/roborazzi/pull/426)
- Add basic ATF A11y checks via AccessibilityCheckAfterTestStrategy and checkRoboAccessibility by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/557](https://redirect.github.com/takahirom/roborazzi/pull/557)
- \[Dependency for sample in Roborazzi, Not a library dependency change]Update dependency androidx.compose.foundation:foundation to v1.7.5 by [@renovate](https://redirect.github.com/renovate) in [https://github.com/takahirom/roborazzi/pull/520](https://redirect.github.com/takahirom/roborazzi/pull/520)
**Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.32.2...1.33.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "every 4 hour after 00:00 and before 23:59 every day" in timezone Asia/Tokyo.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.32.2
->1.34.0
1.32.2
->1.34.0
1.32.2
->1.34.0
1.32.2
->1.34.0
1.32.2
->1.33.0
Release Notes
takahirom/roborazzi (io.github.takahirom.roborazzi)
### [`v1.34.0`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.34.0) [Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.33.0...1.34.0) #### Stabilize RoborazziOptions and RoborazziRule.Options RoborazziOptions and RoborazziRule.Options were not annotated with `ExperimentalRoborazziApi`, but their constructor parameters had the annotation. This caused `ExperimentalRoborazziApi` to be unintentionally exposed. To address this, we have separated constructors for stable parameters. Additionally, within Roborazzi samples, we have enabled `allWarningsAsErrors = true` to ensure that any unexpected exposure can be promptly identified. Thank you for reporting this issue and for your code review, [@ZacSweers](https://redirect.github.com/ZacSweers)! #### Fixes for Accessibility Checks We introduced [Experimental Accessibility Test Framework checks](https://redirect.github.com/takahirom/roborazzi/tree/main/roborazzi-accessibility-check) in [version 1.33.0](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.33.0).\ Thanks to [@yschimke](https://redirect.github.com/yschimke)'s contribution, several fixes have been implemented for accessibility checks, including check suppression and improved logging. #### What's Changed - Update accessibility sample to show presets by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/562](https://redirect.github.com/takahirom/roborazzi/pull/562) - Log warnings when Accessibility checks not configured correctly by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/572](https://redirect.github.com/takahirom/roborazzi/pull/572) - Fix: Restore Robolectric fingerprint after accessibility checks by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/574](https://redirect.github.com/takahirom/roborazzi/pull/574) - \[Idea Plugin] Fix wrong variable naming in Roborazzi IntelliJ Plugin by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/571](https://redirect.github.com/takahirom/roborazzi/pull/571) - Apply suppressions to AccessibilityViewCheckResult instead of filtering by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/573](https://redirect.github.com/takahirom/roborazzi/pull/573) - Fix the issue where the experimental annotation was exposed when using stable APIs in Roborazzi options by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/566](https://redirect.github.com/takahirom/roborazzi/pull/566) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.33.0...1.34.0 ### [`v1.33.0`](https://redirect.github.com/takahirom/roborazzi/releases/tag/1.33.0) [Compare Source](https://redirect.github.com/takahirom/roborazzi/compare/1.32.2...1.33.0) ##### Experimental Accessibility Test Framework checks Thanks to [@yschimke](https://redirect.github.com/yschimke)'s contribution, we now have a library that integrates accessibility checks into Roborazzi. It uses the [Accessibility Test Framework](https://redirect.github.com/google/Accessibility-Test-Framework-for-Android) to ensure accessibility. Please add the library dependency: ```kotlin testImplementation("io.github.takahirom.roborazzi:roborazzi-accessibility-check:[version]") ``` https://github.com/takahirom/roborazzi/tree/main/roborazzi-accessibility-check ##### Configure in Junit Rule ```kotlin @get:Rule val roborazziRule = RoborazziRule( composeRule = composeTestRule, captureRoot = composeTestRule.onRoot(), options = Options( roborazziAccessibilityOptions = RoborazziATFAccessibilityCheckOptions( checker = RoborazziATFAccessibilityChecker( checks = setOf(NoRedTextCheck()), suppressions = matchesElements(withTestTag("suppress")) ), failureLevel = RoborazziATFAccessibilityChecker.CheckLevel.Warning ), // If you want to automatically check accessibility after a test, use AccessibilityCheckAfterTestStrategy. accessibilityCheckStrategy = AccessibilityCheckAfterTestStrategy(), ) ) ``` ##### Add accessibility checks ```kotlin composeTestRule.onNodeWithTag("nothard").checkRoboAccessibility( // If you don't specify options, the options in RoborazziRule will be used. roborazziATFAccessibilityCheckOptions = RoborazziATFAccessibilityCheckOptions( checker = RoborazziATFAccessibilityChecker( preset = AccessibilityCheckPreset.LATEST, ), failureLevel = RoborazziATFAccessibilityChecker.CheckLevel.Warning ) ) ``` Not only is this library designed to make our app accessible to everyone, but I also believe that AI agent testing will be a future trend, and we want to prepare for it. I think this could help make our app accessible to AI as well, enabling agents to interact with it, such as clicking on image buttons using content descriptions. Additionally, we can create custom checks, like NoRedTextCheck, specifically for AI. ##### What's Changed - Include AI assertion results in the Roborazzi test report by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/552](https://redirect.github.com/takahirom/roborazzi/pull/552) - Add modules and configurations to dependency diff by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/558](https://redirect.github.com/takahirom/roborazzi/pull/558) - Update Robolectric 4.14 by [@takahirom](https://redirect.github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/426](https://redirect.github.com/takahirom/roborazzi/pull/426) - Add basic ATF A11y checks via AccessibilityCheckAfterTestStrategy and checkRoboAccessibility by [@yschimke](https://redirect.github.com/yschimke) in [https://github.com/takahirom/roborazzi/pull/557](https://redirect.github.com/takahirom/roborazzi/pull/557) - \[Dependency for sample in Roborazzi, Not a library dependency change]Update dependency androidx.compose.foundation:foundation to v1.7.5 by [@renovate](https://redirect.github.com/renovate) in [https://github.com/takahirom/roborazzi/pull/520](https://redirect.github.com/takahirom/roborazzi/pull/520) **Full Changelog**: https://github.com/takahirom/roborazzi/compare/1.32.2...1.33.0Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "every 4 hour after 00:00 and before 23:59 every day" in timezone Asia/Tokyo.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.