Skip to content

test/ci: green the E2E, coverage, integration & EAS workflows#109

Merged
os-zhuang merged 1 commit into
mainfrom
fix/ci-health
Jun 10, 2026
Merged

test/ci: green the E2E, coverage, integration & EAS workflows#109
os-zhuang merged 1 commit into
mainfrom
fix/ci-health

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

The repo's CI had been chronically red across several workflows for unrelated reasons (PRs merged in UNSTABLE state). 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.

  • Add an i18n init to the e2e jest config (e2e.setup.ts).
  • record-list: re-point the mock at useApps (the Apps screen moved off useAppDiscovery) + the drifted loading string.
  • auth-flow: assert the inline error text (the sign-in screen moved off Alert.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) + more resolveFilterMacro tokens.

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_TOKEN secret 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 .eslintrc override so the CommonJS __mocks__/*.js files lint cleanly under a bare eslint . (the CI lint command eslint . --ext .ts,.tsx never touched them, but eslint . did).

🤖 Generated with Claude Code

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>
@os-zhuang os-zhuang merged commit c2f4892 into main Jun 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant