@sun-asterisk/sungen 3.2.9 → 3.2.10-beta.11
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/dist/capabilities/discover.d.ts.map +1 -1
- package/dist/capabilities/discover.js +5 -2
- package/dist/capabilities/discover.js.map +1 -1
- package/dist/capabilities/registry.d.ts +9 -0
- package/dist/capabilities/registry.d.ts.map +1 -1
- package/dist/capabilities/registry.js +4 -0
- package/dist/capabilities/registry.js.map +1 -1
- package/dist/cli/commands/capability.d.ts.map +1 -1
- package/dist/cli/commands/capability.js +44 -2
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +15 -5
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +16 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/exporters/spec-parser.d.ts.map +1 -1
- package/dist/exporters/spec-parser.js +16 -5
- package/dist/exporters/spec-parser.js.map +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/alert-accept-action.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/alert-dismiss-action.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/alert-fill-action.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/capture-row-column.hbs +2 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-element-with-text.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-with-alert-action.hbs +2 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/recipe-sequence.hbs +3 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +2 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/navigation/route-assertion.hbs +3 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/navigation/wait-for-element.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/navigation/wait-table-refresh.hbs +3 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/has-text-value.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-blur.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-click-text.hbs +3 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-click.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-expect-text.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-expect-value.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-for-each.hbs +5 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-hover.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-press.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-scroll-into-view.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-type.hbs +1 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-wait-for.hbs +1 -0
- package/dist/generators/test-generator/app-profile.d.ts +89 -0
- package/dist/generators/test-generator/app-profile.d.ts.map +1 -0
- package/dist/generators/test-generator/app-profile.js +157 -0
- package/dist/generators/test-generator/app-profile.js.map +1 -0
- package/dist/generators/test-generator/code-generator.d.ts +4 -0
- package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
- package/dist/generators/test-generator/code-generator.js +7 -0
- package/dist/generators/test-generator/code-generator.js.map +1 -1
- package/dist/generators/test-generator/diagnostics.d.ts +36 -0
- package/dist/generators/test-generator/diagnostics.d.ts.map +1 -0
- package/dist/generators/test-generator/diagnostics.js +44 -0
- package/dist/generators/test-generator/diagnostics.js.map +1 -0
- package/dist/generators/test-generator/patterns/types.d.ts +12 -0
- package/dist/generators/test-generator/patterns/types.d.ts.map +1 -1
- package/dist/generators/test-generator/recipe-expander.d.ts +32 -0
- package/dist/generators/test-generator/recipe-expander.d.ts.map +1 -0
- package/dist/generators/test-generator/recipe-expander.js +118 -0
- package/dist/generators/test-generator/recipe-expander.js.map +1 -0
- package/dist/generators/test-generator/step-mapper.d.ts +17 -0
- package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
- package/dist/generators/test-generator/step-mapper.js +70 -0
- package/dist/generators/test-generator/step-mapper.js.map +1 -1
- package/dist/generators/test-generator/template-engine.d.ts +5 -1
- package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
- package/dist/generators/test-generator/template-engine.js +27 -3
- package/dist/generators/test-generator/template-engine.js.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts +10 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.js +32 -0
- package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
- package/dist/harness/capability.d.ts +1 -0
- package/dist/harness/capability.d.ts.map +1 -1
- package/dist/harness/capability.js.map +1 -1
- package/dist/harness/catalog/drivers.yaml +2 -1
- package/dist/harness/query-catalog.d.ts +32 -2
- package/dist/harness/query-catalog.d.ts.map +1 -1
- package/dist/harness/query-catalog.js +0 -0
- package/dist/harness/query-catalog.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/commands/create-data-test.md +99 -0
- package/dist/orchestrator/templates/ai-src/commands/create-test.md +3 -0
- package/dist/orchestrator/templates/ai-src/commands/run-test.md +1 -0
- package/dist/orchestrator/templates/ai-src/config/claude.md +3 -1
- package/dist/orchestrator/templates/ai-src/config/copilot.md +3 -1
- package/dist/orchestrator/templates/ai-src/skills/sungen-data-factory/SKILL.md +116 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +12 -1
- package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +43 -8
- package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +22 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +14 -1
- package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +1 -0
- package/dist/orchestrator/templates/specs-db.d.ts +201 -11
- package/dist/orchestrator/templates/specs-db.d.ts.map +1 -1
- package/dist/orchestrator/templates/specs-db.js +440 -91
- package/dist/orchestrator/templates/specs-db.js.map +1 -1
- package/dist/orchestrator/templates/specs-db.ts +463 -79
- package/dist/orchestrator/templates/specs-test-data.ts +39 -3
- package/package.json +8 -4
- package/src/capabilities/discover.ts +5 -2
- package/src/capabilities/registry.ts +13 -0
- package/src/cli/commands/capability.ts +40 -2
- package/src/cli/commands/delivery.ts +13 -5
- package/src/cli/commands/generate.ts +15 -0
- package/src/exporters/spec-parser.ts +17 -5
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/alert-accept-action.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/alert-dismiss-action.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/alert-fill-action.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/capture-row-column.hbs +2 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-element-with-text.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-with-alert-action.hbs +2 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/recipe-sequence.hbs +3 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +2 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/unknown-element-action.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/navigation/route-assertion.hbs +3 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/navigation/wait-for-element.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/navigation/wait-table-refresh.hbs +3 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/has-text-value.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-blur.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-click-text.hbs +3 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-click.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-expect-text.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-expect-value.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-for-each.hbs +5 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-hover.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-press.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-scroll-into-view.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-type.hbs +1 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/recipe-wait-for.hbs +1 -0
- package/src/generators/test-generator/app-profile.ts +185 -0
- package/src/generators/test-generator/code-generator.ts +9 -0
- package/src/generators/test-generator/diagnostics.ts +51 -0
- package/src/generators/test-generator/patterns/types.ts +12 -0
- package/src/generators/test-generator/recipe-expander.ts +129 -0
- package/src/generators/test-generator/step-mapper.ts +73 -0
- package/src/generators/test-generator/template-engine.ts +29 -3
- package/src/generators/test-generator/utils/selector-resolver.ts +49 -2
- package/src/harness/capability.ts +1 -0
- package/src/harness/catalog/drivers.yaml +2 -1
- package/src/harness/query-catalog.ts +0 -0
- package/src/index.ts +5 -2
- package/src/orchestrator/templates/ai-src/commands/create-data-test.md +99 -0
- package/src/orchestrator/templates/ai-src/commands/create-test.md +3 -0
- package/src/orchestrator/templates/ai-src/commands/run-test.md +1 -0
- package/src/orchestrator/templates/ai-src/config/claude.md +3 -1
- package/src/orchestrator/templates/ai-src/config/copilot.md +3 -1
- package/src/orchestrator/templates/ai-src/skills/sungen-data-factory/SKILL.md +116 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +12 -1
- package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +43 -8
- package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +22 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +14 -1
- package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +1 -0
- package/src/orchestrator/templates/specs-db.ts +463 -79
- package/src/orchestrator/templates/specs-test-data.ts +39 -3
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Compile-time diagnostics — the warning channel for "the compiler knows something
|
|
4
|
+
* and would otherwise silently discard or invent it" (spec: sungen_app_profile_spec.md §4).
|
|
5
|
+
*
|
|
6
|
+
* Codes:
|
|
7
|
+
* SG-W001 — step matched no pattern (compiles to a no-op `// TODO` comment)
|
|
8
|
+
* SG-W002 — step parsed a {{dataRef}} value but the generated code never uses it
|
|
9
|
+
* SG-W003 — `name` filter defaulted from the Gherkin reference on a name-from-content
|
|
10
|
+
* role (status/alert/…) — such a filter can never match; opt out with `name: null`
|
|
11
|
+
* SG-W005 — qa/app.yaml problem (unknown key, unknown preset, unparseable)
|
|
12
|
+
* SG-W006 — qa/app.<env>.yaml found (per-environment profiles are unsupported by design)
|
|
13
|
+
* SG-W007 — browser-alert handler step written AFTER an action step: the listener
|
|
14
|
+
* registers too late, an earlier dialog auto-dismisses with no error
|
|
15
|
+
*
|
|
16
|
+
* Diagnostics never block generation by themselves; `sungen generate --strict`
|
|
17
|
+
* turns any collected diagnostic into a non-zero exit.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.DiagnosticsCollector = void 0;
|
|
21
|
+
class DiagnosticsCollector {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.items = [];
|
|
24
|
+
}
|
|
25
|
+
add(code, message, context = {}) {
|
|
26
|
+
this.items.push({ code, message, ...context });
|
|
27
|
+
}
|
|
28
|
+
all() {
|
|
29
|
+
return this.items;
|
|
30
|
+
}
|
|
31
|
+
get count() {
|
|
32
|
+
return this.items.length;
|
|
33
|
+
}
|
|
34
|
+
/** One line per diagnostic, ready for CLI output. */
|
|
35
|
+
formatLines() {
|
|
36
|
+
return this.items.map((d) => {
|
|
37
|
+
const where = d.feature ? `${d.feature}: ` : '';
|
|
38
|
+
const step = d.step ? ` — "${d.step}"` : '';
|
|
39
|
+
return `[${d.code}] ${where}${d.message}${step}`;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DiagnosticsCollector = DiagnosticsCollector;
|
|
44
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/generators/test-generator/diagnostics.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAWH,MAAa,oBAAoB;IAAjC;QACU,UAAK,GAAiB,EAAE,CAAC;IAsBnC,CAAC;IApBC,GAAG,CAAC,IAAoB,EAAE,OAAe,EAAE,UAA+C,EAAE;QAC1F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,qDAAqD;IACrD,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,oDAuBC"}
|
|
@@ -39,6 +39,18 @@ export interface PatternContext {
|
|
|
39
39
|
scenarioSteps?: ParsedStep[];
|
|
40
40
|
/** Effective Gherkin keyword (Given/When/Then), resolved from And/But */
|
|
41
41
|
effectiveKeyword?: string;
|
|
42
|
+
/** App profile (qa/app.yaml merged over presets/defaults) — widget variants, recipes,
|
|
43
|
+
* loading indicator, table row conventions. Typed loosely to keep the SPI decoupled;
|
|
44
|
+
* the concrete shape is ResolvedAppProfile. */
|
|
45
|
+
appProfile?: {
|
|
46
|
+
widgetVariants: Record<string, string>;
|
|
47
|
+
recipes: Record<string, Record<string, unknown[]>>;
|
|
48
|
+
loadingIndicator: string;
|
|
49
|
+
tableRowBase: number;
|
|
50
|
+
tableHeaderIsRow: boolean;
|
|
51
|
+
portalRoles: string[];
|
|
52
|
+
contentNamedRoles: string[];
|
|
53
|
+
};
|
|
42
54
|
}
|
|
43
55
|
/**
|
|
44
56
|
* Step pattern definition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generators/test-generator/patterns/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,UAAU,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,gBAAgB,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,cAAc,EAAE,GAAG,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generators/test-generator/patterns/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,UAAU,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,KAAK,gBAAgB,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,cAAc,EAAE,GAAG,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;oDAEgD;IAChD,UAAU,CAAC,EAAE;QACX,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnD,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Widget-recipe expander (spec: sungen_app_profile_spec.md §3.1 [recipes]).
|
|
3
|
+
*
|
|
4
|
+
* A recipe is a LINEAR sequence of closed primitives that describes one widget
|
|
5
|
+
* intent ("select", "fill", …). Recipes come from `qa/app.yaml` `recipes:` or from
|
|
6
|
+
* driver-shipped built-ins (the reserved `builtin` preset), selected by the widget's
|
|
7
|
+
* variant name (per-element `variant:` > profile `widgets.<kind>`).
|
|
8
|
+
*
|
|
9
|
+
* This expander holds ZERO framework syntax. It resolves each primitive to a
|
|
10
|
+
* `{ partial, ...data }` NODE; the actual Playwright code lives in the per-primitive
|
|
11
|
+
* `recipe-*.hbs` partials, rendered by the template engine via `recipe-sequence.hbs`
|
|
12
|
+
* (dynamic partial lookup). The only strings it builds are locator/value EXPRESSIONS
|
|
13
|
+
* (data — the same split every resolver uses when it hands the locator template a value).
|
|
14
|
+
*
|
|
15
|
+
* Placeholders: `$trigger` = the resolved widget element; `$value` = the step's data
|
|
16
|
+
* value (a runtime marker in runtime mode, transformed to testData.get later); `$item`
|
|
17
|
+
* = the current forEach item. Throws on an unknown primitive/shape — callers fall back
|
|
18
|
+
* to the generic template.
|
|
19
|
+
*/
|
|
20
|
+
export interface RecipeExpandContext {
|
|
21
|
+
/** Pre-rendered locator code for the widget element (dialog/frame scoping included). */
|
|
22
|
+
triggerCode: string;
|
|
23
|
+
/** The step's value — a literal or a __SUNGEN_TD__ runtime marker. */
|
|
24
|
+
value: string;
|
|
25
|
+
}
|
|
26
|
+
/** A render node: the partial name plus the data it interpolates. */
|
|
27
|
+
export interface RecipeNode {
|
|
28
|
+
partial: string;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
export declare function expandRecipe(primitives: unknown[], ctx: RecipeExpandContext): RecipeNode[];
|
|
32
|
+
//# sourceMappingURL=recipe-expander.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-expander.d.ts","sourceRoot":"","sources":["../../../src/generators/test-generator/recipe-expander.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,wBAAgB,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,mBAAmB,GAAG,UAAU,EAAE,CAK1F"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Widget-recipe expander (spec: sungen_app_profile_spec.md §3.1 [recipes]).
|
|
4
|
+
*
|
|
5
|
+
* A recipe is a LINEAR sequence of closed primitives that describes one widget
|
|
6
|
+
* intent ("select", "fill", …). Recipes come from `qa/app.yaml` `recipes:` or from
|
|
7
|
+
* driver-shipped built-ins (the reserved `builtin` preset), selected by the widget's
|
|
8
|
+
* variant name (per-element `variant:` > profile `widgets.<kind>`).
|
|
9
|
+
*
|
|
10
|
+
* This expander holds ZERO framework syntax. It resolves each primitive to a
|
|
11
|
+
* `{ partial, ...data }` NODE; the actual Playwright code lives in the per-primitive
|
|
12
|
+
* `recipe-*.hbs` partials, rendered by the template engine via `recipe-sequence.hbs`
|
|
13
|
+
* (dynamic partial lookup). The only strings it builds are locator/value EXPRESSIONS
|
|
14
|
+
* (data — the same split every resolver uses when it hands the locator template a value).
|
|
15
|
+
*
|
|
16
|
+
* Placeholders: `$trigger` = the resolved widget element; `$value` = the step's data
|
|
17
|
+
* value (a runtime marker in runtime mode, transformed to testData.get later); `$item`
|
|
18
|
+
* = the current forEach item. Throws on an unknown primitive/shape — callers fall back
|
|
19
|
+
* to the generic template.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.expandRecipe = expandRecipe;
|
|
23
|
+
const escape = (s) => String(s).replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
24
|
+
function expandRecipe(primitives, ctx) {
|
|
25
|
+
if (!Array.isArray(primitives) || primitives.length === 0) {
|
|
26
|
+
throw new Error('recipe intent is not a primitive list');
|
|
27
|
+
}
|
|
28
|
+
return primitives.map((p) => expandPrimitive(p, ctx, null));
|
|
29
|
+
}
|
|
30
|
+
/** `itemVar` is non-null inside a forEach body — `$item` renders as that identifier. */
|
|
31
|
+
function expandPrimitive(prim, ctx, itemVar) {
|
|
32
|
+
if (typeof prim !== 'object' || prim === null || Array.isArray(prim)) {
|
|
33
|
+
throw new Error(`invalid primitive: ${JSON.stringify(prim)}`);
|
|
34
|
+
}
|
|
35
|
+
const entries = Object.entries(prim);
|
|
36
|
+
if (entries.length !== 1)
|
|
37
|
+
throw new Error(`a primitive must have exactly one key: ${JSON.stringify(prim)}`);
|
|
38
|
+
const [kind, arg] = entries[0];
|
|
39
|
+
// Resolve a `$trigger`/css target into a locator EXPRESSION (data for the partial).
|
|
40
|
+
const targetExpr = (v) => v === '$trigger' ? ctx.triggerCode : `page.locator('${escape(String(v))}')`;
|
|
41
|
+
// Resolve a `$value`/`$item`/literal into a JS value EXPRESSION (quoted unless $item;
|
|
42
|
+
// a quoted __SUNGEN_TD__ marker is rewritten to testData.get(...) by the runtime transform).
|
|
43
|
+
const valueExpr = (v) => {
|
|
44
|
+
if (v === '$item') {
|
|
45
|
+
if (!itemVar)
|
|
46
|
+
throw new Error('$item is only valid inside forEach');
|
|
47
|
+
return itemVar;
|
|
48
|
+
}
|
|
49
|
+
const s = v === '$value' ? ctx.value : String(v);
|
|
50
|
+
return `'${escape(s)}'`;
|
|
51
|
+
};
|
|
52
|
+
switch (kind) {
|
|
53
|
+
case 'click':
|
|
54
|
+
return { partial: 'recipe-click', targetExpr: targetExpr(arg) };
|
|
55
|
+
case 'hover':
|
|
56
|
+
return { partial: 'recipe-hover', targetExpr: targetExpr(arg) };
|
|
57
|
+
case 'type': {
|
|
58
|
+
const v = typeof arg === 'object' && arg !== null ? arg.value : arg;
|
|
59
|
+
return { partial: 'recipe-type', valueExpr: valueExpr(v ?? '$value') };
|
|
60
|
+
}
|
|
61
|
+
case 'press':
|
|
62
|
+
return { partial: 'recipe-press', key: escape(String(arg)) };
|
|
63
|
+
case 'waitFor': {
|
|
64
|
+
// `waitFor: '<css>'` → wait visible. `waitFor: { target, state }` allows an explicit
|
|
65
|
+
// state ('attached' | 'visible' | 'hidden' | 'detached'); `attached` covers the AntD
|
|
66
|
+
// case where a selected chip collapses the input to ~0px (node exists before actionable).
|
|
67
|
+
const o = (typeof arg === 'object' && arg !== null ? arg : { target: arg });
|
|
68
|
+
const state = ['attached', 'visible', 'hidden', 'detached'].includes(String(o.state)) ? String(o.state) : 'visible';
|
|
69
|
+
return { partial: 'recipe-wait-for', targetExpr: targetExpr(o.target), state };
|
|
70
|
+
}
|
|
71
|
+
case 'waitForHidden':
|
|
72
|
+
return { partial: 'recipe-wait-for', targetExpr: targetExpr(arg), state: 'hidden' };
|
|
73
|
+
case 'scrollIntoView':
|
|
74
|
+
// Playwright's own actionability scroll (not arbitrary evaluate) — nudges a lazy list
|
|
75
|
+
// to render+reveal the target before a click. Deterministic, no loop.
|
|
76
|
+
return { partial: 'recipe-scroll-into-view', targetExpr: targetExpr(arg) };
|
|
77
|
+
case 'blur':
|
|
78
|
+
// One bounded el.blur() to dismiss a widget's own overlay (AntD DatePicker panel keeps
|
|
79
|
+
// pointer-blocking after fill; Escape/force-click are unreliable). No retry loop.
|
|
80
|
+
return { partial: 'recipe-blur', targetExpr: targetExpr(arg) };
|
|
81
|
+
case 'clickText': {
|
|
82
|
+
const o = (typeof arg === 'object' && arg !== null ? arg : { text: arg });
|
|
83
|
+
const text = valueExpr(o.text ?? '$value');
|
|
84
|
+
const exact = o.exact === true;
|
|
85
|
+
// Build the option-locator expression; the partial scrolls it into view then clicks.
|
|
86
|
+
const expr = o.role
|
|
87
|
+
? `page.getByRole('${escape(String(o.role))}', { name: ${text}${exact ? ', exact: true' : ''} })`
|
|
88
|
+
: `${o.within ? `page.locator('${escape(String(o.within))}')` : 'page'}.getByText(${text}${exact ? ', { exact: true }' : ''}).first()`;
|
|
89
|
+
return { partial: 'recipe-click-text', targetExpr: expr };
|
|
90
|
+
}
|
|
91
|
+
case 'expectText': {
|
|
92
|
+
const o = (typeof arg === 'object' && arg !== null ? arg : {});
|
|
93
|
+
return { partial: 'recipe-expect-text', targetExpr: targetExpr(o.locator ?? '$trigger'), valueExpr: valueExpr(o.value ?? '$value') };
|
|
94
|
+
}
|
|
95
|
+
case 'expectValue': {
|
|
96
|
+
const o = (typeof arg === 'object' && arg !== null ? arg : {});
|
|
97
|
+
return { partial: 'recipe-expect-value', targetExpr: targetExpr(o.locator ?? '$trigger'), valueExpr: valueExpr(o.value ?? '$value') };
|
|
98
|
+
}
|
|
99
|
+
case 'forEach': {
|
|
100
|
+
const o = (typeof arg === 'object' && arg !== null ? arg : {});
|
|
101
|
+
if (itemVar)
|
|
102
|
+
throw new Error('nested forEach is not supported');
|
|
103
|
+
const inner = o.do;
|
|
104
|
+
if (!Array.isArray(inner) || inner.length === 0)
|
|
105
|
+
throw new Error('forEach.do must be a primitive list');
|
|
106
|
+
const source = o.in === '$values' || o.in === undefined ? '$value' : o.in;
|
|
107
|
+
return {
|
|
108
|
+
partial: 'recipe-for-each',
|
|
109
|
+
sourceExpr: valueExpr(source),
|
|
110
|
+
split: escape(String(o.split ?? '>')),
|
|
111
|
+
body: inner.map((p) => expandPrimitive(p, ctx, 'item')),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
throw new Error(`unknown recipe primitive "${kind}"`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=recipe-expander.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-expander.js","sourceRoot":"","sources":["../../../src/generators/test-generator/recipe-expander.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ParsedStep } from '../gherkin-parser';
|
|
2
|
+
import { DiagnosticsCollector } from './diagnostics';
|
|
2
3
|
export interface MappedStep {
|
|
3
4
|
code: string;
|
|
4
5
|
comment?: string;
|
|
@@ -27,6 +28,12 @@ export declare class StepMapper {
|
|
|
27
28
|
/** Row scope: when active, column assertions are scoped to this row */
|
|
28
29
|
private inRowScope;
|
|
29
30
|
private rowScopeTable;
|
|
31
|
+
/** SG-W007: an action step already ran in this scenario (alert handlers registered after it are too late) */
|
|
32
|
+
private sawActionStep;
|
|
33
|
+
/** Compile-time warning channel (SG-W001/W002); optional — absent means silent legacy behavior */
|
|
34
|
+
private diagnostics?;
|
|
35
|
+
/** App profile (qa/app.yaml merged over presets/defaults) — the per-project BEHAVIOR layer */
|
|
36
|
+
private appProfile;
|
|
30
37
|
constructor(options?: {
|
|
31
38
|
verbose?: boolean;
|
|
32
39
|
baseURL?: string;
|
|
@@ -36,6 +43,8 @@ export declare class StepMapper {
|
|
|
36
43
|
runtimeData?: boolean;
|
|
37
44
|
framework?: string;
|
|
38
45
|
});
|
|
46
|
+
/** Attach the compile-diagnostics collector (owned by CodeGenerator) */
|
|
47
|
+
setDiagnostics(collector: DiagnosticsCollector): void;
|
|
39
48
|
/**
|
|
40
49
|
* Set feature context for data and selector resolution
|
|
41
50
|
*/
|
|
@@ -63,6 +72,14 @@ export declare class StepMapper {
|
|
|
63
72
|
* Uses pattern registry first, falls back to AI if enabled
|
|
64
73
|
*/
|
|
65
74
|
mapStep(step: ParsedStep): MappedStep | Promise<MappedStep>;
|
|
75
|
+
/**
|
|
76
|
+
* SG-W002 — a step carried a parsed {{dataRef}} but the matched pattern's generated
|
|
77
|
+
* code never uses it (neither the runtime marker, the ${ref} fallback, nor the
|
|
78
|
+
* inline-resolved value). This is the class of bug where `with {{v}}` silently
|
|
79
|
+
* disappears from the output (e.g. issue #464). Warning-only: loose containment
|
|
80
|
+
* checks err on the side of NOT flagging.
|
|
81
|
+
*/
|
|
82
|
+
private checkDataRefConsumed;
|
|
66
83
|
/**
|
|
67
84
|
* Generate column assertion scoped to the current row.
|
|
68
85
|
* Uses columns config for exact cell targeting (nth), or filter fallback.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-mapper.d.ts","sourceRoot":"","sources":["../../../src/generators/test-generator/step-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-mapper.d.ts","sourceRoot":"","sources":["../../../src/generators/test-generator/step-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,oBAAoB,CAAC,CAAe;IAC5C,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAkB;IACtC,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAAmB;IAC7C,uEAAuE;IACvE,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,aAAa,CAAc;IACnC,6GAA6G;IAC7G,OAAO,CAAC,aAAa,CAAkB;IACvC,kGAAkG;IAClG,OAAO,CAAC,WAAW,CAAC,CAAuB;IAC3C,8FAA8F;IAC9F,OAAO,CAAC,UAAU,CAAqB;gBAE3B,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IA4B7K,wEAAwE;IACxE,cAAc,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAOrD;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlE;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKnC;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAa7C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyI3D;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gCAAgC;IA8CxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAqB7B"}
|
|
@@ -6,6 +6,8 @@ const adapters_1 = require("./adapters");
|
|
|
6
6
|
const patterns_1 = require("./patterns");
|
|
7
7
|
const selector_resolver_1 = require("./utils/selector-resolver");
|
|
8
8
|
const data_resolver_1 = require("./utils/data-resolver");
|
|
9
|
+
const app_profile_1 = require("./app-profile");
|
|
10
|
+
const registry_1 = require("../../capabilities/registry");
|
|
9
11
|
/**
|
|
10
12
|
* StepMapper - Orchestrates step-to-code conversion using pattern registry
|
|
11
13
|
* Refactored from 907 lines to < 200 lines
|
|
@@ -21,6 +23,8 @@ class StepMapper {
|
|
|
21
23
|
/** Row scope: when active, column assertions are scoped to this row */
|
|
22
24
|
this.inRowScope = false;
|
|
23
25
|
this.rowScopeTable = '';
|
|
26
|
+
/** SG-W007: an action step already ran in this scenario (alert handlers registered after it are too late) */
|
|
27
|
+
this.sawActionStep = false;
|
|
24
28
|
this.verbose = options.verbose ?? false;
|
|
25
29
|
this.baseURL = options.baseURL || null; // null means path-only navigation
|
|
26
30
|
this.featureName = options.featureName;
|
|
@@ -35,10 +39,24 @@ class StepMapper {
|
|
|
35
39
|
this.patternRegistry = new patterns_1.PatternRegistry();
|
|
36
40
|
this.selectorResolver = new selector_resolver_1.SelectorResolver(undefined, options.screenName);
|
|
37
41
|
this.dataResolver = new data_resolver_1.DataResolver(undefined, options.screenName, options.runtimeData);
|
|
42
|
+
// App profile (qa/app.yaml) — loaded after PatternRegistry so capability discovery has
|
|
43
|
+
// populated the preset registry (driver-ui ships native/radix/antd). Missing file →
|
|
44
|
+
// built-in defaults → pre-profile behavior.
|
|
45
|
+
this.appProfile = (0, app_profile_1.loadAppProfile)(process.cwd(), registry_1.capabilityRegistry.appProfilePresets());
|
|
46
|
+
this.templateEngine.setPersistentContext({ portalRoles: this.appProfile.portalRoles });
|
|
47
|
+
this.selectorResolver.setContentNamedRoles(this.appProfile.contentNamedRoles);
|
|
38
48
|
if (this.verbose) {
|
|
39
49
|
console.log(` [StepMapper] ${this.patternRegistry.getPatternCount()} patterns loaded`);
|
|
40
50
|
}
|
|
41
51
|
}
|
|
52
|
+
/** Attach the compile-diagnostics collector (owned by CodeGenerator) */
|
|
53
|
+
setDiagnostics(collector) {
|
|
54
|
+
this.diagnostics = collector;
|
|
55
|
+
this.selectorResolver.setDiagnostics(collector);
|
|
56
|
+
// Flush profile-load warnings (SG-W005/W006) gathered before the collector existed.
|
|
57
|
+
for (const w of this.appProfile.warnings)
|
|
58
|
+
collector.add(w.code, w.message);
|
|
59
|
+
}
|
|
42
60
|
/**
|
|
43
61
|
* Set feature context for data and selector resolution
|
|
44
62
|
*/
|
|
@@ -72,6 +90,7 @@ class StepMapper {
|
|
|
72
90
|
this.inFrameScope = false;
|
|
73
91
|
this.inRowScope = false;
|
|
74
92
|
this.rowScopeTable = '';
|
|
93
|
+
this.sawActionStep = false;
|
|
75
94
|
this.lastPrimaryKeyword = 'Given';
|
|
76
95
|
this.dataResolver.clearCaptured(); // captured vars are scenario-scoped
|
|
77
96
|
this.templateEngine.resetBaseContext();
|
|
@@ -95,6 +114,21 @@ class StepMapper {
|
|
|
95
114
|
if (keyword === 'Given' || keyword === 'When' || keyword === 'Then') {
|
|
96
115
|
this.lastPrimaryKeyword = keyword;
|
|
97
116
|
}
|
|
117
|
+
// SG-W007 — a two-step-form browser-alert handler (`click [OK] alert`) written AFTER
|
|
118
|
+
// an action step registers its page.once('dialog') listener too late: a dialog
|
|
119
|
+
// triggered by the earlier action auto-dismisses with no error (issue #472).
|
|
120
|
+
// Fix: move the alert step BEFORE the trigger, or use the compound form
|
|
121
|
+
// `click [X] button and accept [OK] alert`.
|
|
122
|
+
const isAlertHandlerStep = step.elementType === 'alert' &&
|
|
123
|
+
/\b(click|clicks|fill|fills)\b/.test(step.text) &&
|
|
124
|
+
!/\band\s+(accept|accepts|dismiss|dismisses)\b/i.test(step.text);
|
|
125
|
+
if (isAlertHandlerStep && this.sawActionStep) {
|
|
126
|
+
this.diagnostics?.add('SG-W007', 'browser-alert handler registered AFTER an action step — a dialog triggered earlier auto-dismisses silently. Move the alert step before the trigger, or use `click [X] button and accept [OK] alert`', { feature: this.featureName, step: step.text });
|
|
127
|
+
}
|
|
128
|
+
else if (!isAlertHandlerStep &&
|
|
129
|
+
/\b(click|clicks|fill|fills|select|selects|press|presses|check|checks|uncheck|unchecks|drag|drags)\b/.test(step.text)) {
|
|
130
|
+
this.sawActionStep = true;
|
|
131
|
+
}
|
|
98
132
|
// Frame scope directives — intercept before pattern matching
|
|
99
133
|
if (/\bswitch(?:es)?\s+to\b/i.test(step.text) &&
|
|
100
134
|
(step.elementType === 'frame' || step.elementType === 'iframe')) {
|
|
@@ -186,14 +220,49 @@ class StepMapper {
|
|
|
186
220
|
if (this.verbose) {
|
|
187
221
|
console.log(` ✓ Pattern matched: ${step.text.substring(0, 50)}...`);
|
|
188
222
|
}
|
|
223
|
+
this.checkDataRefConsumed(step, mappedStep);
|
|
189
224
|
return mappedStep;
|
|
190
225
|
}
|
|
191
226
|
// No pattern matched - return TODO comment
|
|
227
|
+
this.diagnostics?.add('SG-W001', 'step matched no pattern — compiled to a no-op // TODO comment', {
|
|
228
|
+
feature: this.featureName,
|
|
229
|
+
step: step.text,
|
|
230
|
+
});
|
|
192
231
|
return {
|
|
193
232
|
code: `// TODO: Implement step: ${step.text}`,
|
|
194
233
|
comment: `Unrecognized step pattern: ${step.text}`,
|
|
195
234
|
};
|
|
196
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* SG-W002 — a step carried a parsed {{dataRef}} but the matched pattern's generated
|
|
238
|
+
* code never uses it (neither the runtime marker, the ${ref} fallback, nor the
|
|
239
|
+
* inline-resolved value). This is the class of bug where `with {{v}}` silently
|
|
240
|
+
* disappears from the output (e.g. issue #464). Warning-only: loose containment
|
|
241
|
+
* checks err on the side of NOT flagging.
|
|
242
|
+
*/
|
|
243
|
+
checkDataRefConsumed(step, mapped) {
|
|
244
|
+
if (!step.dataRef || !this.diagnostics)
|
|
245
|
+
return;
|
|
246
|
+
const code = mapped.code || '';
|
|
247
|
+
if (code.includes(data_resolver_1.DataResolver.encodeMarker(step.dataRef)))
|
|
248
|
+
return; // runtime marker
|
|
249
|
+
if (code.includes(`\${${step.dataRef}}`))
|
|
250
|
+
return; // unresolved fallback
|
|
251
|
+
if (code.includes(step.dataRef))
|
|
252
|
+
return; // testData.set('ref'), comments
|
|
253
|
+
try {
|
|
254
|
+
const value = this.dataResolver.resolveData(step.dataRef, this.featureName);
|
|
255
|
+
if (value && (code.includes(value) || code.includes(value.replace(/'/g, "\\'"))))
|
|
256
|
+
return; // inline mode
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
return; // unresolvable ref → other errors surface elsewhere; don't double-report
|
|
260
|
+
}
|
|
261
|
+
this.diagnostics.add('SG-W002', `parsed {{${step.dataRef}}} but the generated code does not use it`, {
|
|
262
|
+
feature: this.featureName,
|
|
263
|
+
step: step.text,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
197
266
|
/**
|
|
198
267
|
* Generate column assertion scoped to the current row.
|
|
199
268
|
* Uses columns config for exact cell targeting (nth), or filter fallback.
|
|
@@ -262,6 +331,7 @@ class StepMapper {
|
|
|
262
331
|
selectorResolver: this.selectorResolver,
|
|
263
332
|
dataResolver: this.dataResolver,
|
|
264
333
|
renderLocator: (resolved) => this.templateEngine.renderStep('locator', resolved),
|
|
334
|
+
appProfile: this.appProfile,
|
|
265
335
|
baseURL: this.baseURL,
|
|
266
336
|
featureName: this.featureName,
|
|
267
337
|
screenName: this.screenName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-mapper.js","sourceRoot":"","sources":["../../../src/generators/test-generator/step-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"step-mapper.js","sourceRoot":"","sources":["../../../src/generators/test-generator/step-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export declare class TemplateEngine {
|
|
|
3
3
|
private templatesDir;
|
|
4
4
|
private stepsTemplatesDir;
|
|
5
5
|
private baseContext;
|
|
6
|
+
/** Per-project context that survives scenario resets (e.g. app-profile portalRoles) */
|
|
7
|
+
private persistentContext;
|
|
6
8
|
constructor(templatesDir: string);
|
|
7
9
|
private registerHelpers;
|
|
8
10
|
private registerPartials;
|
|
@@ -11,7 +13,9 @@ export declare class TemplateEngine {
|
|
|
11
13
|
renderStep(stepTemplateName: string, data: any): string;
|
|
12
14
|
/** Set base context merged into every renderStep call (e.g., { inDialog: true }) */
|
|
13
15
|
setBaseContext(ctx: Record<string, any>): void;
|
|
14
|
-
/**
|
|
16
|
+
/** Context that survives resetBaseContext (per-project facts, e.g. app-profile portalRoles) */
|
|
17
|
+
setPersistentContext(ctx: Record<string, any>): void;
|
|
18
|
+
/** Reset base context (e.g., on new scenario) — persistent (per-project) context stays */
|
|
15
19
|
resetBaseContext(): void;
|
|
16
20
|
renderImports(options?: {
|
|
17
21
|
runtimeData?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../../src/generators/test-generator/template-engine.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,WAAW,CAA2B;
|
|
1
|
+
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../../src/generators/test-generator/template-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ class TemplateEngine {
|
|
|
11
11
|
constructor(templatesDir) {
|
|
12
12
|
this.templates = new Map();
|
|
13
13
|
this.baseContext = {};
|
|
14
|
+
/** Per-project context that survives scenario resets (e.g. app-profile portalRoles) */
|
|
15
|
+
this.persistentContext = {};
|
|
14
16
|
this.templatesDir = templatesDir;
|
|
15
17
|
this.stepsTemplatesDir = path_1.default.join(this.templatesDir, 'steps');
|
|
16
18
|
this.registerHelpers();
|
|
@@ -114,8 +116,18 @@ class TemplateEngine {
|
|
|
114
116
|
// Frame scope takes precedence (frame > dialog > page)
|
|
115
117
|
if (this.inFrame)
|
|
116
118
|
return 'frame';
|
|
117
|
-
|
|
119
|
+
// `scope: dialog` on the selector entry is the explicit opt-IN sentinel — the
|
|
120
|
+
// element is dialog-rooted even if its role is portal-exempt (issue #465).
|
|
121
|
+
const explicitDialog = this.scope === 'dialog';
|
|
122
|
+
if (!this.inDialog && !explicitDialog)
|
|
118
123
|
return 'page';
|
|
124
|
+
// Portal-rendered roles (Radix/MUI/Headless UI/antd render option/menu/tooltip
|
|
125
|
+
// layers onto document.body) live OUTSIDE the dialog's DOM subtree — wrapping
|
|
126
|
+
// them in the dialog root guarantees a timeout. List comes from the app profile
|
|
127
|
+
// (qa/app.yaml layers.portal_roles), default DEFAULT_PORTAL_ROLES.
|
|
128
|
+
if (!explicitDialog && this.role && Array.isArray(this.portalRoles) && this.portalRoles.includes(this.role)) {
|
|
129
|
+
return 'page';
|
|
130
|
+
}
|
|
119
131
|
const partial = handlebars_1.default.partials['dialog-root'];
|
|
120
132
|
if (partial) {
|
|
121
133
|
const fn = typeof partial === 'string' ? handlebars_1.default.compile(partial) : partial;
|
|
@@ -137,6 +149,13 @@ class TemplateEngine {
|
|
|
137
149
|
const locatorBaseContent = fs_1.default.readFileSync(locatorBasePath, 'utf-8');
|
|
138
150
|
handlebars_1.default.registerPartial('locator-base', locatorBaseContent);
|
|
139
151
|
}
|
|
152
|
+
// Register has-text-value partial — the ONE place that renders a .filter({ hasText })
|
|
153
|
+
// value, so action templates cannot drift from the exact/anchored-regex standard the
|
|
154
|
+
// assertion templates follow (issue #466).
|
|
155
|
+
const hasTextValuePath = path_1.default.join(this.stepsTemplatesDir, 'partials', 'has-text-value.hbs');
|
|
156
|
+
if (fs_1.default.existsSync(hasTextValuePath)) {
|
|
157
|
+
handlebars_1.default.registerPartial('has-text-value', fs_1.default.readFileSync(hasTextValuePath, 'utf-8'));
|
|
158
|
+
}
|
|
140
159
|
// Register locator strategy partials
|
|
141
160
|
const strategiesDir = path_1.default.join(this.stepsTemplatesDir, 'partials', 'locator-strategies');
|
|
142
161
|
if (fs_1.default.existsSync(strategiesDir)) {
|
|
@@ -220,9 +239,14 @@ class TemplateEngine {
|
|
|
220
239
|
setBaseContext(ctx) {
|
|
221
240
|
this.baseContext = { ...this.baseContext, ...ctx };
|
|
222
241
|
}
|
|
223
|
-
/**
|
|
242
|
+
/** Context that survives resetBaseContext (per-project facts, e.g. app-profile portalRoles) */
|
|
243
|
+
setPersistentContext(ctx) {
|
|
244
|
+
this.persistentContext = { ...this.persistentContext, ...ctx };
|
|
245
|
+
this.baseContext = { ...this.baseContext, ...ctx };
|
|
246
|
+
}
|
|
247
|
+
/** Reset base context (e.g., on new scenario) — persistent (per-project) context stays */
|
|
224
248
|
resetBaseContext() {
|
|
225
|
-
this.baseContext = {};
|
|
249
|
+
this.baseContext = { ...this.persistentContext };
|
|
226
250
|
}
|
|
227
251
|
renderImports(options) {
|
|
228
252
|
return this.render('imports', { runtimeData: options?.runtimeData, basePath: options?.basePath || '..', isParallel: options?.isParallel, needsCleanupImport: options?.needsCleanupImport, needsDb: options?.needsDb, needsApi: options?.needsApi });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/generators/test-generator/template-engine.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AACpC,4CAAoB;AACpB,gDAAwB;AAExB,MAAa,cAAc;IAMzB,YAAY,YAAoB;QALxB,cAAS,GAA4C,IAAI,GAAG,EAAE,CAAC;QAG/D,gBAAW,GAAwB,EAAE,CAAC;QAG5C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,eAAe;QACrB,oBAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAS,IAAY,EAAE,MAAc;YACvE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,iGAAiG;QACjG,iGAAiG;QACjG,8FAA8F;QAC9F,4FAA4F;QAC5F,iDAAiD;QACjD,oBAAU,CAAC,cAAc,CAAC,cAAc,EAAE,UAAS,IAAY;YAC7D,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;iBAChB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;iBACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iBACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;iBACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;iBACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,aAAa,EAAE,UAAS,IAAY;YAC5D,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAS,CAAM,EAAE,CAAM;YACrD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAS,GAAG,IAAW;YACrD,4CAA4C;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAS,GAAG,IAAW;YACtD,4CAA4C;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAS,CAAM,EAAE,CAAM;YACrD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,UAAS,CAAM,EAAE,CAAM;YACrD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAS,CAAM,EAAE,CAAM;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAS,CAAM,EAAE,CAAM;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,oBAAU,CAAC,cAAc,CAAC,UAAU,EAAE,UAAS,CAAM,EAAE,CAAM;YAC3D,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,KAAK,EAAE,UAAS,CAAM,EAAE,CAAM;YACtD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,oBAAU,CAAC,cAAc,CAAC,WAAW,EAAE,UAAS,KAAU;YACxD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,gEAAgE;QAChE,yDAAyD;QACzD,oBAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAS,WAAmB;YACtE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,mDAAmD;QACnD,oBAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAS,KAAU,EAAE,OAAY;YACnE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,UAAS,KAAU,EAAE,OAAY;YACjE,iCAAiC;YACjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,6BAA6B;YAC7B,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,SAAS,EAAE,UAAS,OAAY;YACxD,6BAA6B;YAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,oBAAU,CAAC,cAAc,CAAC,UAAU,EAAE;YACpC,uDAAuD;YACvD,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAClC,MAAM,OAAO,GAAG,oBAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/E,OAAO,IAAI,oBAAU,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,0BAA0B,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;QACtB,2DAA2D;QAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACjF,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7D,oBAAU,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;QAED,wFAAwF;QACxF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC1F,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,MAAM,kBAAkB,GAAG,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACrE,oBAAU,CAAC,eAAe,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC1F,IAAI,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAClG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;gBACjE,IAAI,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC/D,oBAAU,CAAC,eAAe,CAAC,sBAAsB,QAAQ,EAAE,EAAE,eAAe,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACxF,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACnE,oBAAU,CAAC,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;QAED,yEAAyE;QACzE,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACxF,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,MAAM,iBAAiB,GAAG,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACnE,oBAAU,CAAC,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;QAED,sFAAsF;QACtF,4EAA4E;QAC5E,4FAA4F;QAC5F,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,YAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAClC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACrC,oBAAU,CAAC,eAAe,CAAC,IAAI,EAAE,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,YAAoB,EAAE,iBAA0B,KAAK;QACxE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;QAC3C,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5E,4CAA4C;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEzF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;gBACvE,IAAI,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC/D,MAAM,QAAQ,GAAG,oBAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;oBAC3C,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;YAC/D,IAAI,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,oBAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,uBAAuB,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,oBAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAoB,EAAE,IAAS,EAAE,iBAA0B,KAAK;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,gBAAwB,EAAE,IAAS;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,oFAAoF;IACpF,cAAc,CAAC,GAAwB;QACrC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,EAAE,CAAC;IACrD,CAAC;IAED,iDAAiD;IACjD,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,OAAkJ;QAC9J,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtP,CAAC;IAED,cAAc,CAAC,IAsBd;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB,CAAC,IAEhB;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,IAEf;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,IAEf;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,cAAc,CAAC,IAEd;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,IAOd;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAzTD,wCAyTC"}
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/generators/test-generator/template-engine.ts"],"names":[],"mappings":"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"}
|