@tayo-dev/rtl 1.3.0-alpha.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -4
- package/assets/codex/@tayo-dev/rtl-generate/SKILL.md +5 -4
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +283 -42
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/core/boundary-intelligence.d.ts +10 -0
- package/dist/core/boundary-intelligence.d.ts.map +1 -0
- package/dist/core/boundary-intelligence.js +254 -0
- package/dist/core/boundary-intelligence.js.map +1 -0
- package/dist/core/generator.d.ts +5 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +158 -13
- package/dist/core/generator.js.map +1 -1
- package/dist/core/resolver.d.ts +27 -2
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +128 -19
- package/dist/core/resolver.js.map +1 -1
- package/dist/core/scanner.d.ts +8 -0
- package/dist/core/scanner.d.ts.map +1 -1
- package/dist/core/scanner.js +38 -0
- package/dist/core/scanner.js.map +1 -1
- package/dist/core/scorer.d.ts.map +1 -1
- package/dist/core/scorer.js +103 -8
- package/dist/core/scorer.js.map +1 -1
- package/dist/core/suite-planner.d.ts +30 -0
- package/dist/core/suite-planner.d.ts.map +1 -0
- package/dist/core/suite-planner.js +182 -0
- package/dist/core/suite-planner.js.map +1 -0
- package/dist/templates/test-template.d.ts +22 -2
- package/dist/templates/test-template.d.ts.map +1 -1
- package/dist/templates/test-template.js +37 -6
- package/dist/templates/test-template.js.map +1 -1
- package/dist/types/recording.d.ts +44 -0
- package/dist/types/recording.d.ts.map +1 -1
- package/dist/types/recording.js.map +1 -1
- package/dist/types/score.d.ts +23 -0
- package/dist/types/score.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,12 +98,21 @@ After installation, use `taro generate` directly or call the runtime-native inst
|
|
|
98
98
|
|
|
99
99
|
### Record a user flow
|
|
100
100
|
|
|
101
|
-
Open Chrome DevTools → Recorder panel → click "Start new recording" → perform your user flow → click "End recording".
|
|
101
|
+
Open Chrome DevTools → Recorder panel → click "Start new recording" → perform your user flow → click "End recording".
|
|
102
|
+
|
|
103
|
+
Taro supports two export paths:
|
|
104
|
+
|
|
105
|
+
- Testing Library Recorder JS baseline export: save as `recording.js`
|
|
106
|
+
- Chrome Recorder JSON export: save as `recording.json`
|
|
102
107
|
|
|
103
108
|
### Generate the test
|
|
104
109
|
|
|
105
110
|
```bash
|
|
111
|
+
# JS baseline path
|
|
106
112
|
taro generate ./recording.js
|
|
113
|
+
|
|
114
|
+
# Supported JSON path
|
|
115
|
+
taro generate ./recording.json
|
|
107
116
|
```
|
|
108
117
|
|
|
109
118
|
Expected output:
|
|
@@ -117,17 +126,30 @@ Created: src/components/MyComponent.test.tsx
|
|
|
117
126
|
|
|
118
127
|
On subsequent runs in the same project, Taro reads `.taro/conventions.json` to match your test style automatically.
|
|
119
128
|
|
|
129
|
+
### Draft-quality output is explicit
|
|
130
|
+
|
|
131
|
+
When Taro cannot prove the final render/query boundary yet, it keeps the output writable but marks it as draft-quality instead of pretending the gaps are solved.
|
|
132
|
+
|
|
133
|
+
```text
|
|
134
|
+
[taro] Score: 77/100 (C) — query: 100, assertions: 30, structure: 70, boundary: 100
|
|
135
|
+
[taro] Manual review required — this generated test is still a draft (77/100, C).
|
|
136
|
+
[taro] Top blockers: The generated test still renders <App /> instead of a resolved repo target. | Boundary warnings remain in the generated file, so the render/mock boundary still needs cleanup.
|
|
137
|
+
// taro-query-checkpoint: click step requires manual RTL query recovery
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
That draft banner is advisory. Taro does not block writes, but it does tell you when import targets, placeholder queries, or unresolved boundaries still need cleanup.
|
|
141
|
+
|
|
120
142
|
## CLI Reference
|
|
121
143
|
|
|
122
144
|
### `taro generate <file>`
|
|
123
145
|
|
|
124
|
-
Generates a React Testing Library test from a Testing Library Recorder export.
|
|
146
|
+
Generates a React Testing Library test from a Testing Library Recorder JS export or a Chrome Recorder JSON export.
|
|
125
147
|
|
|
126
148
|
**Arguments:**
|
|
127
149
|
|
|
128
150
|
| Argument | Description |
|
|
129
151
|
|----------|-------------|
|
|
130
|
-
| `<file>` | Path to the recording file. Accepts Testing Library Recorder JS files (`.js`). |
|
|
152
|
+
| `<file>` | Path to the recording file. Accepts Testing Library Recorder JS files (`.js`) and Chrome Recorder JSON files (`.json`). |
|
|
131
153
|
|
|
132
154
|
**Options:**
|
|
133
155
|
|
|
@@ -159,7 +181,8 @@ taro generate --force ./recordings/checkout-flow.js
|
|
|
159
181
|
If `--output` is not provided, Taro derives the output path from the input file: `{input-dir}/{input-basename}.test.tsx`. For example, `./recordings/login.js` → `./recordings/login.test.tsx`.
|
|
160
182
|
|
|
161
183
|
**Supported input formats:**
|
|
162
|
-
- Testing Library Recorder JS (`.js`) —
|
|
184
|
+
- Testing Library Recorder JS (`.js`) — primary v1.3 path; Taro treats this as a baseline artifact to parse, enrich, and transform into a project-shaped RTL test
|
|
185
|
+
- Chrome Recorder JSON (`.json`) — supported parity path; Taro preserves the existing JSON generate flow while JS fidelity improves
|
|
163
186
|
|
|
164
187
|
## Worked Example
|
|
165
188
|
|
|
@@ -231,6 +254,16 @@ describe('login flow', () => {
|
|
|
231
254
|
|
|
232
255
|
> **Note:** The component import path (`../LoginPage`) is a placeholder. Taro generates a comment in the file indicating where to update it.
|
|
233
256
|
|
|
257
|
+
### JSON is also supported
|
|
258
|
+
|
|
259
|
+
If you export Chrome Recorder JSON instead, the command surface stays the same:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
taro generate ./login-flow.json --dry-run
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
JSON generation is still supported, but it does not inherit the repo-aware JS recovery stack. When the generated preview contains placeholder queries or weak assertions, Taro keeps those gaps explicit with score and manual-review messaging instead of fabricating stronger evidence.
|
|
266
|
+
|
|
234
267
|
## Agent Usage
|
|
235
268
|
|
|
236
269
|
After installation, each runtime gets a namespaced help entrypoint plus a generate command or skill that routes back to `taro generate`.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "@tayo-dev/rtl-generate"
|
|
3
|
-
description: "Generate React Testing Library tests from Recorder exports with Tayo."
|
|
3
|
+
description: "Generate React Testing Library tests from Recorder JS or Chrome Recorder JSON exports with Tayo."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Tayo Generate
|
|
7
7
|
|
|
8
|
-
Use `$@tayo-dev/rtl-generate` when the user wants to turn a Recorder export into a React Testing Library test.
|
|
8
|
+
Use `$@tayo-dev/rtl-generate` when the user wants to turn a Recorder JS export or Chrome Recorder JSON export into a React Testing Library test.
|
|
9
9
|
|
|
10
10
|
## Inputs
|
|
11
11
|
|
|
12
|
-
- path to the recording file
|
|
12
|
+
- path to the recording file (`.js` or `.json`)
|
|
13
13
|
- optional `--output <path>`
|
|
14
14
|
- optional `--dry-run`
|
|
15
15
|
- optional `--force`
|
|
@@ -24,4 +24,5 @@ Report:
|
|
|
24
24
|
|
|
25
25
|
- the generated test path
|
|
26
26
|
- the Tayo score
|
|
27
|
-
-
|
|
27
|
+
- whether the output still needs manual review and the top blockers if present
|
|
28
|
+
- any follow-up work required to fix component imports, placeholder queries, or flaky selectors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+CnC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AA2lBD,wBAAgB,qBAAqB,IAAI,OAAO,CAqL/C"}
|
|
@@ -10,15 +10,17 @@ import { cwd } from 'node:process';
|
|
|
10
10
|
import pc from 'picocolors';
|
|
11
11
|
import { generateTest } from '../../core/generator.js';
|
|
12
12
|
import { writeTestFile } from '../../core/writer.js';
|
|
13
|
-
import { captureVisualState,
|
|
13
|
+
import { captureVisualState, resolveSelector, } from '../../core/resolver.js';
|
|
14
14
|
import { scoreGeneratedTest } from '../../core/scorer.js';
|
|
15
|
+
import { analyzeBoundaryIsolation } from '../../core/boundary-intelligence.js';
|
|
15
16
|
import { verifySyntax } from '../../core/verifier.js';
|
|
16
|
-
import { analyzeSingleTestFile, mergeConventions, readConventions, scanConventions, } from '../../core/scanner.js';
|
|
17
|
+
import { analyzeSingleTestFile, discoverRepoRenderTargets, mergeConventions, readConventions, scanConventions, } from '../../core/scanner.js';
|
|
17
18
|
import { analyzeRecording, findVisualCaptureCandidates, } from '../../core/recording-intelligence.js';
|
|
18
19
|
import { analyzeMocks } from '../../core/mock-intelligence.js';
|
|
19
20
|
import { generateTestFromGroups, emitQuerySummary } from '../../core/generator.js';
|
|
20
21
|
import { loadInput } from '../../core/input-loader.js';
|
|
21
22
|
import { normalizeJsBaseline } from '../../core/baseline-normalizer.js';
|
|
23
|
+
import { planJsSuite } from '../../core/suite-planner.js';
|
|
22
24
|
function deriveOutputPath(inputPath) {
|
|
23
25
|
const dir = dirname(inputPath);
|
|
24
26
|
const name = basename(inputPath).replace(/\.(json|[cm]?[jt]sx?)$/, '');
|
|
@@ -29,9 +31,19 @@ function logScore(scoreResult) {
|
|
|
29
31
|
` Score: ${scoreResult.total}/100 (${scoreResult.grade}) — ` +
|
|
30
32
|
`query: ${scoreResult.dimensions.queryQuality}, ` +
|
|
31
33
|
`assertions: ${scoreResult.dimensions.assertionSpecificity}, ` +
|
|
32
|
-
`structure: ${scoreResult.dimensions.testStructure}`
|
|
34
|
+
`structure: ${scoreResult.dimensions.testStructure}, ` +
|
|
35
|
+
`boundary: ${scoreResult.dimensions.boundaryIsolation}`);
|
|
33
36
|
}
|
|
34
|
-
function
|
|
37
|
+
function emitLowConfidenceBanner(scoreResult) {
|
|
38
|
+
if (!scoreResult.requiresReview) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.warn(pc.yellow(`[taro] Manual review required — this generated test is still a draft (${scoreResult.total}/100, ${scoreResult.grade}).`));
|
|
42
|
+
if (scoreResult.blockers.length > 0) {
|
|
43
|
+
console.warn(pc.yellow(`[taro] Top blockers: ${scoreResult.blockers.join(' | ')}`));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function emitScoreHints(scoreResult, queryResults = [], boundaryIssues = analyzeBoundaryIsolation('')) {
|
|
35
47
|
if (scoreResult.dimensions.queryQuality < 60) {
|
|
36
48
|
const testIdCount = queryResults.filter((queryResult) => {
|
|
37
49
|
return queryResult.method === 'getByTestId';
|
|
@@ -44,6 +56,12 @@ function emitScoreHints(scoreResult, queryResults = []) {
|
|
|
44
56
|
if (scoreResult.dimensions.testStructure < 60) {
|
|
45
57
|
console.log(pc.yellow('[taro] Tip: Split into multiple it() blocks for better test organization'));
|
|
46
58
|
}
|
|
59
|
+
if (scoreResult.dimensions.boundaryIsolation < 60) {
|
|
60
|
+
for (const issue of boundaryIssues) {
|
|
61
|
+
console.warn(pc.yellow(`[taro] Boundary: ${issue.message}`));
|
|
62
|
+
console.warn(pc.yellow(`[taro] Tip: ${issue.suggestion}`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
47
65
|
}
|
|
48
66
|
function summarizeCleanup(analyzedRecording) {
|
|
49
67
|
const { diagnostics } = analyzedRecording;
|
|
@@ -84,6 +102,79 @@ function queryDescriptorToResult(descriptor) {
|
|
|
84
102
|
line: descriptor.line,
|
|
85
103
|
};
|
|
86
104
|
}
|
|
105
|
+
function isQueryDescriptor(value) {
|
|
106
|
+
return (typeof value === 'object' &&
|
|
107
|
+
value !== null &&
|
|
108
|
+
'method' in value &&
|
|
109
|
+
typeof value.method === 'string');
|
|
110
|
+
}
|
|
111
|
+
function getStepQueryDescriptor(step) {
|
|
112
|
+
const query = step.metadata?.query;
|
|
113
|
+
return isQueryDescriptor(query) ? query : undefined;
|
|
114
|
+
}
|
|
115
|
+
function groupSelectorsByStepId(selectors) {
|
|
116
|
+
const grouped = new Map();
|
|
117
|
+
for (const selector of selectors) {
|
|
118
|
+
const current = grouped.get(selector.stepId) ?? [];
|
|
119
|
+
current.push(selector);
|
|
120
|
+
grouped.set(selector.stepId, current);
|
|
121
|
+
}
|
|
122
|
+
return grouped;
|
|
123
|
+
}
|
|
124
|
+
function mergeSelectorResolutionWarnings(resolution, warnings) {
|
|
125
|
+
const mergedWarnings = Array.from(new Set([...resolution.warnings, ...warnings]));
|
|
126
|
+
if (mergedWarnings.length === resolution.warnings.length) {
|
|
127
|
+
return resolution;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
...resolution,
|
|
131
|
+
warnings: mergedWarnings,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function applySelectorResolution(step, resolution) {
|
|
135
|
+
return {
|
|
136
|
+
...step,
|
|
137
|
+
metadata: {
|
|
138
|
+
...step.metadata,
|
|
139
|
+
selectorResolution: resolution,
|
|
140
|
+
...(resolution.status === 'resolved' ? { query: resolution.query } : {}),
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function rehydrateItGroups(itGroups, steps) {
|
|
145
|
+
const stepMap = new Map(steps.map((step) => [step.id, step]));
|
|
146
|
+
return itGroups.map((group) => ({
|
|
147
|
+
...group,
|
|
148
|
+
steps: group.steps.map((step) => (step.id ? stepMap.get(step.id) ?? step : step)),
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
function rehydrateSuitePlan(plan, steps) {
|
|
152
|
+
const stepMap = new Map(steps.map((step) => [step.id, step]));
|
|
153
|
+
const mapStep = (step) => (step.id ? stepMap.get(step.id) ?? step : step);
|
|
154
|
+
return {
|
|
155
|
+
...plan,
|
|
156
|
+
itGroups: rehydrateItGroups(plan.itGroups, steps),
|
|
157
|
+
helpers: plan.helpers.map((helper) => ({
|
|
158
|
+
...helper,
|
|
159
|
+
steps: helper.steps.map(mapStep),
|
|
160
|
+
})),
|
|
161
|
+
scenarios: plan.scenarios.map((scenario) => ({
|
|
162
|
+
...scenario,
|
|
163
|
+
steps: scenario.steps.map(mapStep),
|
|
164
|
+
})),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
function dedupeQueryResults(queryResults) {
|
|
168
|
+
const seen = new Set();
|
|
169
|
+
return queryResults.filter((queryResult) => {
|
|
170
|
+
const key = `${queryResult.method}:${queryResult.query}:${queryResult.line ?? 'na'}`;
|
|
171
|
+
if (seen.has(key)) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
seen.add(key);
|
|
175
|
+
return true;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
87
178
|
function getPrimarySelector(recording) {
|
|
88
179
|
return recording.baseline?.selectors[0]?.selector;
|
|
89
180
|
}
|
|
@@ -133,50 +224,157 @@ function summarizeMockAnalysis(mockAnalysis) {
|
|
|
133
224
|
console.warn(pc.yellow(`[taro] Mock stability: ${topWarning.reason} (${topWarning.file})`));
|
|
134
225
|
}
|
|
135
226
|
}
|
|
227
|
+
function summarizeBoundaryWarnings(warnings) {
|
|
228
|
+
for (const warning of warnings) {
|
|
229
|
+
console.warn(pc.yellow(`[taro] Boundary: ${warning}`));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function tokenizeSuiteHint(value) {
|
|
233
|
+
return value
|
|
234
|
+
.toLowerCase()
|
|
235
|
+
.split(/[^a-z0-9]+/)
|
|
236
|
+
.filter((token) => token.length >= 3);
|
|
237
|
+
}
|
|
238
|
+
function scoreRenderTargetCandidate(candidate, recording, mockAnalysis, suitePlan) {
|
|
239
|
+
const recordingTokens = new Set([
|
|
240
|
+
...tokenizeSuiteHint(recording.title),
|
|
241
|
+
...recording.steps.flatMap((step) => tokenizeSuiteHint(step.target ?? '')),
|
|
242
|
+
]);
|
|
243
|
+
const candidateTokens = new Set([
|
|
244
|
+
...tokenizeSuiteHint(candidate.symbol),
|
|
245
|
+
...tokenizeSuiteHint(candidate.importPath),
|
|
246
|
+
...tokenizeSuiteHint(candidate.sourceTestFile),
|
|
247
|
+
...candidate.helperNames.flatMap((name) => tokenizeSuiteHint(name)),
|
|
248
|
+
]);
|
|
249
|
+
let score = 0;
|
|
250
|
+
for (const token of candidateTokens) {
|
|
251
|
+
if (recordingTokens.has(token)) {
|
|
252
|
+
score += 3;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (/Module$/u.test(candidate.symbol) && suitePlan.renderBoundary.kind === 'module') {
|
|
256
|
+
score += 4;
|
|
257
|
+
}
|
|
258
|
+
if (candidate.usesWithin) {
|
|
259
|
+
score += 1;
|
|
260
|
+
}
|
|
261
|
+
if (mockAnalysis?.repeatedTargets.length) {
|
|
262
|
+
score += 1;
|
|
263
|
+
}
|
|
264
|
+
return score;
|
|
265
|
+
}
|
|
266
|
+
function resolveRepoRenderTarget(params) {
|
|
267
|
+
const { candidates, recording, mockAnalysis, suitePlan } = params;
|
|
268
|
+
if (candidates.length === 0) {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
const ranked = candidates
|
|
272
|
+
.map((candidate) => ({
|
|
273
|
+
candidate,
|
|
274
|
+
score: scoreRenderTargetCandidate(candidate, recording, mockAnalysis, suitePlan),
|
|
275
|
+
}))
|
|
276
|
+
.filter((entry) => entry.score > 0)
|
|
277
|
+
.sort((left, right) => right.score - left.score || left.candidate.symbol.localeCompare(right.candidate.symbol));
|
|
278
|
+
return ranked[0]?.candidate ?? null;
|
|
279
|
+
}
|
|
280
|
+
function applyRepoRenderTarget(suitePlan, renderTarget) {
|
|
281
|
+
if (!renderTarget) {
|
|
282
|
+
return suitePlan;
|
|
283
|
+
}
|
|
284
|
+
return {
|
|
285
|
+
...suitePlan,
|
|
286
|
+
renderBoundary: {
|
|
287
|
+
...suitePlan.renderBoundary,
|
|
288
|
+
resolvedTarget: renderTarget.symbol,
|
|
289
|
+
confidence: suitePlan.renderBoundary.confidence === 'low' ? 'medium' : suitePlan.renderBoundary.confidence,
|
|
290
|
+
},
|
|
291
|
+
warnings: suitePlan.warnings.filter((warning) => !warning.includes('Taro could not resolve the exact render target from repo context') &&
|
|
292
|
+
!warning.includes('Prefer a repo-local module/container render boundary')),
|
|
293
|
+
};
|
|
294
|
+
}
|
|
136
295
|
function findRecordingUrl(analyzedRecording) {
|
|
137
296
|
return analyzedRecording.url ?? analyzedRecording.steps.find((step) => step.action === 'navigate')?.target;
|
|
138
297
|
}
|
|
139
|
-
async function
|
|
298
|
+
async function resolveJsGeneration(recording, itGroups) {
|
|
140
299
|
const baseline = recording.baseline;
|
|
141
300
|
if (!baseline) {
|
|
142
|
-
return
|
|
301
|
+
return {
|
|
302
|
+
itGroups,
|
|
303
|
+
queryResults: [],
|
|
304
|
+
recording,
|
|
305
|
+
warnings: [],
|
|
306
|
+
};
|
|
143
307
|
}
|
|
144
308
|
const queryResults = baseline.queries.map(queryDescriptorToResult);
|
|
145
|
-
|
|
309
|
+
const warnings = [];
|
|
310
|
+
const selectorGroups = groupSelectorsByStepId(baseline.selectors);
|
|
311
|
+
const stepMap = new Map(recording.steps
|
|
312
|
+
.filter((step) => Boolean(step.id))
|
|
313
|
+
.map((step) => [step.id, step]));
|
|
314
|
+
const updatedSteps = new Map();
|
|
315
|
+
if (selectorGroups.size > 0 && recording.url) {
|
|
146
316
|
console.log(pc.dim('[taro]') +
|
|
147
317
|
` Resolving ${baseline.selectors.length} selector(s) via Playwright...`);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
318
|
+
}
|
|
319
|
+
for (const [stepId, selectors] of selectorGroups) {
|
|
320
|
+
const step = updatedSteps.get(stepId) ?? stepMap.get(stepId);
|
|
321
|
+
if (!step) {
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
const preservedQuery = getStepQueryDescriptor(step);
|
|
325
|
+
const stepWarnings = [];
|
|
326
|
+
let chosenResolution;
|
|
327
|
+
if (preservedQuery) {
|
|
328
|
+
chosenResolution = await resolveSelector(selectors[0], {
|
|
329
|
+
url: recording.url,
|
|
330
|
+
preservedQuery,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
for (const selector of selectors) {
|
|
335
|
+
const resolution = await resolveSelector(selector, {
|
|
336
|
+
url: recording.url,
|
|
337
|
+
});
|
|
338
|
+
if (resolution.status === 'resolved') {
|
|
339
|
+
chosenResolution = resolution;
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
stepWarnings.push(...resolution.warnings);
|
|
343
|
+
chosenResolution ??= resolution;
|
|
166
344
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
345
|
+
}
|
|
346
|
+
if (!chosenResolution) {
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const resolution = mergeSelectorResolutionWarnings(chosenResolution, stepWarnings);
|
|
350
|
+
updatedSteps.set(stepId, applySelectorResolution(step, resolution));
|
|
351
|
+
if (resolution.status === 'resolved') {
|
|
352
|
+
if (resolution.outcome !== 'preserved-query') {
|
|
353
|
+
queryResults.push(queryDescriptorToResult(resolution.query));
|
|
170
354
|
}
|
|
171
|
-
|
|
172
|
-
queryResults.push({ ...result, matcher, line: descriptor.line });
|
|
355
|
+
continue;
|
|
173
356
|
}
|
|
357
|
+
warnings.push(`QRY-03 [${stepId}] unresolved selector ${resolution.selector.selector}: ${resolution.reason}`);
|
|
174
358
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
359
|
+
const resolvedSteps = recording.steps.map((step) => step.id ? updatedSteps.get(step.id) ?? step : step);
|
|
360
|
+
return {
|
|
361
|
+
itGroups: rehydrateItGroups(itGroups, resolvedSteps),
|
|
362
|
+
queryResults: dedupeQueryResults(queryResults),
|
|
363
|
+
recording: {
|
|
364
|
+
...recording,
|
|
365
|
+
baseline: {
|
|
366
|
+
...baseline,
|
|
367
|
+
itGroups: rehydrateItGroups(baseline.itGroups, resolvedSteps),
|
|
368
|
+
},
|
|
369
|
+
steps: resolvedSteps,
|
|
370
|
+
},
|
|
371
|
+
warnings,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
function summarizeSelectorWarnings(warnings) {
|
|
375
|
+
for (const warning of warnings) {
|
|
376
|
+
console.warn(pc.yellow(`[taro] ${warning}`));
|
|
178
377
|
}
|
|
179
|
-
return queryResults;
|
|
180
378
|
}
|
|
181
379
|
async function maybeCaptureVisualState(params) {
|
|
182
380
|
const { analyzedRecording, projectRoot, selector, url } = params;
|
|
@@ -255,8 +453,8 @@ async function finalizeGeneratedOutput(params) {
|
|
|
255
453
|
export function createGenerateCommand() {
|
|
256
454
|
const generate = new Command('generate');
|
|
257
455
|
generate
|
|
258
|
-
.description('Generate RTL test from Recorder export')
|
|
259
|
-
.argument('<file>', 'Path to the recorder export file')
|
|
456
|
+
.description('Generate RTL test from Recorder JS or Chrome Recorder JSON export')
|
|
457
|
+
.argument('<file>', 'Path to the recorder export file (.js or .json)')
|
|
260
458
|
.option('-o, --output <path>', 'Output file path for the generated test')
|
|
261
459
|
.option('-d, --dry-run', 'Preview the generated test without writing to disk', false)
|
|
262
460
|
.option('-f, --force', 'Overwrite existing test file', false)
|
|
@@ -281,12 +479,14 @@ export function createGenerateCommand() {
|
|
|
281
479
|
}
|
|
282
480
|
const normalizedRecording = parsedInput.source === 'js' ? normalizeJsBaseline(parsedInput) : parsedInput.recording;
|
|
283
481
|
let conventions = undefined;
|
|
482
|
+
let repoRenderTargets = [];
|
|
284
483
|
if (parsedInput.source === 'js') {
|
|
285
484
|
conventions = await readConventions(projectRoot);
|
|
286
485
|
if (!conventions) {
|
|
287
486
|
console.log(pc.dim('[taro]') + ' Scanning project conventions...');
|
|
288
487
|
conventions = await scanConventions(projectRoot);
|
|
289
488
|
}
|
|
489
|
+
repoRenderTargets = await discoverRepoRenderTargets(projectRoot);
|
|
290
490
|
}
|
|
291
491
|
console.log(pc.green('Parsed:') +
|
|
292
492
|
` ${pc.bold(normalizedRecording.title)} — ${normalizedRecording.steps.length} steps` +
|
|
@@ -304,24 +504,65 @@ export function createGenerateCommand() {
|
|
|
304
504
|
summarizeVisualState(visualState);
|
|
305
505
|
const mockAnalysis = await maybeAnalyzeMocks(projectRoot);
|
|
306
506
|
summarizeMockAnalysis(mockAnalysis);
|
|
307
|
-
const queryResults = parsedInput.source === 'js' ? await resolveJsQueryResults(normalizedRecording) : [];
|
|
308
507
|
const outputPath = options.output ?? deriveOutputPath(filePath);
|
|
508
|
+
const rawJsSuitePlan = parsedInput.source === 'js'
|
|
509
|
+
? planJsSuite({
|
|
510
|
+
recording: normalizedRecording,
|
|
511
|
+
analyzedRecording,
|
|
512
|
+
mockAnalysis,
|
|
513
|
+
fallbackTitle: normalizedRecording.title,
|
|
514
|
+
})
|
|
515
|
+
: null;
|
|
516
|
+
const repoRenderTarget = parsedInput.source === 'js' && rawJsSuitePlan
|
|
517
|
+
? resolveRepoRenderTarget({
|
|
518
|
+
candidates: repoRenderTargets,
|
|
519
|
+
recording: normalizedRecording,
|
|
520
|
+
mockAnalysis,
|
|
521
|
+
suitePlan: rawJsSuitePlan,
|
|
522
|
+
})
|
|
523
|
+
: null;
|
|
524
|
+
const jsSuitePlan = rawJsSuitePlan
|
|
525
|
+
? applyRepoRenderTarget(rawJsSuitePlan, repoRenderTarget)
|
|
526
|
+
: null;
|
|
527
|
+
if (jsSuitePlan) {
|
|
528
|
+
summarizeBoundaryWarnings(jsSuitePlan.warnings);
|
|
529
|
+
}
|
|
530
|
+
const resolvedJsGeneration = parsedInput.source === 'js'
|
|
531
|
+
? await resolveJsGeneration(normalizedRecording, jsSuitePlan?.itGroups ?? toItGroups(analyzedRecording, normalizedRecording.title))
|
|
532
|
+
: null;
|
|
533
|
+
if (resolvedJsGeneration) {
|
|
534
|
+
summarizeSelectorWarnings(resolvedJsGeneration.warnings);
|
|
535
|
+
}
|
|
536
|
+
const hydratedSuitePlan = parsedInput.source === 'js' && jsSuitePlan
|
|
537
|
+
? rehydrateSuitePlan(jsSuitePlan, resolvedJsGeneration?.recording.steps ?? normalizedRecording.steps)
|
|
538
|
+
: jsSuitePlan;
|
|
309
539
|
const generated = parsedInput.source === 'js'
|
|
310
|
-
? generateTestFromGroups(normalizedRecording.title, toItGroups(analyzedRecording, normalizedRecording.title), {
|
|
540
|
+
? generateTestFromGroups(normalizedRecording.title, resolvedJsGeneration?.itGroups ?? hydratedSuitePlan?.itGroups ?? toItGroups(analyzedRecording, normalizedRecording.title), {
|
|
311
541
|
outputPath,
|
|
312
542
|
dryRun: options.dryRun,
|
|
313
543
|
conventions,
|
|
314
|
-
queryResults,
|
|
544
|
+
queryResults: resolvedJsGeneration?.queryResults ?? [],
|
|
545
|
+
helpers: hydratedSuitePlan?.helpers,
|
|
546
|
+
scenarios: hydratedSuitePlan?.scenarios,
|
|
547
|
+
renderTarget: repoRenderTarget,
|
|
315
548
|
})
|
|
316
549
|
: generateTest(analyzedRecording, { outputPath, dryRun: options.dryRun });
|
|
550
|
+
if (hydratedSuitePlan?.warnings.length) {
|
|
551
|
+
generated.code = [
|
|
552
|
+
...hydratedSuitePlan.warnings.map((warning) => `// taro-boundary-warning: ${warning}`),
|
|
553
|
+
generated.code,
|
|
554
|
+
].join('\n');
|
|
555
|
+
}
|
|
317
556
|
if (parsedInput.source === 'js') {
|
|
318
|
-
emitQuerySummary(queryResults);
|
|
557
|
+
emitQuerySummary(resolvedJsGeneration?.queryResults ?? []);
|
|
319
558
|
}
|
|
320
559
|
const scoreResult = parsedInput.source === 'js'
|
|
321
|
-
? scoreGeneratedTest(generated.code, queryResults)
|
|
560
|
+
? scoreGeneratedTest(generated.code, resolvedJsGeneration?.queryResults ?? [])
|
|
322
561
|
: scoreGeneratedTest(generated.code);
|
|
562
|
+
const boundaryIssues = analyzeBoundaryIsolation(generated.code);
|
|
323
563
|
logScore(scoreResult);
|
|
324
|
-
|
|
564
|
+
emitLowConfidenceBanner(scoreResult);
|
|
565
|
+
emitScoreHints(scoreResult, resolvedJsGeneration?.queryResults ?? [], boundaryIssues);
|
|
325
566
|
if (options.dryRun) {
|
|
326
567
|
console.log(pc.yellow('\nDry run — test preview:\n'));
|
|
327
568
|
console.log(pc.dim('─'.repeat(60)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type BoundaryIssueKind = 'leaf-render-boundary' | 'inline-hook-mock' | 'helper-embedded-assertion' | 'positional-control-selection';
|
|
2
|
+
export interface BoundaryIssue {
|
|
3
|
+
kind: BoundaryIssueKind;
|
|
4
|
+
severity: 'warning';
|
|
5
|
+
message: string;
|
|
6
|
+
suggestion: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function analyzeBoundaryIsolation(code: string): BoundaryIssue[];
|
|
9
|
+
export declare function calculateBoundaryIsolationScore(code: string): number;
|
|
10
|
+
//# sourceMappingURL=boundary-intelligence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundary-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/boundary-intelligence.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,iBAAiB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,2BAA2B,GAC3B,8BAA8B,CAAA;AAElC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAA;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAoHD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA8KtE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAapE"}
|