test(v1.8.3): live ecosystem e2e + roadmap closure sync#51
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d7f018a969
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const sut = spawn('bun', ['run', 'src/server.ts'], { | ||
| cwd: FIXTURE, | ||
| env: { ...process.env, PORT: String(SUT_PORT) }, | ||
| stdio: ['ignore', 'pipe', 'pipe'], | ||
| windowsHide: true, |
There was a problem hiding this comment.
Install fixture deps before launching the Bun SUT
Starting the SUT before bun install makes the ecosystem smoke fail on clean environments where examples/bun-api has no node_modules: bun run src/server.ts cannot resolve hono, exits, and then the sut.on('exit') path aborts the whole stack. Because dependency installation happens later (mustOk('bun', ['install'], FIXTURE)), bun run e2e:ecosystem is brittle and can fail before the admin/API bridge is even up.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
Adds a “live ecosystem” end-to-end smoke that boots a real SUT (examples/bun-api), runs aqa run --profile smoke to generate artifacts, serves the Admin against a live in-memory @aqa/server API, and verifies the audit chain UI via Playwright.
Changes:
- Add
scripts/ecosystem-stack.mjsto bootstrap the live stack (SUT + run artifacts + API bridge + Admin dev server). - Add a dedicated Playwright config + e2e spec to validate
finding_emittedvisibility and chain verification. - Wire new
e2e:ecosystemscripts at root and admin, and update roadmap/lessons docs.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/ecosystem-stack.mjs | New stack bootstrap script that runs a real CLI smoke, seeds MemoryStore, serves makeApi(), and boots the admin dev server. |
| packages/admin/test/e2e/ecosystem-live.e2e.ts | New Playwright test that navigates to Audit log and verifies chain success on live audit data. |
| packages/admin/playwright.ecosystem.config.ts | Dedicated Playwright config that starts the full stack as a webServer dependency. |
| packages/admin/package.json | Adds test:e2e:ecosystem script. |
| package.json | Adds root e2e:ecosystem entry point. |
| docs/PROGRESS.md | Records v1.x roadmap closure and the new ecosystem live e2e. |
| docs/LESSON.md | Captures lessons about CORS + audit event ordering for live admin e2e stability. |
| const sut = spawn('bun', ['run', 'src/server.ts'], { | ||
| cwd: FIXTURE, | ||
| env: { ...process.env, PORT: String(SUT_PORT) }, | ||
| stdio: ['ignore', 'pipe', 'pipe'], | ||
| windowsHide: true, | ||
| }); |
| mustOk('bun', ['install'], FIXTURE); | ||
| if (!sutReady) { | ||
| const start = Date.now(); | ||
| while (!sutReady && Date.now() - start < 10_000) { | ||
| Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 100); | ||
| } | ||
| } |
| } | ||
| } | ||
|
|
||
| mustOk('node', [AQA_BIN, 'init', '--silent'], FIXTURE); |
Summary
Validation
Notes