test/ci: green the E2E, coverage, integration & EAS workflows#109
Merged
Conversation
The repo's CI had been red across several workflows for unrelated reasons. Address each: - **E2E Screen Tests** (3 of 5 suites failing): the suite renders real screens but never initialized i18n, so post-i18n screens showed raw keys; several assertions had also drifted from the current screens. Add an i18n init to the e2e jest config; re-point the apps test at `useApps` (the screen switched off `useAppDiscovery`); update sign-in assertions to the inline error (the screen moved off `Alert`); refresh the home/search/more assertions and wrap More in its Toast/Confirm providers. 33/33 pass. - **Code Quality coverage gate** (`./lib/` ≥80%, was 77%): add real tests for `formatting.formatByPattern` (currency/percent/abbrev/fraction branches) and `query-builder.mongoFilterToAst` + more `resolveFilterMacro` tokens. lib/ now 81.4% statements / 82.5% lines. 1298 tests pass. - **Server Integration Tests**: the job pointed `working-directory` at `server/integration`, which isn't in the repo, so it failed on a missing dir. Guard every step on a presence check — the job is now a clean no-op when the optional stack is absent. - **EAS Build/Update/Submit**: require an `EXPO_TOKEN` secret this repo can't provide, so they failed on every push. Skip the job (neutral, not failed) when the secret is unset; they run normally once a token is configured. - Drive-by: an `.eslintrc` override so the CommonJS `__mocks__/*.js` files (module/require/jest) lint cleanly under `eslint .`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
The repo's CI had been chronically red across several workflows for unrelated reasons (PRs merged in
UNSTABLEstate). This greens them.E2E Screen Tests — 3 of 5 suites failing → 33/33 pass
The suite renders real screens but never initialized i18n, so post-i18n screens rendered raw translation keys; several assertions had also drifted from the current screens.
e2e.setup.ts).record-list: re-point the mock atuseApps(the Apps screen moved offuseAppDiscovery) + the drifted loading string.auth-flow: assert the inline error text (the sign-in screen moved offAlert.alert).app-navigation: refresh home / search / more assertions to current copy and wrap More in its Toast/Confirm providers.Code Quality coverage gate —
./lib/77% → 81.4%Added real tests for the untested pure logic:
formatting.formatByPattern— currency / percent / abbrev / fraction-digit / non-finite branches.query-builder.mongoFilterToAst(the dashboard filter translator) + moreresolveFilterMacrotokens.lib/ now 81.4% statements / 82.5% lines (gate 80/80). 1298 tests pass.
Server Integration Tests
The job set
working-directory: server/integration, which isn't in the repo — it failed on a missing directory. Every step is now guarded on a presence check, so the job is a clean no-op when the optional stack is absent (and runs normally if it's added).EAS Build / Update / Submit
These need an
EXPO_TOKENsecret this repo can't provide, so they failed on every push. The jobs now skip (neutral, not failed) when the secret is unset, and run normally once you configure one (Repo → Settings → Secrets →EXPO_TOKEN).Drive-by
An
.eslintrcoverride so the CommonJS__mocks__/*.jsfiles lint cleanly under a bareeslint .(the CI lint commandeslint . --ext .ts,.tsxnever touched them, buteslint .did).🤖 Generated with Claude Code