Skip to content

fix(e2e): migrate demo project and full-flow suite to v2 (TV4.3)#23

Merged
yan-vidal merged 1 commit into
mainfrom
feat/e2e-v2-migration
Jun 16, 2026
Merged

fix(e2e): migrate demo project and full-flow suite to v2 (TV4.3)#23
yan-vidal merged 1 commit into
mainfrom
feat/e2e-v2-migration

Conversation

@yan-vidal

Copy link
Copy Markdown
Contributor

Fixes the red main CI after the v2 stack (#17#21) landed.

Why CI broke

main CI failed at E2E tests with SyntaxError: Unexpected end of JSON input. Root cause: examples/demo-project/sentiness.config.json was still schemaVersion: '1.0', which the v2 config loader rejects, so the CLI emitted no report for the harness to parse. (Unit tests were already fixed by #18; this was the remaining gate.)

Change

Migrate the demo project and the E2E harness to the v2 model using path-linked checks:

  • examples/demo-project/sentiness.config.jsonschemaVersion: '2.0' with an engine pin and a path-linked biome check (../../packages/checks/biome).
  • The harness writes v2 configs (buildV2Config) that path-link each check to its built package under packages/checks/* via a project-relative path, replacing the node_modules/@sentiness symlink setup.
  • The non-interactive init E2E assertion now expects the v2 output ({ biome: { version: '*', tier: 'fast' } }).

Path-linked checks need no cache, no sentiness install, and no project node_modules: the engine resolves them directly from the repo, and each check's external tool (biome) still resolves from the inherited PATH (cliEnv prepends the repo node_modules/.bin). This keeps the E2E fast and hermetic without standing up the cache/launcher machinery.

Verification (all local, matching the CI job order)

  • pnpm test:e2e14 passed.
  • pnpm test → 209 passed. pnpm -r typecheck, pnpm lint → clean.
  • pnpm check:release-packages → 15 packages. pnpm sentiness check --tier=fast --compact → exit 0.

main CI regressed to red after v2 landed: the v2 config loader rejects
examples/demo-project's schemaVersion 1.0 config, so the E2E suite failed
with "Unexpected end of JSON input" (the CLI emitted no report).

Migrate the demo project and the E2E harness to the v2 model using
path-linked checks:
- examples/demo-project/sentiness.config.json is now schemaVersion 2.0
  with an engine pin and a path-linked biome check.
- The harness writes v2 configs (buildV2Config) that path-link each check
  to its built package under packages/checks/* via a project-relative
  path, replacing the node_modules/@Sentiness symlink setup.
- The non-interactive `init` E2E assertion now expects the v2 output
  ({ biome: { version: '*', tier: 'fast' } }).

Path-linked checks need no cache, no `sentiness install`, and no project
node_modules: the engine resolves them directly from the repo, and each
check's external tool (biome) resolves from the inherited PATH (cliEnv
prepends the repo node_modules/.bin).

All 14 E2E cases pass, alongside 209 unit tests, typecheck, lint,
check:release-packages (15 packages), and the dogfood check --tier=fast.
@yan-vidal
yan-vidal merged commit 1afbcc8 into main Jun 16, 2026
1 check 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