Skip to content

Commit 1e626a9

Browse files
committed
Add tool state contract tests for GameFoundryStudio - PR_26152_068-tool-state-contract-tests
1 parent e20baf1 commit 1e626a9

4 files changed

Lines changed: 965 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Tool State Contract Tests Validation
2+
3+
PR: PR_26152_068-tool-state-contract-tests
4+
5+
Date: 2026-06-02
6+
7+
## Scope
8+
9+
Added a reusable Tool State contract with validation fixtures and targeted tests.
10+
11+
No database implementation, authentication implementation, UI/page changes, CSS changes, HTML changes, or dependency changes were made.
12+
13+
## Files Validated
14+
15+
- `src/shared/contracts/toolStateContract.js`
16+
- `tests/fixtures/tool-states/tool-state-scenarios.json`
17+
- `tests/shared/ToolStateContract.test.mjs`
18+
- `src/shared/contracts/identityPermissionsContract.js`
19+
- `tests/shared/IdentityPermissionsContract.test.mjs`
20+
- `src/shared/contracts/projectContract.js`
21+
- `tests/shared/ProjectContract.test.mjs`
22+
23+
## Validation Lanes
24+
25+
- Lanes executed: contract - tool state ownership, project binding, type, visibility, version, status, edit policy, asset refs, and portable export validation.
26+
- Compatibility executed: identity permissions contract and project contract - confirms Tool State uses the approved identity/project contract vocabulary.
27+
- Lanes skipped: runtime, integration, engine, samples, recovery/UAT - this PR does not change runtime behavior, handoff contracts, engine code, samples, or UAT surfaces.
28+
- Samples decision: SKIP because this PR does not touch samples or sample JSON.
29+
- Playwright impacted: No. This PR adds shared contract data, fixtures, and targeted node tests only.
30+
31+
## Commands
32+
33+
```text
34+
node ./scripts/run-node-test-files.mjs tests/shared/ToolStateContract.test.mjs tests/shared/IdentityPermissionsContract.test.mjs tests/shared/ProjectContract.test.mjs
35+
```
36+
37+
Result:
38+
39+
```text
40+
PASS tests/shared/ToolStateContract.test.mjs
41+
PASS tests/shared/IdentityPermissionsContract.test.mjs
42+
PASS tests/shared/ProjectContract.test.mjs
43+
44+
3/3 targeted node test file(s) passed.
45+
```
46+
47+
```text
48+
git diff --check -- src/shared/contracts/toolStateContract.js tests/shared/ToolStateContract.test.mjs tests/fixtures/tool-states/tool-state-scenarios.json
49+
```
50+
51+
Result:
52+
53+
```text
54+
PASS - no whitespace errors reported.
55+
```
56+
57+
## Contract Coverage
58+
59+
- Tool state requires owner: PASS.
60+
- Tool state requires project: PASS.
61+
- Tool state requires tool type: PASS.
62+
- Visibility rules are enforced: PASS.
63+
- Archived tool states are immutable unless policy allows edits: PASS.
64+
- Tool state versioning is valid: PASS.
65+
- Exported tool states remain portable and exclude owner/project/database bindings: PASS.
66+
- Tool State contract remains compatible with Identity and Project contracts: PASS.
67+
68+
## Scope Guard
69+
70+
- No database files changed.
71+
- No authentication files changed.
72+
- No runtime/UI files changed.
73+
- No CSS files changed.
74+
- No HTML files changed.
75+
- No dependencies were added.
76+
- No samples tests were run.
77+
- No repo-wide tests were run.

0 commit comments

Comments
 (0)