@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.
Files changed (38) hide show
  1. package/README.md +37 -4
  2. package/assets/codex/@tayo-dev/rtl-generate/SKILL.md +5 -4
  3. package/dist/cli/commands/generate.d.ts.map +1 -1
  4. package/dist/cli/commands/generate.js +283 -42
  5. package/dist/cli/commands/generate.js.map +1 -1
  6. package/dist/core/boundary-intelligence.d.ts +10 -0
  7. package/dist/core/boundary-intelligence.d.ts.map +1 -0
  8. package/dist/core/boundary-intelligence.js +254 -0
  9. package/dist/core/boundary-intelligence.js.map +1 -0
  10. package/dist/core/generator.d.ts +5 -1
  11. package/dist/core/generator.d.ts.map +1 -1
  12. package/dist/core/generator.js +158 -13
  13. package/dist/core/generator.js.map +1 -1
  14. package/dist/core/resolver.d.ts +27 -2
  15. package/dist/core/resolver.d.ts.map +1 -1
  16. package/dist/core/resolver.js +128 -19
  17. package/dist/core/resolver.js.map +1 -1
  18. package/dist/core/scanner.d.ts +8 -0
  19. package/dist/core/scanner.d.ts.map +1 -1
  20. package/dist/core/scanner.js +38 -0
  21. package/dist/core/scanner.js.map +1 -1
  22. package/dist/core/scorer.d.ts.map +1 -1
  23. package/dist/core/scorer.js +103 -8
  24. package/dist/core/scorer.js.map +1 -1
  25. package/dist/core/suite-planner.d.ts +30 -0
  26. package/dist/core/suite-planner.d.ts.map +1 -0
  27. package/dist/core/suite-planner.js +182 -0
  28. package/dist/core/suite-planner.js.map +1 -0
  29. package/dist/templates/test-template.d.ts +22 -2
  30. package/dist/templates/test-template.d.ts.map +1 -1
  31. package/dist/templates/test-template.js +37 -6
  32. package/dist/templates/test-template.js.map +1 -1
  33. package/dist/types/recording.d.ts +44 -0
  34. package/dist/types/recording.d.ts.map +1 -1
  35. package/dist/types/recording.js.map +1 -1
  36. package/dist/types/score.d.ts +23 -0
  37. package/dist/types/score.d.ts.map +1 -1
  38. 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". Then export via the Testing Library Recorder extension and save as `recording.js`.
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`) — exported via the Testing Library Recorder Chrome extension; detected by `.js` extension or `@jest-environment-options` header
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
- - any follow-up work required to fix component imports or flaky selectors
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;AAyCnC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAsUD,wBAAgB,qBAAqB,IAAI,OAAO,CA0H/C"}
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, inspectElements, buildQuery, selectMatcher, emitQry03Warning, } from '../../core/resolver.js';
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 emitScoreHints(scoreResult, queryResults = []) {
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 resolveJsQueryResults(recording) {
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
- if (baseline.selectors.length > 0 && recording.url) {
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
- const selectors = baseline.selectors.map((descriptor) => descriptor.selector);
149
- const elementMap = await inspectElements(recording.url, selectors);
150
- for (const descriptor of baseline.selectors) {
151
- const info = elementMap.get(descriptor.selector) ?? null;
152
- if (!info) {
153
- const fallbackResult = buildQuery({
154
- tagName: 'div',
155
- role: null,
156
- ariaLabel: null,
157
- ariaLabelledBy: null,
158
- innerText: '',
159
- value: undefined,
160
- type: undefined,
161
- placeholder: null,
162
- isPresent: false,
163
- }, descriptor.selector);
164
- queryResults.push({ ...fallbackResult, line: descriptor.line });
165
- continue;
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
- const result = buildQuery(info, descriptor.selector);
168
- if (result.quality === 'fragile') {
169
- emitQry03Warning(descriptor.selector);
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
- const matcher = selectMatcher(info, 'assert');
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
- else if (baseline.selectors.length > 0 && !recording.url) {
176
- console.warn(pc.yellow('[taro]') +
177
- ' QRY-02: No @jest-environment-options URL found — cannot resolve document.querySelector selectors. Falling back to getByTestId.');
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
- emitScoreHints(scoreResult, queryResults);
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"}