mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-13 06:30:29 +00:00
* fix(maestro): reset the iOS app before each batch; wait for timed-out config writes - iOS: clearState reinstalls and launches at once, and on a loaded runner FrontBoard may not know the app yet. reset_ios_app.sh reinstalls it and returns once it launches; flows then skip clearState. A failed reset fails the batch. - A config/patch the client timed out on is usually still applied, since saves run one at a time. Wait for it to land instead of resending, which queued more saves. - iOS merges the server URL field label with its inline error; match the merged text. * chore(e2e): bump Maestro to 2.11.0 * ci(e2e): give the Android emulator working DNS before specs run Start the emulator with explicit resolvers, wait for it to resolve SITE_1 before installing the app, and cold-boot it once if it cannot. * ci(e2e): re-run iOS specs that failed only because the runner lost its route The runner Mac can lose its network route for ~2 s, failing every request with -1009. After a failed shard, re-run once only the spec files whose every failing test shows that signature in its own device.log, and merge the results. Any other failure stays red. * chore(e2e): bump Detox to 20.51.4 Adds regex toHaveText and RegExp/array URL blacklists; existing string-array setURLBlacklist calls are unchanged. The postinstall patches still apply. * fix(e2e): keep failures red when an iOS re-run or app reset fails - Clear a shard failure only when the route-loss re-run and the merge both succeed. - Record a JUnit failure when an isolated Maestro step cannot reset the app. - Use /etc/resolv.conf for emulator DNS when systemd-resolved is absent. - Set the runner-reset flag only when there is a device to reset. * fix(maestro): bound simctl launch and terminate in the iOS app reset * fix(maestro): find the server URL field by id when scrolling back to it * fix(maestro): stop the batches when the config baseline cannot be applied
74 lines
3.6 KiB
JSON
74 lines
3.6 KiB
JSON
{
|
|
"name": "mattermost-mobile-e2e",
|
|
"description": "End-to-end testing for Mattermost Mobile",
|
|
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
|
"author": "Mattermost, Inc.",
|
|
"devDependencies": {
|
|
"@aws-sdk/client-s3": "3.937.0",
|
|
"@aws-sdk/lib-storage": "3.937.0",
|
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
"@babel/plugin-transform-modules-commonjs": "7.26.3",
|
|
"@babel/plugin-transform-runtime": "7.25.9",
|
|
"@babel/preset-env": "7.26.0",
|
|
"@jest/test-sequencer": "29.7.0",
|
|
"@types/jest": "29.5.14",
|
|
"@types/tough-cookie": "4.0.5",
|
|
"@types/uuid": "10.0.0",
|
|
"async": "3.2.6",
|
|
"axios": "1.8.2",
|
|
"axios-cookiejar-support": "5.0.4",
|
|
"babel-jest": "29.7.0",
|
|
"babel-plugin-module-resolver": "5.0.2",
|
|
"client-oauth2": "4.3.3",
|
|
"deepmerge": "4.3.1",
|
|
"detox": "20.51.4",
|
|
"dotenv": "17.2.1",
|
|
"express": "^5.2.1",
|
|
"form-data": "4.0.1",
|
|
"jest": "29.7.0",
|
|
"jest-circus": "29.7.0",
|
|
"jest-cli": "29.7.0",
|
|
"jest-junit": "16.0.0",
|
|
"jest-stare": "2.5.3",
|
|
"junit-report-merger": "7.0.0",
|
|
"moment-timezone": "0.5.46",
|
|
"patch-package": "8.0.0",
|
|
"recursive-readdir": "2.2.3",
|
|
"sanitize-filename": "1.6.3",
|
|
"shelljs": "0.8.5",
|
|
"tough-cookie": "5.0.0",
|
|
"ts-jest": "29.2.5",
|
|
"tslib": "2.8.1",
|
|
"tsx": "^4.19.3",
|
|
"typescript": "5.7.2",
|
|
"uuid": "11.0.3",
|
|
"xml2js": "0.6.2"
|
|
},
|
|
"scripts": {
|
|
"e2e:android-create-emulator": "./create_android_emulator.sh",
|
|
"e2e:android-build": "./scripts/run_detox.sh build -c android.emu.debug",
|
|
"e2e:android-test": "npm run detox:config-gen && ./scripts/run_detox.sh test -c android.emu.debug --record-logs failing --take-screenshots failing",
|
|
"e2e:android-build-release": "./scripts/run_detox.sh build -c android.emu.release",
|
|
"e2e:android-test-release": "npm run detox:config-gen && ./scripts/run_detox.sh test -c android.emu.release --record-logs failing --take-screenshots failing",
|
|
"e2e:ios-build": "IOS=true ./scripts/run_detox.sh build -c ios.sim.debug",
|
|
"e2e:ios-test": "IOS=true ./scripts/run_detox.sh test -c ios.sim.debug --record-logs failing --take-screenshots failing",
|
|
"e2e:ios-ipad-test": "IOS=true ./scripts/run_detox.sh test -c ios.ipad.debug --record-logs failing --take-screenshots failing",
|
|
"e2e:ios-build-release": "IOS=true ./scripts/run_detox.sh build -c ios.sim.release",
|
|
"e2e:ios-test-release": "IOS=true ./scripts/run_detox.sh test -c ios.sim.release --record-logs failing --take-screenshots failing",
|
|
"e2e:ios-disable-autofill": "cd utils && node disable_ios_autofill.js",
|
|
"detox:config-gen": "cd utils && node generate_detox_config_ci.js",
|
|
"check": "npm run lint && npm run tsc && npm run test:unit && npm run validate:flow-headers",
|
|
"validate:flow-headers": "bash maestro/scripts/validate-flow-headers.sh",
|
|
"test:unit": "node --test utils/*.test.js && npx tsx --test e2e/support/utils/transport_retry.test.ts && npx tsx --test e2e/support/classification_lock_core.test.ts && npx tsx --test e2e/support/classification_test_helper.test.ts && npx tsx --test e2e/support/server_api/client.test.ts && npx tsx --test e2e/support/server_api/system.test.ts",
|
|
"clean-detox": "detox clean",
|
|
"lint": "eslint --ignore-pattern node_modules --quiet .",
|
|
"e2e:save-report": "node save_report.js",
|
|
"e2e:save-maestro-zephyr": "node save_maestro_zephyr.js",
|
|
"start:webhook": "node webhook_server.js",
|
|
"provision": "tsx provision/index.ts",
|
|
"tsc": "NODE_OPTIONS=--max_old_space_size=12000 tsc --noEmit",
|
|
"postinstall": "node scripts/postinstall.js"
|
|
},
|
|
"dependencies": {}
|
|
}
|