• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Unleash / unleash / 28876774863
87%
master: 91%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 07 Jul 2026 03:12PM UTC
Jobs 1
Files 1197
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Jul 2026 03:07PM UTC coverage: 87.353% (+0.09%) from 87.26%
28876774863

push

github

web-flow
test: run OSS unit tests without per-file isolation

## Why

Profiling the CI wall time showed the test jobs spend most of their time
*not running tests*. On our 2-vCPU runners the vitest suites run
near-serially, and with per-file isolation every test file re-executes
its entire module graph:

| job (before) | wall | of which vitest | actually running tests |
|---|---|---|---|
| `backend / build` (OSS) | **17m45** | ~15m45 | ~3m (import: ~12m for
386 files) |
| `frontend / build` (OSS) | **14m34** | ~11m45 | ~2m (import 6m + jsdom
setup 2.4m) |
| `test-enterprise` (pro/enterprise/e2e) | 4–6.5m each | ~2.5–5m |
5s–1.6m (import dominates) |

Per-file isolation was also silently hiding real test bugs (leaked
timers, event listeners, singletons) — they existed, we just never saw
them.

## What

**OSS backend: pay the import cost once per worker instead of once per
file.**
- `oss/vitest.config.ts` splits into a `unit` project (306 files,
`isolate: false`) and an `e2e` project (80 full-app DB files, isolation
kept). The `pnpm run test` entrypoint is unchanged.
- A test-context-only harness keeps files independent without per-file
registries: `src/test/reset-cross-file-state.ts` resets process-global
state at every file boundary (shared event emitter listeners,
`ClientFeatureToggleDelta` / `ConfigurationRevisionService` singletons,
the impact-metrics registry, fake timers, mocks, `process.env`), and
`src/test/prom-last-wins.ts` makes prom-client metric registration
last-wins (installed in both workers and globalSetup — globalSetup runs
once per project in the shared main process). App modules are reached
via dynamic import at hook time; a static import would make vitest
re-execute the whole app graph per file.
- Fixes the test bugs this surfaced, found by instrumenting `expect` to
attribute cross-file assertions: a test in `scheduler-service.test.ts`
left a 50ms interval running forever, asserting into every later file;
test files were importing other test ... (continued)

1926 of 2125 branches covered (90.64%)

37 of 37 new or added lines in 5 files covered. (100.0%)

1 existing line in 1 file now uncovered.

15458 of 17696 relevant lines covered (87.35%)

826.2 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
82.2
4.24% src/lib/features/playground/feature-evaluator/constraint.ts
Jobs
ID Job ID Ran Files Coverage
1 28876774863.1 07 Jul 2026 03:12PM UTC 1197
87.35
GitHub Action Run
Source Files on build 28876774863
  • Tree
  • List 1197
  • Changed 6
  • Source Changed 2
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28876774863
  • cbbf76a9 on github
  • Prev Build on main (#28864409137)
  • Next Build on main (#28892480338)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc