fix(ci): green up remaining red checks (coverage artifacts, integration regex, e2e routing)

Coverage gate (`Coverage` job)
  The shard step wrote with `--output-dir=coverage-shard --reporter=json`, which
  emits the final `coverage-final.json` report but leaves the raw v8 temp files
  in `coverage/tmp`. The upload then picked up an empty `coverage-shard/`
  ("No files were found"), so the merge job downstream blew up with
  `ENOENT scandir 'coverage-shards'`. Switch to `--temp-directory=coverage-shard`
  so the raw v8 coverage files land in the artifact path the merge step expects.

Integration Tests (1/2) — `chat-pipeline.test.ts`
  The `Gemini CLI fingerprint` assertion still pinned `google-api-nodejs-client/9.15.1`.
  PR #2676 bumped the constant to 10.3.0; derive the version from
  `GEMINI_CLI_GOOGLE_API_NODE_CLIENT_VERSION` the same way the unit tests do.

E2E Tests (5/6)
  - `proxy-registry.smoke.spec.ts`: the registry heading now lives under the
    "Proxy Pool" sub-tab of /dashboard/system/proxy. The default tab is
    "Global Config", so the heading was off-screen. Navigate directly with
    `?tab=proxy-pool` so the smoke flow finds the heading again.
  - `providers-bailian-coding-plan.spec.ts`: switch the two `waitForLoadState`
    calls from `networkidle` to `domcontentloaded`. The bailian provider
    page keeps a long-poll alive (quota refresh), so `networkidle` never
    settled and the 300 s default timeout kicked in. `domcontentloaded` is
    enough to assert the dashboard rendered.
This commit is contained in:
diegosouzapw
2026-05-26 06:50:13 -03:00
parent 92a3a421ee
commit 92ee9f87dd
4 changed files with 15 additions and 6 deletions

View File

@@ -284,9 +284,15 @@ jobs:
- run: npm run check:node-runtime
- name: Run c8 over shard ${{ matrix.shard }}/4
run: |
# `--temp-directory` (writable via NODE_V8_COVERAGE) is what the merge
# job reads with `c8 report --temp-directory ...`. Using `--output-dir`
# only produces the final json *report* and leaves the raw v8 files in
# `coverage/tmp`, so uploading `coverage-shard/` was empty. Pin the temp
# dir so the raw coverage files live there and the artifact upload picks
# them up regardless of `--test-force-exit` timing.
npx c8 \
--reporter=json \
--output-dir=coverage-shard \
--temp-directory=coverage-shard \
--exclude=tests/** \
--exclude=**/*.test.* \
node --import tsx --test --test-force-exit --test-concurrency=4 \