Conversation
Bumps the monthly-updates group with 13 updates: | Package | From | To | | --- | --- | --- | | [@playwright/test](https://github.com/microsoft/playwright) | `1.58.1` | `1.58.2` | | [appium-xcuitest-driver](https://github.com/appium/appium-xcuitest-driver) | `10.19.1` | `10.21.2` | | [dotenv](https://github.com/motdotla/dotenv) | `17.2.3` | `17.2.4` | | [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.2` | `10.0.1` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.2.0` | `25.2.3` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.54.0` | `8.55.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.54.0` | `8.55.0` | | [@wdio/types](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-types) | `9.23.3` | `9.24.0` | | [eslint](https://github.com/eslint/eslint) | `9.39.2` | `10.0.0` | | [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.4.0` | `5.5.0` | | [glob](https://github.com/isaacs/node-glob) | `13.0.1` | `13.0.2` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.54.0` | `8.55.0` | | [undici](https://github.com/nodejs/undici) | `7.20.0` | `7.21.0` | Updates `@playwright/test` from 1.58.1 to 1.58.2 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.58.1...v1.58.2) Updates `appium-xcuitest-driver` from 10.19.1 to 10.21.2 - [Release notes](https://github.com/appium/appium-xcuitest-driver/releases) - [Changelog](https://github.com/appium/appium-xcuitest-driver/blob/master/CHANGELOG.md) - [Commits](appium/appium-xcuitest-driver@v10.19.1...v10.21.2) Updates `dotenv` from 17.2.3 to 17.2.4 - [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md) - [Commits](https://github.com/motdotla/dotenv/commits) Updates `@eslint/js` from 9.39.2 to 10.0.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/commits/HEAD/packages/js) Updates `@types/node` from 25.2.0 to 25.2.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.54.0 to 8.55.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.54.0 to 8.55.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/parser) Updates `@wdio/types` from 9.23.3 to 9.24.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v9.24.0/packages/wdio-types) Updates `eslint` from 9.39.2 to 10.0.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.39.2...v10.0.0) Updates `eslint-plugin-perfectionist` from 5.4.0 to 5.5.0 - [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases) - [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md) - [Commits](azat-io/eslint-plugin-perfectionist@v5.4.0...v5.5.0) Updates `glob` from 13.0.1 to 13.0.2 - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v13.0.1...v13.0.2) Updates `typescript-eslint` from 8.54.0 to 8.55.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.55.0/packages/typescript-eslint) Updates `undici` from 7.20.0 to 7.21.0 - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v7.20.0...v7.21.0) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-version: 1.58.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: monthly-updates - dependency-name: appium-xcuitest-driver dependency-version: 10.21.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: dotenv dependency-version: 17.2.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: monthly-updates - dependency-name: "@eslint/js" dependency-version: 10.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: monthly-updates - dependency-name: "@types/node" dependency-version: 25.2.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: monthly-updates - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.55.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: "@typescript-eslint/parser" dependency-version: 8.55.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: "@wdio/types" dependency-version: 9.24.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: eslint dependency-version: 10.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: monthly-updates - dependency-name: eslint-plugin-perfectionist dependency-version: 5.5.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: glob dependency-version: 13.0.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: monthly-updates - dependency-name: typescript-eslint dependency-version: 8.55.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates - dependency-name: undici dependency-version: 7.21.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-updates ... Signed-off-by: dependabot[bot] <support@github.com>
this eliminates the `no-useless-assignment` and `preserve-caught-error` issues
…n/dev/monthly-updates-4280d6f00f chore(deps): bump the monthly-updates group with 13 updates
There was a problem hiding this comment.
Pull request overview
Updates the mobile regression test harness for the iOS 2.15.0 / Android 1.31.0 releases, adding new coverage (groups/community/admin actions) plus CI/workflow improvements (network targeting, emulator recovery) and locator/utility refactors.
Changes:
- Add/extend Playwright/Appium test coverage for groups (promote/kick/invite/delete/leave) and community moderation (ban/unban; linked-device flows).
- Introduce Android network targeting in CI, emulator recovery script, and improved reporting metadata (network target in Allure env).
- Refactor utilities/locators for message requests, permissions (notification/background), and scrolling/CTA handling.
Reviewed changes
Copilot reviewed 68 out of 70 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Bumps TS target to ES2022 to support newer JS features. |
| scripts/emulator_health.ts | Adds an adb-based emulator recovery tool for CI stability. |
| run/types/testing.ts | Expands locator/types unions for new UI coverage. |
| run/types/allure.ts | Adds new suites/steps (e.g., Ban/Unban, group actions) for reporting consistency. |
| run/types/DeviceWrapper.ts | Adds helper flows (message requests), adjusts scrolling and error handling behavior. |
| run/test/utils/restore_account.ts | Updates restore flow to include device identity and renamed permission handler. |
| run/test/utils/permissions.ts | Splits notification permissions handling and adds Android background permissions helper. |
| run/test/utils/open_app.ts | Adds cross-platform uninstall helper and minor typing adjustments. |
| run/test/utils/link_device.ts | Updates permission handler rename for linked-device setup. |
| run/test/utils/join_community.ts | Adds env-gated admin requirement helper for community moderation tests. |
| run/test/utils/handle_first_open.ts | Minor cleanup in first-open Photos handling. |
| run/test/utils/get_account_id.ts | Generalizes pubkey sorting across local and qa-seeder user types. |
| run/test/utils/create_contact.ts | Refactors message request acceptance into a DeviceWrapper helper. |
| run/test/utils/create_account.ts | Adds slow-mode/background permission options and documents state-pollution constraints. |
| run/test/utils/capabilities_ios.ts | Adjusts iOS Appium timeouts and disables animations via env. |
| run/test/utils/allure/allureHelpers.ts | Adds network target into report context/environment properties. |
| run/test/specs/user_actions_unblock_user.spec.ts | Adds iOS scroll workaround for hidden block/unblock option. |
| run/test/specs/user_actions_delete_contact_ucs.spec.ts | Uses the new MessageRequestItem locator for message request navigation. |
| run/test/specs/user_actions_create_contact.spec.ts | Uses DeviceWrapper message request helper to reduce duplication. |
| run/test/specs/user_actions_block_conversation_options.spec.ts | Adds iOS scroll workaround for hidden block option. |
| run/test/specs/slow_mode_background.spec.ts | Adds Android-only test verifying slow-mode background permissions modal flow and cleanup. |
| run/test/specs/message_requests_delete.spec.ts | Updates iOS swipe target to use MessageRequestItem selector. |
| run/test/specs/message_requests_decline.spec.ts | Replaces accessibility-id click with MessageRequestItem locator. |
| run/test/specs/message_requests_block.spec.ts | Replaces accessibility-id click with MessageRequestItem locator. |
| run/test/specs/message_requests_accept_text_reply.spec.ts | Replaces accessibility-id click with MessageRequestItem locator. |
| run/test/specs/message_requests_accept.spec.ts | Uses DeviceWrapper message request helper for accept flow. |
| run/test/specs/message_length.spec.ts | Splits iOS vs Android behavior (modal vs CTA) for length limit flows. |
| run/test/specs/message_community_invitation.spec.ts | Updates community join util import path. |
| run/test/specs/linked_group_leave.spec.ts | Adjusts linked-device leave-group verification logic. |
| run/test/specs/linked_device_restore_group.spec.ts | Updates restoreAccount call to include device identity. |
| run/test/specs/linked_device_community_ban.spec.ts | Adds linked-device ban/unban and ban+delete community moderation tests. |
| run/test/specs/linked_device_block_user.spec.ts | Improves linked-device assertions and adds iOS scroll workaround. |
| run/test/specs/group_tests_promote.spec.ts | Adds Android promote-to-admin test suite including linked flows and multi-select. |
| run/test/specs/group_tests_kick_member_messages.spec.ts | Adds Android-only “kick & delete messages” coverage. |
| run/test/specs/group_tests_kick_member.spec.ts | Refactors kick-member test with better assertions and Allure steps. |
| run/test/specs/group_tests_invite_contact_banner.spec.ts | Updates invite-contacts nav and asserts banner absence (both platforms). |
| run/test/specs/group_tests_edit_group_banner.spec.ts | Asserts latest release banner absence on edit group screen. |
| run/test/specs/group_tests_delete_group.spec.ts | Improves delete-group verification and adds Allure linkage. |
| run/test/specs/group_tests_create_group_banner.spec.ts | Asserts latest release banner absence on create group screen. |
| run/test/specs/group_tests_admin_leave_group.spec.ts | Adds Android-only tests for admin leave/delete constraints. |
| run/test/specs/group_tests_add_contact_nohistory.spec.ts | Adds invite-without-history flow and verifies no historic messages appear. |
| run/test/specs/group_tests_add_contact.spec.ts | Adds Android invite-with-history coverage and verifies historic messages appear. |
| run/test/specs/group_tests_add_accountid.spec.ts | Adds Android invite-by-account-id flow coverage. |
| run/test/specs/disappearing_community_invite.spec.ts | Adjusts back-navigation differences between platforms. |
| run/test/specs/community_tests_join.spec.ts | Updates community join util import path. |
| run/test/specs/community_tests_image.spec.ts | Updates community join util import path. |
| run/test/specs/community_requests_on.spec.ts | Updates community join util import and message request navigation. |
| run/test/specs/community_requests_off.spec.ts | Updates community join util import path. |
| run/test/specs/community_emoji_react.spec.ts | Updates community join util import path. |
| run/test/specs/community_ban.spec.ts | Adds community ban/unban and ban+delete coverage. |
| run/test/specs/app_disguise_set.spec.ts | Uses uninstallApp helper for cleanup and fixes step naming. |
| run/test/locators/settings.ts | Changes NotificationsMenuItem to scroll-into-view query on Android. |
| run/test/locators/index.ts | Adds InviteAccountIDOrONS locator for Android. |
| run/test/locators/home.ts | Adds Android background-permissions modal button locators. |
| run/test/locators/groups.ts | Adds/updates many group-management locators (promote/remove/history share, etc.). |
| run/test/locators/global.ts | Updates CTA feature locator strategy to reduce ambiguity on Android. |
| run/test/locators/conversation.ts | Adds message request accept button + community moderation locators. |
| run/screenshots/android/settings_notifications.png | Updates screenshot artifact for UI reference (LFS). |
| run/screenshots/android/settings.png | Updates screenshot artifact for UI reference (LFS). |
| run/screenshots/android/landingpage_new_account.png | Updates screenshot artifact for UI reference (LFS). |
| run/localizer/lib | Updates localizer submodule revision. |
| run/constants/community.ts | Adds unresolved community name constant for banned-user display cases. |
| package.json | Updates tooling deps and adds emulator recovery script. |
| github/actions/setup/action.yml | Sets NODE_OPTIONS for deterministic DNS resolution in CI. |
| github/actions/generate-publish-test-report/action.yml | Adds NETWORK_TARGET input and propagates it into report generation/publish. |
| eslint.config.mjs | Switches eslint config export helper (tseslint.config -> defineConfig). |
| README.md | Changes submodule update instructions (now includes --remote). |
| .github/workflows/ios-regression.yml | Adds permissions and network target env for report metadata. |
| .github/workflows/android-regression.yml | Adds network target input, propagates env, and runs emulator recovery between test batches. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (6)
run/types/DeviceWrapper.ts:1
- This helper only clicks the 'Accept message request' button on Android, but call sites replaced platform-agnostic acceptance flows (e.g.,
clickOnByAccessibilityID('Accept message request')) with this method. On iOS this will likely leave the request unaccepted and break tests. Consider clickingAcceptMessageRequestButtonon both platforms (or branching explicitly if iOS differs), rather than gating it behindonAndroid().
run/types/DeviceWrapper.ts:1 - This changes the previous behavior where a stale element reference was treated as 'gone' (success case) during a 'verify not present' check. Throwing on stale references will make absence checks fail spuriously and increase flakiness. Suggest reverting to the earlier semantics: if visibility check throws due to stale reference, treat it as not present (log and continue) rather than throwing.
run/test/specs/linked_group_leave.spec.ts:1 - The locator is constructed with
device2but used to wait ondevice4. Since locators depend on theDeviceWrapperinstance (platform/driver context), this can cause incorrect selector construction or usage. Construct theConversationItemwithdevice4here.
run/types/DeviceWrapper.ts:1 - This switches CTA feature indexing/logging from 1-based to 0-based (
iinstead ofi + 1). If the underlying UI ids are stillcta-feature-1..n(as implied by the previous implementation), this will look forcta-feature-0and fail. If the UI really changed to 0-based ids, consider at least keeping the assertion label 1-based for readability; otherwise, revert locator indexing toi + 1.
scripts/emulator_health.ts:1 - The numeric separator in
30_0000is easy to misread and looks like a typo. If the intent is 5 minutes, use300_000; if it’s 30 seconds, use30_000. A clearer constant name (e.g.,DEFAULT_BOOT_TIMEOUT_MS) would also reduce ambiguity.
run/test/utils/permissions.ts:1 - Prefer a strict undefined check (
=== undefined) here (ortypeof allowBackgroundPermissions === 'undefined') to avoid unintentionally treatingnullthe same as 'not provided'. If you do want to treat null as 'not provided', consider making that explicit in the doc/comment or normalizing inputs earlier.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 72 out of 74 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (2)
run/test/utils/capabilities_ios.ts:1
- The timeout value of 600000ms (10 minutes) is a magic number. Consider defining this as a named constant (e.g.,
const NEW_COMMAND_TIMEOUT_MS = 10 * 60 * 1000) to improve readability and maintainability.
run/test/utils/open_app.ts:1 - The emulator number calculation
(port - 5554) / 2 + 1contains magic numbers. Consider extracting this logic into a helper function with a descriptive name (e.g.,portToEmulatorNumber(port)) or at minimum add a comment explaining the formula.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.