@sun-asterisk/sungen 3.2.29 → 3.2.30
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/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +2 -1
- 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 +6 -2
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/inspect.js +1 -1
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/results-merge.d.ts.map +1 -1
- package/dist/cli/commands/results-merge.js +9 -2
- package/dist/cli/commands/results-merge.js.map +1 -1
- package/dist/cli/commands/results-sanitize.d.ts +24 -0
- package/dist/cli/commands/results-sanitize.d.ts.map +1 -0
- package/dist/cli/commands/results-sanitize.js +126 -0
- package/dist/cli/commands/results-sanitize.js.map +1 -0
- package/dist/cli/commands/script-check.d.ts.map +1 -1
- package/dist/cli/commands/script-check.js +3 -1
- package/dist/cli/commands/script-check.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +3 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/exporters/api-testcase-formatter.d.ts +3 -6
- package/dist/exporters/api-testcase-formatter.d.ts.map +1 -1
- package/dist/exporters/api-testcase-formatter.js +7 -10
- package/dist/exporters/api-testcase-formatter.js.map +1 -1
- package/dist/exporters/matrix/build.d.ts.map +1 -1
- package/dist/exporters/matrix/build.js +4 -2
- package/dist/exporters/matrix/build.js.map +1 -1
- package/dist/exporters/matrix/render-coverage-sheet.d.ts.map +1 -1
- package/dist/exporters/matrix/render-coverage-sheet.js +3 -1
- package/dist/exporters/matrix/render-coverage-sheet.js.map +1 -1
- package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
- package/dist/exporters/matrix/render-csv.js +3 -1
- package/dist/exporters/matrix/render-csv.js.map +1 -1
- package/dist/exporters/matrix/render-overview-sheet.d.ts.map +1 -1
- package/dist/exporters/matrix/render-overview-sheet.js +5 -9
- package/dist/exporters/matrix/render-overview-sheet.js.map +1 -1
- package/dist/exporters/matrix/result-totals.d.ts +23 -0
- package/dist/exporters/matrix/result-totals.d.ts.map +1 -0
- package/dist/exporters/matrix/result-totals.js +21 -0
- package/dist/exporters/matrix/result-totals.js.map +1 -0
- package/dist/exporters/matrix/testcase-summary-band.d.ts.map +1 -1
- package/dist/exporters/matrix/testcase-summary-band.js +2 -6
- package/dist/exporters/matrix/testcase-summary-band.js.map +1 -1
- package/dist/exporters/qa-env-secret-denylist.js +2 -2
- package/dist/exporters/qa-env-secret-denylist.js.map +1 -1
- package/dist/exporters/report-path-sanitizer.d.ts +38 -0
- package/dist/exporters/report-path-sanitizer.d.ts.map +1 -0
- package/dist/exporters/report-path-sanitizer.js +137 -0
- package/dist/exporters/report-path-sanitizer.js.map +1 -0
- package/dist/exporters/result-variants.d.ts.map +1 -1
- package/dist/exporters/result-variants.js +2 -1
- package/dist/exporters/result-variants.js.map +1 -1
- package/dist/exporters/sensitive-key.d.ts +31 -0
- package/dist/exporters/sensitive-key.d.ts.map +1 -0
- package/dist/exporters/sensitive-key.js +50 -0
- package/dist/exporters/sensitive-key.js.map +1 -0
- package/dist/exporters/test-data-resolver.d.ts +4 -1
- package/dist/exporters/test-data-resolver.d.ts.map +1 -1
- package/dist/exporters/test-data-resolver.js +12 -2
- package/dist/exporters/test-data-resolver.js.map +1 -1
- package/dist/generators/gherkin-parser/index.d.ts +3 -0
- package/dist/generators/gherkin-parser/index.d.ts.map +1 -1
- package/dist/generators/gherkin-parser/index.js +17 -9
- package/dist/generators/gherkin-parser/index.js.map +1 -1
- package/dist/generators/gherkin-parser/parent-scope-clause.d.ts +54 -0
- package/dist/generators/gherkin-parser/parent-scope-clause.d.ts.map +1 -0
- package/dist/generators/gherkin-parser/parent-scope-clause.js +109 -0
- package/dist/generators/gherkin-parser/parent-scope-clause.js.map +1 -0
- package/dist/generators/test-generator/adapters/adapter-interface.d.ts +23 -18
- package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
- package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts +4 -19
- package/dist/generators/test-generator/adapters/appium/appium-adapter.d.ts.map +1 -1
- package/dist/generators/test-generator/adapters/appium/appium-adapter.js.map +1 -1
- package/dist/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
- package/dist/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
- package/dist/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
- package/dist/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
- package/dist/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
- package/dist/generators/test-generator/adapters/appium/templates/test-file.hbs +54 -23
- package/dist/generators/test-generator/adapters/index.d.ts +1 -1
- package/dist/generators/test-generator/adapters/index.d.ts.map +1 -1
- package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts +4 -19
- package/dist/generators/test-generator/adapters/playwright/playwright-adapter.d.ts.map +1 -1
- package/dist/generators/test-generator/adapters/playwright/playwright-adapter.js.map +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
- package/dist/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
- package/dist/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
- package/dist/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +3 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +3 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
- 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/actions/wait-for-page.hbs +18 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +14 -3
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +13 -2
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
- package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
- package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
- package/dist/generators/test-generator/code-generator.d.ts +37 -0
- package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
- package/dist/generators/test-generator/code-generator.js +160 -39
- package/dist/generators/test-generator/code-generator.js.map +1 -1
- package/dist/generators/test-generator/diagnostics.d.ts +79 -5
- package/dist/generators/test-generator/diagnostics.d.ts.map +1 -1
- package/dist/generators/test-generator/diagnostics.js +78 -4
- package/dist/generators/test-generator/diagnostics.js.map +1 -1
- package/dist/generators/test-generator/patterns/index.d.ts +24 -5
- package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
- package/dist/generators/test-generator/patterns/index.js +92 -14
- package/dist/generators/test-generator/patterns/index.js.map +1 -1
- package/dist/generators/test-generator/patterns/with-parent-scope.d.ts +18 -0
- package/dist/generators/test-generator/patterns/with-parent-scope.d.ts.map +1 -0
- package/dist/generators/test-generator/patterns/with-parent-scope.js +40 -0
- package/dist/generators/test-generator/patterns/with-parent-scope.js.map +1 -0
- package/dist/generators/test-generator/step-mapper.d.ts +63 -9
- package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
- package/dist/generators/test-generator/step-mapper.js +166 -28
- package/dist/generators/test-generator/step-mapper.js.map +1 -1
- package/dist/generators/test-generator/template-engine.d.ts +4 -19
- package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
- package/dist/generators/test-generator/template-engine.js +17 -12
- package/dist/generators/test-generator/template-engine.js.map +1 -1
- package/dist/generators/test-generator/utils/data-resolver.d.ts +7 -0
- package/dist/generators/test-generator/utils/data-resolver.d.ts.map +1 -1
- package/dist/generators/test-generator/utils/data-resolver.js +19 -2
- package/dist/generators/test-generator/utils/data-resolver.js.map +1 -1
- package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts +41 -0
- package/dist/generators/test-generator/utils/dialog-scope-identity.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/dialog-scope-identity.js +61 -0
- package/dist/generators/test-generator/utils/dialog-scope-identity.js.map +1 -0
- package/dist/generators/test-generator/utils/escape-js-string.d.ts +17 -0
- package/dist/generators/test-generator/utils/escape-js-string.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/escape-js-string.js +29 -0
- package/dist/generators/test-generator/utils/escape-js-string.js.map +1 -0
- package/dist/generators/test-generator/utils/nearest-match.d.ts +24 -0
- package/dist/generators/test-generator/utils/nearest-match.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/nearest-match.js +56 -0
- package/dist/generators/test-generator/utils/nearest-match.js.map +1 -0
- package/dist/generators/test-generator/utils/selector-entry-fields.d.ts +58 -0
- package/dist/generators/test-generator/utils/selector-entry-fields.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/selector-entry-fields.js +119 -0
- package/dist/generators/test-generator/utils/selector-entry-fields.js.map +1 -0
- package/dist/generators/test-generator/utils/selector-entry-walk.d.ts +25 -0
- package/dist/generators/test-generator/utils/selector-entry-walk.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/selector-entry-walk.js +54 -0
- package/dist/generators/test-generator/utils/selector-entry-walk.js.map +1 -0
- package/dist/generators/test-generator/utils/selector-nth-validation.d.ts +59 -0
- package/dist/generators/test-generator/utils/selector-nth-validation.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/selector-nth-validation.js +91 -0
- package/dist/generators/test-generator/utils/selector-nth-validation.js.map +1 -0
- package/dist/generators/test-generator/utils/selector-resolver.d.ts +30 -1
- package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
- package/dist/generators/test-generator/utils/selector-resolver.js +195 -15
- package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
- package/dist/generators/test-generator/utils/selector-type-validation.d.ts +51 -0
- package/dist/generators/test-generator/utils/selector-type-validation.d.ts.map +1 -0
- package/dist/generators/test-generator/utils/selector-type-validation.js +77 -0
- package/dist/generators/test-generator/utils/selector-type-validation.js.map +1 -0
- package/dist/harness/data-driven-lint.d.ts.map +1 -1
- package/dist/harness/data-driven-lint.js +217 -33
- package/dist/harness/data-driven-lint.js.map +1 -1
- package/dist/harness/script-check.d.ts +2 -2
- package/dist/harness/script-check.d.ts.map +1 -1
- package/dist/harness/script-check.js +186 -25
- package/dist/harness/script-check.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/project-initializer.d.ts +6 -0
- package/dist/orchestrator/project-initializer.d.ts.map +1 -1
- package/dist/orchestrator/project-initializer.js +16 -0
- package/dist/orchestrator/project-initializer.js.map +1 -1
- package/dist/orchestrator/report-sanitize-reporter-install.d.ts +24 -0
- package/dist/orchestrator/report-sanitize-reporter-install.d.ts.map +1 -0
- package/dist/orchestrator/report-sanitize-reporter-install.js +161 -0
- package/dist/orchestrator/report-sanitize-reporter-install.js.map +1 -0
- package/dist/orchestrator/templates/ai-src/commands/run-test.md +9 -1
- package/dist/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +14 -2
- package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +108 -8
- package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +1 -0
- package/dist/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +9 -2
- package/dist/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +4 -4
- package/dist/orchestrator/templates/playwright.config.ts +7 -0
- package/dist/orchestrator/templates/specs-checked-state.d.ts +83 -0
- package/dist/orchestrator/templates/specs-checked-state.d.ts.map +1 -0
- package/dist/orchestrator/templates/specs-checked-state.js +261 -0
- package/dist/orchestrator/templates/specs-checked-state.js.map +1 -0
- package/dist/orchestrator/templates/specs-checked-state.ts +324 -0
- package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts +36 -0
- package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.d.ts.map +1 -0
- package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js +155 -0
- package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.js.map +1 -0
- package/dist/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
- package/dist/orchestrator/templates/specs-url-assert.d.ts +50 -25
- package/dist/orchestrator/templates/specs-url-assert.d.ts.map +1 -1
- package/dist/orchestrator/templates/specs-url-assert.js +65 -24
- package/dist/orchestrator/templates/specs-url-assert.js.map +1 -1
- package/dist/orchestrator/templates/specs-url-assert.ts +101 -28
- package/dist/utils/selector-types.d.ts +43 -1
- package/dist/utils/selector-types.d.ts.map +1 -1
- package/dist/utils/selector-types.js +51 -7
- package/dist/utils/selector-types.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/commands/delivery.ts +2 -1
- package/src/cli/commands/generate.ts +5 -2
- package/src/cli/commands/inspect.ts +1 -1
- package/src/cli/commands/results-merge.ts +9 -2
- package/src/cli/commands/results-sanitize.ts +98 -0
- package/src/cli/commands/script-check.ts +3 -1
- package/src/cli/commands/update.ts +3 -0
- package/src/exporters/api-testcase-formatter.ts +5 -7
- package/src/exporters/matrix/build.ts +4 -2
- package/src/exporters/matrix/render-coverage-sheet.ts +3 -1
- package/src/exporters/matrix/render-csv.ts +3 -1
- package/src/exporters/matrix/render-overview-sheet.ts +5 -10
- package/src/exporters/matrix/result-totals.ts +37 -0
- package/src/exporters/matrix/testcase-summary-band.ts +2 -7
- package/src/exporters/qa-env-secret-denylist.ts +1 -1
- package/src/exporters/report-path-sanitizer.ts +144 -0
- package/src/exporters/result-variants.ts +2 -1
- package/src/exporters/sensitive-key.ts +48 -0
- package/src/exporters/test-data-resolver.ts +12 -2
- package/src/generators/gherkin-parser/index.ts +21 -10
- package/src/generators/gherkin-parser/parent-scope-clause.ts +130 -0
- package/src/generators/test-generator/adapters/adapter-interface.ts +25 -3
- package/src/generators/test-generator/adapters/appium/appium-adapter.ts +4 -4
- package/src/generators/test-generator/adapters/appium/templates/after-all.hbs +18 -0
- package/src/generators/test-generator/adapters/appium/templates/after-each.hbs +18 -0
- package/src/generators/test-generator/adapters/appium/templates/before-all.hbs +18 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-at-position-action.hbs +1 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/click-element-with-text.hbs +1 -1
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/double-click-action.hbs +7 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/frame-enter-action.hbs +3 -6
- package/src/generators/test-generator/adapters/appium/templates/steps/actions/table-paginate-action.hbs +3 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/assertions/visible-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/appium/templates/steps/gestures/long-press-action.hbs +4 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/gestures/pinch-zoom-action.hbs +4 -0
- package/src/generators/test-generator/adapters/appium/templates/steps/partials/locator.hbs +9 -1
- package/src/generators/test-generator/adapters/appium/templates/test-file.hbs +54 -23
- package/src/generators/test-generator/adapters/index.ts +1 -1
- package/src/generators/test-generator/adapters/playwright/playwright-adapter.ts +4 -4
- package/src/generators/test-generator/adapters/playwright/templates/after-all.hbs +19 -1
- package/src/generators/test-generator/adapters/playwright/templates/after-each.hbs +18 -0
- package/src/generators/test-generator/adapters/playwright/templates/before-all.hbs +19 -1
- package/src/generators/test-generator/adapters/playwright/templates/imports.hbs +3 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/check-action.hbs +6 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-at-position-action.hbs +23 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/expand-action.hbs +8 -8
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/fill-editor-action.hbs +7 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row-nth.hbs +3 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +3 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-paginate-action.hbs +5 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/actions/uncheck-action.hbs +3 -1
- 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/actions/wait-for-page.hbs +18 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-assertion.hbs +32 -4
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/all-contain-element.hbs +5 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/checked-assertion.hbs +5 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/column-cell-assertion.hbs +13 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/contain-text-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-role-variable-assertion.hbs +2 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/disabled-with-variable-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/have-text-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-role-variable-assertion.hbs +2 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/hidden-with-variable-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/not-checked-assertion.hbs +2 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/selected-assertion.hbs +14 -3
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/state-with-filter-assertion.hbs +13 -2
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +3 -3
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-variable-assertion.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/checked-opts.hbs +8 -0
- package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-nth.hbs +1 -1
- package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +10 -8
- package/src/generators/test-generator/code-generator.ts +176 -45
- package/src/generators/test-generator/diagnostics.ts +79 -5
- package/src/generators/test-generator/patterns/index.ts +97 -16
- package/src/generators/test-generator/patterns/with-parent-scope.ts +41 -0
- package/src/generators/test-generator/step-mapper.ts +170 -26
- package/src/generators/test-generator/template-engine.ts +21 -21
- package/src/generators/test-generator/utils/data-resolver.ts +23 -2
- package/src/generators/test-generator/utils/dialog-scope-identity.ts +71 -0
- package/src/generators/test-generator/utils/escape-js-string.ts +24 -0
- package/src/generators/test-generator/utils/nearest-match.ts +55 -0
- package/src/generators/test-generator/utils/selector-entry-fields.ts +131 -0
- package/src/generators/test-generator/utils/selector-entry-walk.ts +58 -0
- package/src/generators/test-generator/utils/selector-nth-validation.ts +99 -0
- package/src/generators/test-generator/utils/selector-resolver.ts +245 -16
- package/src/generators/test-generator/utils/selector-type-validation.ts +87 -0
- package/src/harness/data-driven-lint.ts +192 -32
- package/src/harness/script-check.ts +186 -21
- package/src/index.ts +7 -0
- package/src/orchestrator/project-initializer.ts +17 -0
- package/src/orchestrator/report-sanitize-reporter-install.ts +109 -0
- package/src/orchestrator/templates/ai-src/commands/run-test.md +9 -1
- package/src/orchestrator/templates/ai-src/skills/sungen-api-coverage-model/SKILL.md +10 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +14 -2
- package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +108 -8
- package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +1 -0
- package/src/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +9 -2
- package/src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +4 -4
- package/src/orchestrator/templates/playwright.config.ts +7 -0
- package/src/orchestrator/templates/specs-checked-state.ts +324 -0
- package/src/orchestrator/templates/specs-report-path-sanitize-reporter.ts +142 -0
- package/src/orchestrator/templates/specs-url-assert.ts +101 -28
- package/src/utils/selector-types.ts +54 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector-resolver.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selector-resolver.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SG-E027 — an entry `type:` the compiler does not know (issue #711).
|
|
3
|
+
*
|
|
4
|
+
* `selectors.yaml` is YAML, so `type:` is an arbitrary string at run time. `VALID_SELECTOR_TYPES`
|
|
5
|
+
* constrained it only through the `SelectorType` TypeScript union, and nothing imported that list
|
|
6
|
+
* for a runtime check — so any value the resolver did not recognise fell to the strategy switch's
|
|
7
|
+
* `default:` branch, which returns `{ strategy: 'placeholder' }`, and the entry's `value:` was
|
|
8
|
+
* emitted as literal placeholder text:
|
|
9
|
+
*
|
|
10
|
+
* save:
|
|
11
|
+
* type: 'testId' # note the capital I
|
|
12
|
+
* value: 'btn-save'
|
|
13
|
+
* → await page.getByPlaceholder('btn-save').click();
|
|
14
|
+
*
|
|
15
|
+
* Same family as #690 (a valid type with no dispatch) and #712 (a documented field with no
|
|
16
|
+
* consumer): the DECLARED surface was wider than the IMPLEMENTED one and nothing compared the two.
|
|
17
|
+
* Here the gap was the widest of the three, because an unknown type is not a fixed list of
|
|
18
|
+
* oversights — it is every possible misspelling.
|
|
19
|
+
*
|
|
20
|
+
* Checked HERE, at the selector-file load, rather than in the strategy switch. The switch CANNOT
|
|
21
|
+
* throw: `type: page` reaches its `default:` on every page assertion (its `value` is a URL, not a
|
|
22
|
+
* locator) and `StepMapper.checkPageStepFallback` resolves inside a try/catch that would read
|
|
23
|
+
* a throw as "not a page" and emit a false SG-W013. Validating at the load point also buys a
|
|
24
|
+
* better message — the file, the entry key and the nearest valid spelling — and reports once per
|
|
25
|
+
* entry rather than once per step that names it.
|
|
26
|
+
*/
|
|
27
|
+
import type { DiagnosticsCollector } from '../diagnostics';
|
|
28
|
+
export interface UnknownSelectorType {
|
|
29
|
+
/** Dotted path to the offending entry, e.g. `save` or `greeting.ios`. */
|
|
30
|
+
path: string;
|
|
31
|
+
/** The unrecognised `type:` value exactly as written. */
|
|
32
|
+
type: string;
|
|
33
|
+
/** A near-miss valid type, when one is close enough to be worth naming. */
|
|
34
|
+
suggestion?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Every entry in `file` whose `type:` is not a member of `VALID_SELECTOR_TYPES`. */
|
|
37
|
+
export declare function collectUnknownSelectorTypes(file: Record<string, unknown>): UnknownSelectorType[];
|
|
38
|
+
/** True when this entry kind is one the compiler knows how to resolve. */
|
|
39
|
+
export declare function isKnownSelectorType(type: unknown): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* SG-E027 — report every entry whose `type:` nothing dispatches.
|
|
42
|
+
*
|
|
43
|
+
* Runs once per selector FILE (the resolver's load is cached), so an entry named by twenty steps
|
|
44
|
+
* is reported once. Silent when there is no diagnostics channel attached — `generate` must not
|
|
45
|
+
* depend on diagnostics being wired.
|
|
46
|
+
*/
|
|
47
|
+
export declare function reportUnknownSelectorTypes(file: Record<string, unknown>, opts: {
|
|
48
|
+
feature?: string;
|
|
49
|
+
diagnostics?: DiagnosticsCollector;
|
|
50
|
+
}): void;
|
|
51
|
+
//# sourceMappingURL=selector-type-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector-type-validation.d.ts","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-type-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qFAAqF;AACrF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,EAAE,CAchG;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAC7D,IAAI,CAaN"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SG-E027 — an entry `type:` the compiler does not know (issue #711).
|
|
4
|
+
*
|
|
5
|
+
* `selectors.yaml` is YAML, so `type:` is an arbitrary string at run time. `VALID_SELECTOR_TYPES`
|
|
6
|
+
* constrained it only through the `SelectorType` TypeScript union, and nothing imported that list
|
|
7
|
+
* for a runtime check — so any value the resolver did not recognise fell to the strategy switch's
|
|
8
|
+
* `default:` branch, which returns `{ strategy: 'placeholder' }`, and the entry's `value:` was
|
|
9
|
+
* emitted as literal placeholder text:
|
|
10
|
+
*
|
|
11
|
+
* save:
|
|
12
|
+
* type: 'testId' # note the capital I
|
|
13
|
+
* value: 'btn-save'
|
|
14
|
+
* → await page.getByPlaceholder('btn-save').click();
|
|
15
|
+
*
|
|
16
|
+
* Same family as #690 (a valid type with no dispatch) and #712 (a documented field with no
|
|
17
|
+
* consumer): the DECLARED surface was wider than the IMPLEMENTED one and nothing compared the two.
|
|
18
|
+
* Here the gap was the widest of the three, because an unknown type is not a fixed list of
|
|
19
|
+
* oversights — it is every possible misspelling.
|
|
20
|
+
*
|
|
21
|
+
* Checked HERE, at the selector-file load, rather than in the strategy switch. The switch CANNOT
|
|
22
|
+
* throw: `type: page` reaches its `default:` on every page assertion (its `value` is a URL, not a
|
|
23
|
+
* locator) and `StepMapper.checkPageStepFallback` resolves inside a try/catch that would read
|
|
24
|
+
* a throw as "not a page" and emit a false SG-W013. Validating at the load point also buys a
|
|
25
|
+
* better message — the file, the entry key and the nearest valid spelling — and reports once per
|
|
26
|
+
* entry rather than once per step that names it.
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.collectUnknownSelectorTypes = collectUnknownSelectorTypes;
|
|
30
|
+
exports.isKnownSelectorType = isKnownSelectorType;
|
|
31
|
+
exports.reportUnknownSelectorTypes = reportUnknownSelectorTypes;
|
|
32
|
+
const selector_types_1 = require("../../../utils/selector-types");
|
|
33
|
+
const nearest_match_1 = require("./nearest-match");
|
|
34
|
+
const selector_entry_walk_1 = require("./selector-entry-walk");
|
|
35
|
+
/** Every entry in `file` whose `type:` is not a member of `VALID_SELECTOR_TYPES`. */
|
|
36
|
+
function collectUnknownSelectorTypes(file) {
|
|
37
|
+
const out = [];
|
|
38
|
+
(0, selector_entry_walk_1.walkSelectorEntries)(file, {
|
|
39
|
+
entry(entry, path) {
|
|
40
|
+
const type = entry.type;
|
|
41
|
+
// Only a STRING type is judged here. A non-string `type:` (a YAML nesting slip) is a
|
|
42
|
+
// different defect with a different fix, and SG-W004's field walk is not the owner of it
|
|
43
|
+
// either — naming it as an unknown type would print `[object Object]` at the author.
|
|
44
|
+
if (typeof type !== 'string')
|
|
45
|
+
return;
|
|
46
|
+
if (selector_types_1.VALID_SELECTOR_TYPES.includes(type))
|
|
47
|
+
return;
|
|
48
|
+
out.push({ path, type, suggestion: (0, nearest_match_1.nearestMatch)(type, selector_types_1.VALID_SELECTOR_TYPES) });
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
/** True when this entry kind is one the compiler knows how to resolve. */
|
|
54
|
+
function isKnownSelectorType(type) {
|
|
55
|
+
return typeof type === 'string' && selector_types_1.VALID_SELECTOR_TYPES.includes(type);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* SG-E027 — report every entry whose `type:` nothing dispatches.
|
|
59
|
+
*
|
|
60
|
+
* Runs once per selector FILE (the resolver's load is cached), so an entry named by twenty steps
|
|
61
|
+
* is reported once. Silent when there is no diagnostics channel attached — `generate` must not
|
|
62
|
+
* depend on diagnostics being wired.
|
|
63
|
+
*/
|
|
64
|
+
function reportUnknownSelectorTypes(file, opts) {
|
|
65
|
+
const sink = opts.diagnostics;
|
|
66
|
+
if (!sink)
|
|
67
|
+
return;
|
|
68
|
+
for (const { path, type, suggestion } of collectUnknownSelectorTypes(file)) {
|
|
69
|
+
const hint = suggestion
|
|
70
|
+
? ` Did you mean "${suggestion}"?`
|
|
71
|
+
: ` Valid types: ${selector_types_1.VALID_SELECTOR_TYPES.join(', ')}.`;
|
|
72
|
+
sink.add('SG-E027', `selectors.yaml entry "${path}" declares type: "${type}", which is not a selector type — `
|
|
73
|
+
+ `the entry resolves to getByPlaceholder("<its value>"), a locator that cannot match, so `
|
|
74
|
+
+ `every step naming it now throws instead of failing later as a mystery timeout.${hint}`, { feature: opts.feature });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=selector-type-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector-type-validation.js","sourceRoot":"","sources":["../../../../src/generators/test-generator/utils/selector-type-validation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;AAiBH,kEAcC;AAGD,kDAEC;AASD,gEAgBC;AA1DD,kEAAqE;AACrE,mDAA+C;AAC/C,+DAA4D;AAW5D,qFAAqF;AACrF,SAAgB,2BAA2B,CAAC,IAA6B;IACvE,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,IAAA,yCAAmB,EAAC,IAAI,EAAE;QACxB,KAAK,CAAC,KAAK,EAAE,IAAI;YACf,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,qFAAqF;YACrF,yFAAyF;YACzF,qFAAqF;YACrF,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YACrC,IAAK,qCAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAA,4BAAY,EAAC,IAAI,EAAE,qCAAoB,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAK,qCAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B,CACxC,IAA6B,EAC7B,IAA8D;IAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,UAAU;YACrB,CAAC,CAAC,kBAAkB,UAAU,IAAI;YAClC,CAAC,CAAC,iBAAiB,qCAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,SAAS,EAChB,yBAAyB,IAAI,qBAAqB,IAAI,oCAAoC;cACxF,yFAAyF;cACzF,iFAAiF,IAAI,EAAE,EACzF,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-driven-lint.d.ts","sourceRoot":"","sources":["../../src/harness/data-driven-lint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-driven-lint.d.ts","sourceRoot":"","sources":["../../src/harness/data-driven-lint.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AA0HD,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,iBAAiB,EAAE,CAgJlG"}
|
|
@@ -39,8 +39,25 @@ exports.lintDataDriven = lintDataDriven;
|
|
|
39
39
|
*
|
|
40
40
|
* Advisory (warn, never block) — surfaced after `sungen generate`. Catches the silent
|
|
41
41
|
* footguns: a `{{var}}` in a @cases scenario that is neither a row column nor a top-level
|
|
42
|
-
* key, a name collision that shadows a top-level value, inconsistent dataset rows,
|
|
43
|
-
* @query whose param has no value / whose name doesn't resolve
|
|
42
|
+
* key, a name collision that shadows a top-level value, inconsistent dataset rows, a
|
|
43
|
+
* @query whose param has no value / whose name doesn't resolve, and a top-level test-data
|
|
44
|
+
* key nothing binds (dead data).
|
|
45
|
+
*
|
|
46
|
+
* "Referenced" is what the COMPILER and the RUNTIME actually read, not just `{{key}}` in a step:
|
|
47
|
+
* - `{{key…}}` in any step, or in the comments of a `@manual` scenario (its tester procedure is
|
|
48
|
+
* the only body it has — the delivery exports those refs, so they are not dead);
|
|
49
|
+
* - a `@cases:<key>` dataset;
|
|
50
|
+
* - an override value `…={{key…}}` on an @api/@query annotation;
|
|
51
|
+
* - a @query or @api param bound IMPLICITLY by name — `params: [user_email]` with no override
|
|
52
|
+
* reads `testData.raw("user_email")` at run time (driver-db / driver-api), so the key is live
|
|
53
|
+
* even though no `{{user_email}}` appears anywhere;
|
|
54
|
+
* - `{{key}}` in the unit's selectors (locale-aware names) or mock catalog (mock bodies).
|
|
55
|
+
* Keys that start with `_` are Data Factory metadata (`_generated_by`, `_fingerprint`), never
|
|
56
|
+
* scenario data — the factory itself skips them by the same rule.
|
|
57
|
+
* The FORWARD direction is checked here too: a `{{x}}` in a plain scenario whose head is neither a
|
|
58
|
+
* test-data key nor bound at run time compiles to the literal text `'${x}'` — the step types the
|
|
59
|
+
* placeholder into the field and the scenario runs green having tested nothing. The compiler emits
|
|
60
|
+
* no diagnostic for that fallback, so this lint names it.
|
|
44
61
|
*/
|
|
45
62
|
const fs = __importStar(require("fs"));
|
|
46
63
|
const path = __importStar(require("path"));
|
|
@@ -49,15 +66,123 @@ const yaml_1 = require("yaml");
|
|
|
49
66
|
const gherkin_parser_1 = require("../generators/gherkin-parser");
|
|
50
67
|
const query_catalog_1 = require("./query-catalog");
|
|
51
68
|
const ROW_META = new Set(['case', 'name', 'label', '__label']);
|
|
52
|
-
/**
|
|
53
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Collect the inner text of every `{{…}}` reference in a scenario's steps — and, for a `@manual`
|
|
71
|
+
* scenario, in its comments: the `# Tester verifies: …` procedure is its only body and the delivery
|
|
72
|
+
* exporter reads those refs. Other scenarios' comments are NOT scanned: a ref mentioned only in
|
|
73
|
+
* prose would otherwise hide a genuinely dead key.
|
|
74
|
+
*/
|
|
75
|
+
function collectRefs(sc, manual = isManualScenario(sc)) {
|
|
54
76
|
const refs = new Set();
|
|
55
|
-
|
|
56
|
-
|
|
77
|
+
const texts = (sc.steps || []).map((st) => st.text || '');
|
|
78
|
+
if (manual)
|
|
79
|
+
texts.push(...(sc.comments || []));
|
|
80
|
+
for (const text of texts) {
|
|
81
|
+
for (const m of text.matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
|
|
57
82
|
refs.add(m[1]);
|
|
58
83
|
}
|
|
59
84
|
return [...refs];
|
|
60
85
|
}
|
|
86
|
+
function isManualScenario(sc) {
|
|
87
|
+
return (sc.tags || []).some((t) => t === '@manual' || t.startsWith('@manual:'));
|
|
88
|
+
}
|
|
89
|
+
/** Variable heads a scenario binds at RUN time: `@api:<name>`/`@query:<name>` responses and `remember … as {{v}}` captures. */
|
|
90
|
+
function runtimeBoundHeads(sc) {
|
|
91
|
+
const out = new Set();
|
|
92
|
+
for (const t of sc.tags || []) {
|
|
93
|
+
const m = t.match(/^@(?:api|query):([A-Za-z_]\w*)/);
|
|
94
|
+
if (m)
|
|
95
|
+
out.add(m[1]);
|
|
96
|
+
}
|
|
97
|
+
for (const st of sc.steps || []) {
|
|
98
|
+
for (const m of (st.text || '').matchAll(/\bas\s+\{\{\s*([^}.[\s]+)/g))
|
|
99
|
+
out.add(m[1]);
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The unit id the catalogs are resolved by — the path under `qa/`, with the `screens/` prefix
|
|
105
|
+
* dropped: `qa/screens/login` → `login`, `qa/flows/checkout` → `flows/checkout`, `qa/api/pet` →
|
|
106
|
+
* `api/pet`, `qa/api/flows/signup` → `api/flows/signup`. `generate` hands every unit kind to this
|
|
107
|
+
* lint; a bare basename sent an api unit's `@query` to `qa/screens/<area>/database/` and reported
|
|
108
|
+
* every query as "not found".
|
|
109
|
+
*/
|
|
110
|
+
function unitIdOf(unitDir) {
|
|
111
|
+
const parts = path.resolve(unitDir).split(path.sep);
|
|
112
|
+
const qa = parts.lastIndexOf('qa', parts.length - 2); // a unit itself named `qa` is not the qa/ root
|
|
113
|
+
if (qa < 0) {
|
|
114
|
+
const base = path.basename(unitDir);
|
|
115
|
+
return path.basename(path.dirname(unitDir)) === 'flows' ? `flows/${base}` : base;
|
|
116
|
+
}
|
|
117
|
+
const rel = parts.slice(qa + 1);
|
|
118
|
+
return (rel[0] === 'screens' ? rel.slice(1) : rel).join('/');
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* `{{key}}` refs the unit's OTHER authored files carry — a locale-aware selector (`name: '{{lbl_submit}}'`,
|
|
122
|
+
* resolved from test-data by the selector resolver) and a mock body (`body: "{{mock_search_body}}"`,
|
|
123
|
+
* bound by the mock driver at compile time). A key used only there is live, not dead.
|
|
124
|
+
*/
|
|
125
|
+
function refsInUnitFiles(unitDir) {
|
|
126
|
+
const out = new Set();
|
|
127
|
+
for (const sub of ['selectors', 'mock']) {
|
|
128
|
+
const dir = path.join(unitDir, sub);
|
|
129
|
+
if (!fs.existsSync(dir))
|
|
130
|
+
continue;
|
|
131
|
+
for (const f of fs.readdirSync(dir)) {
|
|
132
|
+
if (!/\.ya?ml$/.test(f))
|
|
133
|
+
continue;
|
|
134
|
+
const text = fs.readFileSync(path.join(dir, f), 'utf8');
|
|
135
|
+
for (const m of text.matchAll(/\{\{\s*([^}$][^}]*?)\s*\}\}/g))
|
|
136
|
+
out.add(m[1].split(/[.[]/)[0]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return out;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Param names of the `@api:<name>` entries a unit can reference — declared `params:`, else the
|
|
143
|
+
* `:name` placeholders in path/body/headers (the same derivation the API driver applies). Read
|
|
144
|
+
* straight from the catalog files: a param not overridden in the annotation is bound at run time by
|
|
145
|
+
* NAME from test-data (`testData.raw("petId")`), so that key is live even with no `{{petId}}` anywhere.
|
|
146
|
+
* Best-effort — a missing or unparseable catalog contributes nothing (the api driver's own sensor
|
|
147
|
+
* reports those).
|
|
148
|
+
*/
|
|
149
|
+
function apiParamsByName(unitId, cwd) {
|
|
150
|
+
const out = new Map();
|
|
151
|
+
const unitCatalog = unitId.startsWith('api/') || unitId.startsWith('flows/')
|
|
152
|
+
? path.join(cwd, 'qa', unitId, 'api', 'apis.yaml')
|
|
153
|
+
: path.join(cwd, 'qa', 'screens', unitId, 'api', 'apis.yaml');
|
|
154
|
+
for (const file of [unitCatalog, path.join(cwd, 'qa', 'api', 'apis.yaml')]) {
|
|
155
|
+
if (!fs.existsSync(file))
|
|
156
|
+
continue;
|
|
157
|
+
let raw;
|
|
158
|
+
try {
|
|
159
|
+
raw = (0, yaml_1.parse)(fs.readFileSync(file, 'utf8')) || {};
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
const root = raw && typeof raw === 'object' && raw.apis && typeof raw.apis === 'object' ? raw.apis : raw;
|
|
165
|
+
for (const [name, v] of Object.entries(root)) {
|
|
166
|
+
if (!v || typeof v !== 'object' || typeof v.method !== 'string' || typeof v.path !== 'string')
|
|
167
|
+
continue;
|
|
168
|
+
if (out.has(name))
|
|
169
|
+
continue; // unit catalog wins over the shared one
|
|
170
|
+
// Same rule as the driver's apiParamNames: declared `params` when non-empty, else the `:name`
|
|
171
|
+
// placeholders of path/body/headers/files/bodyFile — except an XML string body, whose `:` are
|
|
172
|
+
// namespaces, where only declared params count.
|
|
173
|
+
const declared = Array.isArray(v.params) && v.params.length ? v.params.map(String) : null;
|
|
174
|
+
const refs = new Set();
|
|
175
|
+
const xmlBody = v.encoding === 'xml' && typeof v.body === 'string';
|
|
176
|
+
const texts = [v.path, xmlBody ? '' : JSON.stringify(v.body ?? ''), JSON.stringify(v.headers ?? ''), JSON.stringify(v.files ?? ''), JSON.stringify(v.bodyFile ?? '')];
|
|
177
|
+
for (const text of texts) {
|
|
178
|
+
for (const m of String(text).matchAll(/:([A-Za-z_][A-Za-z0-9_]*)/g))
|
|
179
|
+
refs.add(m[1]);
|
|
180
|
+
}
|
|
181
|
+
out.set(name, declared ?? (xmlBody ? [] : [...refs]));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return out;
|
|
185
|
+
}
|
|
61
186
|
/** Keys overridden in a `@query:name(a=…,b=…)` annotation. */
|
|
62
187
|
function overrideKeys(raw) {
|
|
63
188
|
const out = new Set();
|
|
@@ -73,29 +198,84 @@ function overrideKeys(raw) {
|
|
|
73
198
|
/** Lint the @cases/@query usage of one screen/flow directory. Returns advisory warnings. */
|
|
74
199
|
function lintDataDriven(screenDir, cwd = process.cwd()) {
|
|
75
200
|
const base = path.basename(screenDir);
|
|
76
|
-
const
|
|
77
|
-
const screenName = isFlow ? `flows/${base}` : base;
|
|
201
|
+
const screenName = unitIdOf(screenDir);
|
|
78
202
|
// Every `.feature` of the unit — `add --feature` sub-features lint too. A file that
|
|
79
203
|
// fails to parse contributes nothing rather than voiding the whole unit's lint.
|
|
80
|
-
const scenarios =
|
|
81
|
-
|
|
82
|
-
|
|
204
|
+
const scenarios = [];
|
|
205
|
+
const featureTags = [];
|
|
206
|
+
for (const p of (0, unit_paths_1.featureFilesFor)(screenDir, base).filter((f) => fs.existsSync(f))) {
|
|
83
207
|
try {
|
|
84
|
-
|
|
208
|
+
const feature = new gherkin_parser_1.GherkinParser().parseFeatureFile(p);
|
|
209
|
+
scenarios.push(...(feature.scenarios || []));
|
|
210
|
+
featureTags.push(...(feature.tags || []));
|
|
85
211
|
}
|
|
86
212
|
catch {
|
|
87
|
-
|
|
213
|
+
/* a file that fails to parse contributes nothing */
|
|
88
214
|
}
|
|
89
|
-
}
|
|
215
|
+
}
|
|
90
216
|
if (scenarios.length === 0)
|
|
91
217
|
return [];
|
|
92
218
|
const tdPath = path.join(screenDir, 'test-data', `${base}.yaml`);
|
|
93
219
|
const td = tdPath && fs.existsSync(tdPath) ? (0, yaml_1.parse)(fs.readFileSync(tdPath, 'utf8')) || {} : {};
|
|
94
220
|
const topKeys = new Set(Object.keys(td));
|
|
95
221
|
const warns = [];
|
|
222
|
+
// Bindings a `@beforeAll` hook's `@api:`/`@query:` preconditions make are readable from EVERY
|
|
223
|
+
// scenario of the feature (the compiler registers them feature-wide). A `remember … as` inside the
|
|
224
|
+
// hook is NOT — it stays hook-local — so only the tag-bound names are exempted here.
|
|
225
|
+
const featureBound = new Set();
|
|
226
|
+
for (const sc of scenarios) {
|
|
227
|
+
if (sc.hookType !== 'beforeAll')
|
|
228
|
+
continue;
|
|
229
|
+
for (const t of sc.tags || []) {
|
|
230
|
+
const m = t.match(/^@(?:api|query):([A-Za-z_]\w*)/);
|
|
231
|
+
if (m)
|
|
232
|
+
featureBound.add(m[1]);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// H3: an `@extend:<base>` scenario runs the base's steps first — the base's captures bind for it.
|
|
236
|
+
const stepsBase = new Map();
|
|
237
|
+
for (const sc of scenarios)
|
|
238
|
+
if (sc.stepsName)
|
|
239
|
+
stepsBase.set(sc.stepsName, sc);
|
|
240
|
+
// `{{key}}` refs carried by the unit's selectors (i18n) and mock catalog are live too.
|
|
241
|
+
const fileRefs = refsInUnitFiles(screenDir);
|
|
242
|
+
// A feature-level `@manual` makes every scenario manual (the whole file is skipped by the compiler).
|
|
243
|
+
const featureManual = featureTags.some((t) => t === '@manual' || t.startsWith('@manual:'));
|
|
244
|
+
// What the scenarios bind, collected up front — the @query pass below adds the params it binds by name.
|
|
245
|
+
const usedHeads = new Set();
|
|
246
|
+
const usedDatasets = new Set();
|
|
247
|
+
const apiParams = apiParamsByName(screenName, cwd);
|
|
248
|
+
for (const h of fileRefs)
|
|
249
|
+
usedHeads.add(h);
|
|
250
|
+
for (const sc of scenarios) {
|
|
251
|
+
for (const r of collectRefs(sc, featureManual || isManualScenario(sc)))
|
|
252
|
+
usedHeads.add(r.split(/[.[]/)[0]);
|
|
253
|
+
for (const t of sc.tags || []) {
|
|
254
|
+
const cm = t.match(/^@cases:(.+)$/);
|
|
255
|
+
if (cm)
|
|
256
|
+
usedDatasets.add(cm[1].trim());
|
|
257
|
+
const om = t.match(/^@(?:api|query):[A-Za-z_]\w*\((.*)\)$/);
|
|
258
|
+
if (om)
|
|
259
|
+
for (const ref of om[1].matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
|
|
260
|
+
usedHeads.add(ref[1].split(/[.[]/)[0].trim());
|
|
261
|
+
// `@api:<name>` params not overridden in the annotation are read from test-data BY NAME at run time.
|
|
262
|
+
const am = t.match(/^@api:([A-Za-z_]\w*)(?:\((.*)\))?$/);
|
|
263
|
+
if (am) {
|
|
264
|
+
const overrides = overrideKeys(am[2]);
|
|
265
|
+
for (const p of apiParams.get(am[1]) ?? [])
|
|
266
|
+
if (!overrides.has(p))
|
|
267
|
+
usedHeads.add(p);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
96
271
|
for (const sc of scenarios) {
|
|
97
272
|
const tags = sc.tags || [];
|
|
98
|
-
const
|
|
273
|
+
const manual = featureManual || isManualScenario(sc);
|
|
274
|
+
const refs = collectRefs(sc, manual);
|
|
275
|
+
const bound = runtimeBoundHeads(sc);
|
|
276
|
+
if (sc.extendsName && stepsBase.has(sc.extendsName))
|
|
277
|
+
for (const h of runtimeBoundHeads(stepsBase.get(sc.extendsName)))
|
|
278
|
+
bound.add(h);
|
|
99
279
|
// --- @cases -----------------------------------------------------------
|
|
100
280
|
const casesTag = tags.find((t) => t.startsWith('@cases:'));
|
|
101
281
|
if (casesTag) {
|
|
@@ -117,12 +297,26 @@ function lintDataDriven(screenDir, cwd = process.cwd()) {
|
|
|
117
297
|
}
|
|
118
298
|
for (const r of refs) {
|
|
119
299
|
const head = r.split(/[.[]/)[0];
|
|
300
|
+
// `{{$uuid}}` is resolved at run time; `{{login.status}}` / `{{captured}}` are bound by the
|
|
301
|
+
// scenario's own @api/@query call or `remember … as` — none of them is test-data.
|
|
302
|
+
if (head.startsWith('$') || bound.has(head))
|
|
303
|
+
continue;
|
|
120
304
|
if (!allCols.has(head) && !topKeys.has(head)) {
|
|
121
305
|
warns.push({ scenario: sc.name, message: `@cases:${ds} → {{${r}}} is neither a dataset column nor a top-level test-data key.` });
|
|
122
306
|
}
|
|
123
307
|
}
|
|
124
308
|
}
|
|
125
309
|
}
|
|
310
|
+
// --- forward: a ref in a PLAIN scenario that nothing provides ----------------------------
|
|
311
|
+
// (@cases scenarios are covered above with their row columns; hooks bind their own refs)
|
|
312
|
+
if (!casesTag && !manual) { // a @manual scenario is never compiled — nothing to say about literals
|
|
313
|
+
for (const r of refs) {
|
|
314
|
+
const head = r.split(/[.[]/)[0];
|
|
315
|
+
if (head.startsWith('$') || bound.has(head) || featureBound.has(head) || topKeys.has(head))
|
|
316
|
+
continue;
|
|
317
|
+
warns.push({ scenario: sc.name, message: `{{${r}}} is not a test-data key and nothing binds it at run time — it compiles to the literal text '\${${r}}' (add the key to test-data, or fix the ref).` });
|
|
318
|
+
}
|
|
319
|
+
}
|
|
126
320
|
// --- @query -----------------------------------------------------------
|
|
127
321
|
for (const t of tags) {
|
|
128
322
|
const m = t.match(/^@query:([A-Za-z_][A-Za-z0-9_]*)(?:\((.*)\))?$/);
|
|
@@ -139,31 +333,21 @@ function lintDataDriven(screenDir, cwd = process.cwd()) {
|
|
|
139
333
|
continue;
|
|
140
334
|
}
|
|
141
335
|
for (const p of entry.params || []) {
|
|
142
|
-
if (
|
|
336
|
+
if (overrides.has(p))
|
|
337
|
+
continue;
|
|
338
|
+
// Not overridden → the runtime reads `testData.raw("<p>")`: the key IS referenced, by name.
|
|
339
|
+
usedHeads.add(p);
|
|
340
|
+
if (!topKeys.has(p)) {
|
|
143
341
|
warns.push({ scenario: sc.name, message: `@query:${name} → param "${p}" has no value: not in the annotation and not a top-level test-data key.` });
|
|
144
342
|
}
|
|
145
343
|
}
|
|
146
344
|
}
|
|
147
345
|
}
|
|
148
346
|
// --- orphan test-data: a top-level key never referenced (dead data — generated but not
|
|
149
|
-
// materialized into a scenario).
|
|
150
|
-
// dataset, or an override value `…={{key…}}` on an @api/@query annotation.
|
|
151
|
-
const usedHeads = new Set();
|
|
152
|
-
const usedDatasets = new Set();
|
|
153
|
-
for (const sc of scenarios) {
|
|
154
|
-
for (const r of collectRefs(sc))
|
|
155
|
-
usedHeads.add(r.split(/[.[]/)[0]);
|
|
156
|
-
for (const t of sc.tags || []) {
|
|
157
|
-
const cm = t.match(/^@cases:(.+)$/);
|
|
158
|
-
if (cm)
|
|
159
|
-
usedDatasets.add(cm[1].trim());
|
|
160
|
-
const om = t.match(/^@(?:api|query):[A-Za-z_]\w*\((.*)\)$/);
|
|
161
|
-
if (om)
|
|
162
|
-
for (const ref of om[1].matchAll(/\{\{\s*([^}]+?)\s*\}\}/g))
|
|
163
|
-
usedHeads.add(ref[1].split(/[.[]/)[0].trim());
|
|
164
|
-
}
|
|
165
|
-
}
|
|
347
|
+
// materialized into a scenario). See the header for what counts as referenced.
|
|
166
348
|
for (const k of topKeys) {
|
|
349
|
+
if (k.startsWith('_'))
|
|
350
|
+
continue; // Data Factory metadata, not scenario data
|
|
167
351
|
if (!usedHeads.has(k) && !usedDatasets.has(k)) {
|
|
168
352
|
warns.push({ message: `test-data key "${k}" is defined but never referenced ({{${k}}}, a @cases dataset, or an override) — dead data: bind it into a scenario or remove it.` });
|
|
169
353
|
}
|