Skip to content

Commit b8252bc

Browse files
committed
scripts/untracked/itunes_tracks401-plus.csv
1 parent 8fee978 commit b8252bc

16 files changed

Lines changed: 668 additions & 621 deletions
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Playwright Structure Audit
2+
3+
Generated: 2026-05-26T18:07:59.062Z
4+
Status: PASS
5+
6+
## Lane Directories
7+
8+
| Directory | Status | Reason |
9+
| --- | --- | --- |
10+
| tests/playwright/games | PASS | Directory is an allowed Playwright lane ownership bucket. |
11+
| tests/playwright/integration | PASS | Directory is an allowed Playwright lane ownership bucket. |
12+
| tests/playwright/tools | PASS | Directory is an allowed Playwright lane ownership bucket. |
13+
| tests/playwright/engine | SKIP | No engine Playwright specs are currently present; engine lane may be empty. |
14+
15+
## Blocking Findings
16+
17+
No blocking structural findings.
18+
19+
## Placement Corrections
20+
21+
| Previous Path | Current Path | Status | Reason |
22+
| --- | --- | --- | --- |
23+
| tests/playwright/tools/AsteroidsBackgroundAssetResolution.spec.mjs | tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs | PASS | Asteroids runtime/background behavior is game-owned. |
24+
| tests/playwright/tools/AsteroidsBeatTiming.spec.mjs | tests/playwright/games/AsteroidsBeatTiming.spec.mjs | PASS | Asteroids beat cadence behavior is game-owned. |
25+
| tests/playwright/tools/AsteroidsGameSceneCleanup.spec.mjs | tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs | PASS | Asteroids scene diagnostics behavior is game-owned. |
26+
| tests/playwright/tools/AsteroidsShipStateVisuals.spec.mjs | tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs | PASS | Asteroids ship visual runtime behavior is game-owned. |
27+
| tests/playwright/games/GameIndexPreviewManifestResolution.spec.mjs | tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs | PASS | Game index and page manifest handoff is integration-owned. |
28+
29+
## Documented Game Fixtures
30+
31+
| Lane | File | Referenced Game Fixture(s) | Reason |
32+
| --- | --- | --- | --- |
33+
| tools | tests/playwright/tools/AssetManagerV2.spec.mjs | Asteroids, GravityWell, Pong | Tool runtime validation uses repo/game manifests as explicit asset payload fixtures. |
34+
| tools | tests/playwright/tools/CollisionInspectorV2.spec.mjs | Asteroids | Tool runtime validation uses game manifests as explicit collision payload fixtures. |
35+
| tools | tests/playwright/tools/WorkspaceManagerV2.spec.mjs | AITargetDummy, Asteroids, Bouncing-ball, Breakout, GravityWell, Pacman, Pong, SolarSystem, SpaceDuel, SpaceInvaders, vector-arcade-sample | Workspace contract validation uses game manifests as explicit launch/toolState fixtures. |
36+
| integration | tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs | Pong | Integration validation uses Pong as an explicit cross-surface manifest handoff fixture. |
37+
38+
## Import Targets
39+
40+
| File | Status | Missing Relative Imports |
41+
| --- | --- | --- |
42+
| tests/playwright/tools/AssetManagerV2.spec.mjs | PASS | none |
43+
| tests/playwright/tools/CollisionInspectorV2.spec.mjs | PASS | none |
44+
| tests/playwright/tools/ObjectVectorStudioV2FirstClassToolStarter.spec.mjs | PASS | none |
45+
| tests/playwright/tools/PreviewGeneratorV2Baseline.spec.mjs | PASS | none |
46+
| tests/playwright/tools/WorkspaceManagerV2.spec.mjs | PASS | none |
47+
| tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs | PASS | none |
48+
| tests/playwright/games/AsteroidsBeatTiming.spec.mjs | PASS | none |
49+
| tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs | PASS | none |
50+
| tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs | PASS | none |
51+
| tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs | PASS | none |
52+
| tests/helpers/playwrightCtrlTapClick.mjs | PASS | none |
53+
| tests/helpers/playwrightRepoServer.mjs | PASS | none |
54+
| tests/helpers/playwrightStorageIsolation.mjs | PASS | none |
55+
| tests/helpers/playwrightV8CoverageReporter.mjs | PASS | none |
56+
| tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs | PASS | none |
57+
| tests/helpers/testCoverageCatalog.mjs | PASS | none |
58+
| tests/helpers/workspaceV2CoverageReporter.mjs | PASS | none |
59+
60+
## Intentionally Shared Helpers
61+
62+
| File | Reason |
63+
| --- | --- |
64+
| tests/helpers/playwrightRepoServer.mjs | Shared HTTP repo fixture used by tool, game, and integration Playwright suites. |
65+
| tests/helpers/playwrightStorageIsolation.mjs | Shared localStorage/sessionStorage cleanup helper used before targeted Playwright tests. |
66+
| tests/helpers/workspaceV2CoverageReporter.mjs | Shared V8 coverage collection for Workspace V2 and impacted browser runtime suites. |
67+
68+
## Fast-Fail Rules Checked
69+
70+
- Playwright specs must live under tools, games, integration, or engine lane directories.
71+
- Game-specific specs are prohibited under tests/playwright/tools.
72+
- Cross-surface tests belong under tests/playwright/integration.
73+
- Shared helper filenames must not use game-specific names.
74+
- Relative imports must resolve before browser lanes execute.
75+
- Lane execution should stop before expensive Playwright runs when this audit reports blocking findings.
Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,61 @@
11
# Testing Lane Execution Report
22

33
Generated: 2026-05-26
4-
PR: PR_26146_025-test-location-audit-and-runner-preflight
4+
PR: PR_26146_026-playwright-structure-enforcement-and-fast-fail-routing
55

66
## Summary
77

88
PASS: 3
9-
WARN: 1
9+
WARN: 0
1010
FAIL: 0
1111
SKIP: 3
1212

1313
## Full Samples Smoke
1414

1515
Status: SKIP
16-
Reason: This PR changes Playwright test placement, audit/preflight scripts, and targeted lane runner behavior only. No sample JSON, shared sample loader, or sample framework files were changed.
16+
Reason: This PR changes Playwright structure enforcement, preflight validation, runner routing, and test placement only. No sample JSON, shared sample loader, or sample framework files were changed.
1717

1818
## Executed and Skipped Lanes
1919

2020
| Lane / Check | Status | Executed/Skipped Reason | Affected Surface | Evidence |
2121
| --- | --- | --- | --- | --- |
22-
| test-location-preflight | PASS | Executed first because this PR adds the audit/preflight gate. | Playwright file ownership and lane placement | `npm run test:lanes:preflight` passed and wrote `docs/dev/reports/test_location_audit_report.md`. |
23-
| tool-runtime | PASS | Executed because tool test routing changed and the runner preflight/Node CLI path needed validation. | Asset Manager V2, Preview Generator V2, Collision Inspector V2 runtime tests | `PLAYWRIGHT_BROWSERS_PATH=0 npm run test:lane:tool-runtime`; preflight passed, Asset Manager V2 focused subset 5 passed, Preview Generator V2 7 passed, Collision Inspector V2 4 passed. |
24-
| integration | PASS | Executed because the runner preflight also guards game/integration Playwright placement. | Game index preview manifest handoff | `PLAYWRIGHT_BROWSERS_PATH=0 npm run test:lane:integration`; preflight passed, focused Pong handoff subset 3 passed. |
25-
| moved-game-specs | WARN | Executed once to validate relocated Asteroids game specs without changing game runtime behavior. | Asteroids game-specific Playwright tests moved from tools to games | 5 passed, 1 existing Asteroids ship-state expectation failed; exact failing test listed below. |
26-
| workspace-contract | SKIP | Skipped because `npm run test:workspace-v2` behavior was preserved and Workspace V2 runner wiring was not changed for this PR. | Workspace Manager V2 contract/lifecycle behavior | Not run. |
27-
| engine-src | SKIP | Skipped because no `src/`, engine, or node runtime test lane files were changed. | src/ engine/shared runtime behavior | Not run. |
22+
| playwright-structure-preflight | PASS | Executed first because structural enforcement now gates expensive Playwright lanes. | Playwright lane ownership, file placement, imports, fixture documentation | `npm run test:lanes:preflight` passed and wrote `docs/dev/reports/playwright_structure_audit.md`. |
23+
| integration | PASS | Executed because `GameIndexPreviewManifestResolution.spec.mjs` moved from `games/` to `integration/` and the lane target changed. | Game index preview manifest handoff | `PLAYWRIGHT_BROWSERS_PATH=0 npm run test:lane:integration`; preflight passed, focused Pong handoff subset 3 passed. |
24+
| tool-runtime | PASS | Executed because runner preflight and Windows-safe Playwright argv handling changed. | Asset Manager V2, Preview Generator V2, Collision Inspector V2 runtime tests | `PLAYWRIGHT_BROWSERS_PATH=0 npm run test:lane:tool-runtime`; preflight passed, Asset Manager focused subset 5 passed, Preview Generator 7 passed, Collision Inspector 4 passed. |
25+
| workspace-contract | SKIP | Skipped because `npm run test:workspace-v2` compatibility was preserved and Workspace V2 wiring was not changed. | Workspace Manager V2 contract/lifecycle behavior | Not run. |
26+
| engine-src | SKIP | Skipped because no `src/`, engine Playwright, or node engine lane targets changed. | src/ engine/shared runtime behavior | Not run. |
2827
| samples | SKIP | Skipped because samples are on-request or affected-sample only and this PR did not impact samples. | On-request samples lane | Not run. |
2928

30-
## Moved Game Spec WARN Detail
29+
## Fast-Fail Coverage
3130

32-
Focused command:
31+
- Runner preflight validates selected lane targets before Playwright starts.
32+
- Structural audit validates lane ownership, file placement, missing relative imports, documented game fixtures, and shared helper naming.
33+
- Missing target files, invalid lane targets, invalid empty grep patterns, missing fixtures, or Windows shell quoting hazards fail before browser execution.
34+
- No deterministic setup failures were found in this run, so no lanes were fast-failed.
3335

34-
`PLAYWRIGHT_BROWSERS_PATH=0 node ./node_modules/@playwright/test/cli.js test tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs tests/playwright/games/AsteroidsBeatTiming.spec.mjs tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs --project=playwright --workers=1 --reporter=list`
36+
## Placement Corrections
3537

36-
Result: 5 passed, 1 failed.
38+
- `tests/playwright/tools/AsteroidsBackgroundAssetResolution.spec.mjs` -> `tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs`
39+
- `tests/playwright/tools/AsteroidsBeatTiming.spec.mjs` -> `tests/playwright/games/AsteroidsBeatTiming.spec.mjs`
40+
- `tests/playwright/tools/AsteroidsGameSceneCleanup.spec.mjs` -> `tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs`
41+
- `tests/playwright/tools/AsteroidsShipStateVisuals.spec.mjs` -> `tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs`
42+
- `tests/playwright/games/GameIndexPreviewManifestResolution.spec.mjs` -> `tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs`
3743

38-
Failing test:
44+
## Quoting Corrections
3945

40-
- `AsteroidsShipStateVisuals.spec.mjs > validates Asteroids ship visual states from manifest runtime rendering`
46+
- Playwright lane commands invoke `node node_modules/@playwright/test/cli.js` instead of shelling through a platform command wrapper.
47+
- Grep patterns such as `launch guard|temporary UAT context|rejects non-Workspace` are passed as literal argv values on Windows.
48+
- Runner command display quotes shell-sensitive argv values for readability without using shell interpretation for Playwright.
4149

42-
Observed failure: expected ship visual states to include `destroyed`, but the runtime returned `["idle", "move"]`. This was recorded as WARN because the PR only moves test ownership and runner preflight behavior; it does not alter Asteroids runtime or sample JSON.
50+
## Runtime Savings Observations
51+
52+
- Structural failures now stop before browser boot.
53+
- Unselected lanes are skipped before command construction reaches Playwright execution.
54+
- Workspace contract, engine/src, samples, and full samples smoke were not run because they were outside the affected surface.
55+
- Focused integration validation used the targeted Pong handoff subset instead of broad all-game coverage.
4356

4457
## Static Validation
4558

4659
- PASS `node --check scripts/audit-playwright-test-locations.mjs`
4760
- PASS `node --check scripts/run-targeted-test-lanes.mjs`
48-
- PASS `node --check tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs`
49-
- PASS `node --check tests/playwright/games/AsteroidsBeatTiming.spec.mjs`
50-
- PASS `node --check tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs`
51-
- PASS `node --check tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs`
52-
53-
## Runner Safeguards
54-
55-
- Playwright lane commands run through `node node_modules/@playwright/test/cli.js`, so grep patterns such as `launch guard|temporary UAT context|rejects non-Workspace` remain literal on Windows.
56-
- Playwright-bearing lanes run the location audit before expensive execution.
57-
- If the audit reports blocking placement findings, the lane runner writes the lane report and exits before running long Playwright suites.
58-
- No full lanes were rerun after known out-of-scope failures.
61+
- PASS `node --check tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs`

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"pretest": "node tools/dev/checkSharedExtractionGuard.mjs",
55
"test": "node ./scripts/run-node-tests.mjs",
66
"test:audit:locations": "node ./scripts/audit-playwright-test-locations.mjs",
7+
"test:playwright:structure": "node ./scripts/audit-playwright-test-locations.mjs",
78
"test:lanes": "node ./scripts/run-targeted-test-lanes.mjs",
89
"test:lanes:preflight": "node ./scripts/audit-playwright-test-locations.mjs",
910
"test:lane:workspace-contract": "node ./scripts/run-targeted-test-lanes.mjs --lane workspace-contract",

0 commit comments

Comments
 (0)