Repository navigation
test(mobile): add test coverage for HomeScreen & EvidenceCaptureScreen, fix CI gates (#280 #279) - #378
Merged
EmeditWeb merged 10 commits intoOct 27, 2026
Conversation
|
@nemeregiftbrown-byte Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
nemeregiftbrown-byte
force-pushed
the
test/mobile-screens-homescreen-evidencecapture
branch
from
October 23, 2026 12:27
9e1c291 to
73afe7c
Compare
Cover notification handler configuration, primary render states, and notification response subscription lifecycle (mount, log on event, unmount cleanup).
…#279) Cover header/navigation, media type selection, capture simulation, retake workflow, multipart upload request format, error display/retry, and success card navigation.
…ion under parallel test runs
nemeregiftbrown-byte
force-pushed
the
test/mobile-screens-homescreen-evidencecapture
branch
from
October 26, 2026 10:42
73afe7c to
326309b
Compare
Collaborator
|
@nemeregiftbrown-byte fix CI issues |
The PR's three failing checks were all setup-level breakage, not test failures: - Contracts gate: cargo audit failed on anyhow 1.0.102 (RUSTSEC-2026-0190, unsound Error::downcast_mut). Bump to 1.0.103, the first patched release. - Mobile E2E Android: android-actions/setup-android@v3 installs the removed `tools` SDK package, which exits 1 on current cmdline-tools. Move to @v4 (issue android-actions#537). - Mobile E2E iOS: three stacked setup failures — * app.config.ts used `getDefaultConfig` from expo/config, never exported by the SDK 52 build we lock (runtime TypeError), so every `expo prebuild` died before generating native projects. The config now states the full ExpoConfig (including the app.json fields it would otherwise shadow). Verified `expo config` and `expo prebuild` for both platforms locally. * `mobile/assets/` was referenced but never committed, so prebuild also failed with ENOENT on the icons. Add placeholder assets (documented in assets/README.md) until real artwork lands. * xcodebuild/detox hardcoded "iPhone 15, OS=17.5", a simulator that does not exist on supported runners (macos-14/Xcode 15.4 retire Nov 2, 2026). Resolve an available iPhone simulator at runtime and build/boot/test against its UDID; .detoxrc.js picks the device up via DETOX_IOS_DEVICE_NAME/OS with local defaults intact. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
nemeregiftbrown-byte
added a commit
to nemeregiftbrown-byte/EliteWork
that referenced
this pull request
Oct 26, 2026
Upstream pull-request edit/comment permissions are not available to the token pushing this branch, so the summary is committed as a repo doc (following the existing PR_SUMMARY_*.md convention). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
nemeregiftbrown-byte
added a commit
to nemeregiftbrown-byte/EliteWork
that referenced
this pull request
Oct 26, 2026
Upstream pull-request edit/comment permissions are not available to the token pushing this branch, so the summary is committed as a repo doc (following the existing PR_SUMMARY_*.md convention). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
nemeregiftbrown-byte
force-pushed
the
test/mobile-screens-homescreen-evidencecapture
branch
from
October 26, 2026 15:14
da71de7 to
e43461f
Compare
The macOS 26 runner image dropped both tools the iOS smoke job needs: xcpretty (its release gem set was removed from the image) and applesimutils (required by Detox for iOS permission handling). Install them explicitly before the build/test steps. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
Upstream pull-request edit/comment permissions are not available to the token pushing this branch, so the summary is committed as a repo doc (following the existing PR_SUMMARY_*.md convention). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
nemeregiftbrown-byte
force-pushed
the
test/mobile-screens-homescreen-evidencecapture
branch
from
October 26, 2026 15:14
e43461f to
1f042ab
Compare
… isolate dependencies
Contributor
Author
PR #378 Summary — test(mobile): HomeScreen & EvidenceCaptureScreen coverage + CI gate repairsReferences: #280 (HomeScreen tests), #279 (EvidenceCaptureScreen tests). What this PR delivers
Verification
Follow-ups for reviewers
|
Contributor
Author
CI Repair Update: Mobile E2E Smoke (iOS & Android)Pushed commit
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds comprehensive test coverage for
mobile/src/screens/HomeScreen.tsxandmobile/src/screens/EvidenceCaptureScreen.tsx(fulfilling issues #280 and #279), stabilizes mobile test assertions under concurrent runs, fixes root determinism error handling in test scripts, resolves merge conflicts withupstream/main, and repairs CI runner setup for mobile E2E smoke jobs.Rebased cleanly onto latest
upstream/main.Summary of Changes
1. Case #280 —
mobile/src/screens/HomeScreen.test.tsx(6 tests)Notifications.setNotificationHandleris initialized with alert, sound, and badge options set totrue.Amana Mobile) and subtitle (Trust as a Service for Agricultural Products).Notifications.addNotificationResponseReceivedListeneris registered on mount.subscription.remove()).2. Case #279 —
mobile/src/screens/EvidenceCaptureScreen.test.tsx(17 tests)Trade: #${tradeId.slice(0, 12)}…), evidence type selection tabs (Video/Photo), and initial capture placeholder.navigation.goBack().Record Video/Take Photo)..mp4/.jpg), updates state to captured, displays preview cards, and presents the retake button.POST /trades/:tradeId/evidenceis called with multipartFormDataincludingfile,tradeId, andmediaTypepayload fields.Authorization: Bearer <token>header is included when authenticated, and omitted when no token is present inauthStore.navigation.navigate('TradeDetail', { tradeId }).3. Mobile Test Suite Execution
mobile/package.jsontest script tojest --runInBand. Running 32 React Native test suites in band stabilizes execution, completing in ~16s deterministically without resource exhaustion.mobile/src/screens/AdminStreamsOverviewScreen.test.tsxby awaiting replacement of placeholderstream-001seed before asserting rendered action button counts (waitFor).4. CI Fixes & Gate Reliability
scripts/verify-test-determinism.sh: Added|| trueto the error extractiongreppipeline soset -eo pipefaildoes not abort early when cargo fails before generating matching test error strings, allowing the test determinism suite to pass all 11 assertions..github/workflows/ci.yml:Install depsandApply database migrationswithif: needs.changes.outputs.backend == 'true', preventing migration crashes on non-backend PRs.if: needs.changes.outputs.contracts == 'true'.ExpoConfiginmobile/app.config.tsreplacing unexportedgetDefaultConfig.mobile/assets/README.md) unblocking Expo prebuild.IOS_SIM_NAME/OS/UDID).brew trust --formula wix/brew/applesimutilsto satisfy Homebrew tap trust requirements when installingapplesimutils.setup-android@v4(resolving issue android-actions#537).avdmanager create avdcall that exited with code 1 due to uninstalled system-images; delegated AVD creation and system-image downloading toreactivecircus/android-emulator-runner@v2withforce-avd-creation: falseand-no-snapshot-save.mobile/app.config.tsin Android prebuild cache key.Related Issues
src/screens/HomeScreen.tsx#280src/screens/EvidenceCaptureScreen.tsx#279Type of Change
mobile/src/screens/HomeScreen.test.tsx,mobile/src/screens/EvidenceCaptureScreen.test.tsx).github/workflows/ci.yml,scripts/verify-test-determinism.sh, test stabilization)🔒 Required CI Gates
pnpm test:scriptspasses (14/14 suites, 191/191 tests pass)node scripts/validate-flaky-quarantine.mjspassesnpx --yes tsx scripts/check-flag-catalog-drift.tspassesnode scripts/codegen-events.mjs --checkpassespnpm type-check(0 errors),pnpm lint(0 errors),pnpm test(32/32 suites, 317/317 tests pass)frontend/changes)backend/changes)contracts/changes)PR Checklist
pnpm testinmobile/passes 32/32 suites, 317/317 tests)pnpm type-checkinmobile/passes with 0 errors (tsc --noEmit)pnpm lintinmobile/passes with 0 errors