Standardize live search Playwright setup lane

This commit is contained in:
master
2026-03-08 11:17:05 +02:00
parent 6870649abf
commit e01a499df9
10 changed files with 692 additions and 51 deletions

View File

@@ -0,0 +1,82 @@
# Sprint 20260308-009 - FE Standard Live Search Playwright Setup
## Topic & Scope
- Turn the ad hoc live-search ingestion/browser flow into a standard one-command Playwright acceptance lane for search.
- Make the lane self-preparing where feasible: start the dedicated AdvisoryAI knowledge test database, start the local AdvisoryAI service, prepare sources, rebuild indexes, and gate the browser suite on a grounded smoke query.
- Keep the implementation centered on `src/Web/StellaOps.Web` while allowing the minimum supporting doc updates in AdvisoryAI test/setup guidance.
- Working directory: `src/Web/StellaOps.Web`.
- Expected evidence: setup script/config, live setup artifact, Playwright live browser results, and updated operator docs.
## Dependencies & Concurrency
- Depends on archived search rollout/correction sprints plus archived `SPRINT_20260308_008_FE_live_search_ingestion_browser_validation.md`.
- Safe parallelism: do not edit unrelated Router, platform-setup, or shell-cutover files while executing this lane.
- Cross-module allowance: documentation updates are allowed in `docs/modules/advisory-ai/**` and `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md` because they define the live-search setup contract consumed by this FE lane.
## Documentation Prerequisites
- `docs/qa/feature-checks/FLOW.md`
- `docs/code-of-conduct/TESTING_PRACTICES.md`
- `src/Web/StellaOps.Web/AGENTS.md`
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
- `docs/modules/advisory-ai/knowledge-search.md`
## Delivery Tracker
### FE-LIVESETUP-001 - Standardize the Playwright live-search setup lane
Status: DONE
Dependency: none
Owners: QA, Test Automation, Developer (FE)
Task description:
- Add a standard Playwright entrypoint for live search acceptance that boots the dedicated knowledge-test database, starts the source-run AdvisoryAI service, and runs a setup project before browser tests execute.
- The setup project must prepare the ingestion sources, rebuild both search indexes, and fail fast when the live service is unhealthy or the grounded smoke query does not work.
Completion criteria:
- [x] A documented one-command live-search Playwright lane exists under `src/Web/StellaOps.Web`.
- [x] The lane does not assume `stella` is already installed; it compiles or publishes the CLI when needed.
- [x] Live setup artifacts record rebuild/query evidence for operator diagnosis.
### FE-LIVESETUP-002 - Expand live browser verification on the standardized lane
Status: DONE
Dependency: FE-LIVESETUP-001
Owners: QA, Test Automation
Task description:
- Run the live browser suite through the new standard lane and add at least one operator-relevant assertion beyond bare suggestion execution.
- The added assertion should cover a real UX contract from the shipped search experience, not just service availability.
Completion criteria:
- [x] The standardized live lane executes the existing live search browser suite successfully.
- [x] The live suite verifies at least one user-facing persistence/continuity behavior on real ingested data.
- [x] Test evidence is captured with exact command and result counts.
### FE-LIVESETUP-003 - Update docs and close the lane
Status: DONE
Dependency: FE-LIVESETUP-002
Owners: Documentation, Project Manager
Task description:
- Update Web and AdvisoryAI setup docs to point at the new standard live-search acceptance lane.
- Archive this sprint when the setup lane, verification, and docs are complete.
Completion criteria:
- [x] Web README documents the standard live-search Playwright command.
- [x] AdvisoryAI infrastructure/search docs document the setup contract and prerequisites.
- [x] Sprint execution log captures implementation and validation evidence before archival.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-08 | Sprint created to replace manual live-search ingestion/browser steps with a standard Playwright setup lane. | Developer |
| 2026-03-08 | Added the standard lane under `src/Web/StellaOps.Web` with `scripts/run-live-search-e2e.mjs`, `playwright.live-search.config.ts`, and a `live-search-setup` Playwright project that compiles the CLI if needed, runs `sources prepare`, rebuilds both indexes, and writes `output/playwright/live-search-setup.json`. | Developer |
| 2026-03-08 | Extended the live browser suite so the standardized lane also verifies user-facing continuity: a grounded live search persists in Recent and can be removed through the clear-history icon. | QA |
| 2026-03-08 | Validation: `npm run test:e2e:search:live` passed with `10 passed`, `3 skipped` in ~2.6 minutes; skips were the explicit corpus-unready branches for routes that are now ready enough to bypass those tests. | QA |
## Decisions & Risks
- Decision: standardize the search live lane as a dedicated acceptance path instead of forcing ingestion into every default FE test run.
- Decision: use a wrapper script plus a dedicated Playwright config so the live lane can bring up the dedicated knowledge-test database before Playwright starts the source-run AdvisoryAI service and browser projects.
- Decision: the setup project writes a JSON artifact under `output/playwright/live-search-setup.json` so failures can be diagnosed from corpus preparation and rebuild evidence, not only browser traces.
- Risk: the setup lane depends on Docker, dotnet, Node/npm, and the dedicated AdvisoryAI knowledge test database compose file.
- Mitigation: fail early with explicit setup diagnostics and keep the lane isolated from the fast mocked/offline FE loop.
- Risk: CLI `--json` output can be prefixed by infrastructure logs on some hosts.
- Mitigation: the setup parser now tolerates log-prefixed JSON and still fails hard when no valid payload is present.
## Next Checkpoints
- 2026-03-08: setup script/config implemented and locally executable.
- 2026-03-08: live browser suite rerun through the standard lane with recorded evidence.