You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ All notable changes to this project are documented in this file.
17
17
- Added first-party snapshots, mocks, run-diff artifacts, and watch mode for tighter agent rerun loops.
18
18
- Added a lightweight DOM-oriented `jsdom` UI test layer with `render`, `screen`, `fireEvent`, `waitFor`, `cleanup`, and UI matchers for text, attributes, and document presence.
19
19
- Added deterministic async UI test controls with fake timers, microtask flushing, and first-party fetch mocking for `jsdom` tests.
20
+
- Expanded generated React and Next component adapters with DOM-state contract snapshots and provider-aware `wrapRender(...)` support in `themis.generate.js` / `themis.generate.cjs`.
20
21
- Added an in-repo VS Code extension scaffold for artifact-driven result viewing, reruns, and HTML report opening.
21
22
- Expanded the VS Code extension scaffold with generated-review navigation for source/test/hint mappings and unresolved generation backlog.
22
23
- Refreshed README, AGENTS, and supporting docs to match the current package scope, JS/TS feature set, artifact contracts, and extension surface.
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,11 +104,12 @@ Generated files land under `tests/generated` by default. Each generated test:
104
104
- snapshots a normalized runtime contract for the module surface
105
105
- adds scenario adapters for React components/hooks, Next app/router files, route handlers, and service functions when Themis can infer or read useful inputs
106
106
- captures React interaction and hook state-transition contracts when event handlers or stateful methods are available
107
+
- snapshots DOM-state contracts for generated React and Next component adapters so humans and agents can review visible structure, roles, attributes, and interaction-driven UI changes
107
108
- fails with a regeneration hint when the source drifts after the scan
108
109
109
110
Themis also supports per-file generation hints with sidecars like `src/components/Button.themis.json` so humans and agents can provide props, args, route requests, and route context. When those sidecars do not exist yet, `--write-hints` can scaffold them automatically from the current source analysis.
110
111
111
-
For repo-wide generation defaults, add `themis.generate.js` or `themis.generate.cjs` at the project root. Providers in that file can match source paths, supply shared props/args/interaction plans, and register runtime mocks for generated React, route, and service adapters.
112
+
For repo-wide generation defaults, add `themis.generate.js` or `themis.generate.cjs` at the project root. Providers in that file can match source paths, supply shared props/args/interaction plans, register runtime mocks, and wrap generated component renders so DOM-state snapshots include the same provider shells humans use in app tests.
112
113
113
114
For CI and agent loops, Themis can also enforce generation quality instead of only writing files. Strict runs emit a structured backlog, fail on unresolved scan debt, and hand back exact remediation commands.
- scenario adapters cover React components, React hooks, Next app components, Next route handlers, generic route handlers, and Node service functions when inputs can be inferred or hinted
33
33
- React component and hook adapters also snapshot inferred interaction/state contracts when event handlers or zero-argument stateful methods are available
34
-
- project-level providers from `themis.generate.js` / `themis.generate.cjs` can match source files, inject shared fixture data, and register runtime mocks for generated adapters
34
+
- React and Next component adapters also emit DOM-state snapshots that capture visible text, inferred roles, non-event attributes, and interaction-driven UI changes
35
+
- project-level providers from `themis.generate.js` / `themis.generate.cjs` can match source files, inject shared fixture data, register runtime mocks, and wrap generated component renders for provider-aware DOM contracts
35
36
-`.themis/generate-map.json` records source-to-generated-test mappings plus scenario metadata
36
37
-`.themis/generate-last.json` stores the full machine-readable generate payload
37
38
-`.themis/generate-handoff.json` stores a compact prompt-ready handoff payload for agents
@@ -82,6 +83,7 @@ Project-level provider modules are supported via `themis.generate.js` or `themis
- any of the same static fixture keys as sidecars (`componentProps`, `componentInteractions`, `hookArgs`, `hookInteractions`, `serviceArgs`, `routeRequests`, `routeContext`, `scenarios`)
84
85
-`applyMocks(context)`: runtime mock registration for generated tests
86
+
-`wrapRender(context)`: provider-aware render wrapping for generated React and Next component adapters
85
87
86
88
`applyMocks(context)` receives:
87
89
@@ -92,6 +94,14 @@ Project-level provider modules are supported via `themis.generate.js` or `themis
0 commit comments