@futdevpro/dynamo-e2e 1.17.1 → 1.18.0
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/.dynamo/logs/cicd-pipeline/status.json +25 -25
- package/CHANGELOG.md +98 -0
- package/bin/dye2e.js +170 -0
- package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js +3 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
- package/build/_modules/generators/_collections/test-case-filter.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/test-case-filter.util.js +24 -0
- package/build/_modules/generators/_collections/test-case-filter.util.js.map +1 -1
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +7 -0
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.spec.js +14 -0
- package/build/_modules/generators/form-suite.generator.spec.js.map +1 -1
- package/build/_modules/generators/test-case-filter-edge.spec.js +37 -4
- package/build/_modules/generators/test-case-filter-edge.spec.js.map +1 -1
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts +8 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js +21 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts +21 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.js +57 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts +13 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js +318 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts +14 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js +82 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts +23 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js +37 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js.map +1 -0
- package/build/_modules/vqa/_collections/index.d.ts +10 -0
- package/build/_modules/vqa/_collections/index.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/index.js +26 -0
- package/build/_modules/vqa/_collections/index.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +23 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js +112 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts +18 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.js +42 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts +21 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.js +114 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts +27 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.js +148 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts +48 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.js +77 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.js.map +1 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts +44 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js +48 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.d.ts +17 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.js +21 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/finding-status.enum.d.ts +23 -0
- package/build/_modules/vqa/_enums/finding-status.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/finding-status.enum.js +27 -0
- package/build/_modules/vqa/_enums/finding-status.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/index.d.ts +5 -0
- package/build/_modules/vqa/_enums/index.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/index.js +21 -0
- package/build/_modules/vqa/_enums/index.js.map +1 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts +38 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.js +49 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts +22 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts +21 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts +16 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +56 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +58 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts +32 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts +8 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/index.js +24 -0
- package/build/_modules/vqa/_models/interfaces/index.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts +34 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.js.map +1 -0
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/capture-spec.generator.spec.js +126 -0
- package/build/_modules/vqa/capture-spec.generator.spec.js.map +1 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.js +130 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +1 -0
- package/build/_modules/vqa/finding-validator.spec.d.ts +2 -0
- package/build/_modules/vqa/finding-validator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/finding-validator.spec.js +136 -0
- package/build/_modules/vqa/finding-validator.spec.js.map +1 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +19 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.js +179 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -0
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts +9 -0
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -0
- package/build/_modules/vqa/generators/bundle-summary.template.js +73 -0
- package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts +33 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/capture-spec.generator.js +194 -0
- package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts +37 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.js +238 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -0
- package/build/_modules/vqa/generators/index.d.ts +6 -0
- package/build/_modules/vqa/generators/index.d.ts.map +1 -0
- package/build/_modules/vqa/generators/index.js +22 -0
- package/build/_modules/vqa/generators/index.js.map +1 -0
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts +49 -0
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/review-bundle.generator.js +127 -0
- package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -0
- package/build/_modules/vqa/index.d.ts +6 -0
- package/build/_modules/vqa/index.d.ts.map +1 -0
- package/build/_modules/vqa/index.js +25 -0
- package/build/_modules/vqa/index.js.map +1 -0
- package/build/_modules/vqa/manifest-validator.spec.d.ts +2 -0
- package/build/_modules/vqa/manifest-validator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/manifest-validator.spec.js +125 -0
- package/build/_modules/vqa/manifest-validator.spec.js.map +1 -0
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/review-bundle.generator.spec.js +166 -0
- package/build/_modules/vqa/review-bundle.generator.spec.js.map +1 -0
- package/build/_modules/vqa/wave-7.spec.d.ts +2 -0
- package/build/_modules/vqa/wave-7.spec.d.ts.map +1 -0
- package/build/_modules/vqa/wave-7.spec.js +203 -0
- package/build/_modules/vqa/wave-7.spec.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/coverage/contracts/_collections/index.html +1 -1
- package/coverage/contracts/_collections/index.ts.html +1 -1
- package/coverage/contracts/_collections/utils/index.html +1 -1
- package/coverage/contracts/_collections/utils/test-id.util.ts.html +10 -10
- package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/index.html +1 -1
- package/coverage/contracts/_enums/index.ts.html +1 -1
- package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
- package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
- package/coverage/contracts/index.html +1 -1
- package/coverage/contracts/index.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-comparison.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
- package/coverage/cwv/_collections/index.html +1 -1
- package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
- package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
- package/coverage/cwv/cwv-suite.generator.ts.html +1 -1
- package/coverage/cwv/index.html +1 -1
- package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
- package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
- package/coverage/generators/_collections/field-emission.util.ts.html +86 -86
- package/coverage/generators/_collections/form-level-emission.util.ts.html +39 -33
- package/coverage/generators/_collections/index.html +17 -17
- package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
- package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
- package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
- package/coverage/generators/_collections/test-case-filter.util.ts.html +153 -51
- package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
- package/coverage/generators/form-suite.generator.ts.html +78 -78
- package/coverage/generators/index.html +1 -1
- package/coverage/generators/viewport-suite.generator.ts.html +1 -1
- package/coverage/index.html +61 -16
- package/coverage/lcov-report/contracts/_collections/index.html +1 -1
- package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
- package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
- package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +10 -10
- package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/index.html +1 -1
- package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/index.html +1 -1
- package/coverage/lcov-report/contracts/index.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/index.html +1 -1
- package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
- package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +1 -1
- package/coverage/lcov-report/cwv/index.html +1 -1
- package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +86 -86
- package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +39 -33
- package/coverage/lcov-report/generators/_collections/index.html +17 -17
- package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
- package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +153 -51
- package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
- package/coverage/lcov-report/generators/form-suite.generator.ts.html +78 -78
- package/coverage/lcov-report/generators/index.html +1 -1
- package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
- package/coverage/lcov-report/index.html +61 -16
- package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_collections/index.html +1 -1
- package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/index.html +1 -1
- package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
- package/coverage/lcov-report/runtime/index.html +1 -1
- package/coverage/lcov-report/runtime/index.ts.html +1 -1
- package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
- package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +214 -0
- package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
- package/coverage/lcov-report/vqa/_collections/utils/index.html +176 -0
- package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
- package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +424 -0
- package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
- package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +133 -0
- package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +151 -0
- package/coverage/lcov-report/vqa/_enums/index.html +161 -0
- package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +235 -0
- package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +643 -0
- package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +316 -0
- package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +835 -0
- package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +898 -0
- package/coverage/lcov-report/vqa/generators/index.html +176 -0
- package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +559 -0
- package/coverage/lcov.info +2680 -466
- package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
- package/coverage/runtime/_collections/index.html +1 -1
- package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
- package/coverage/runtime/_collections/wait-helpers.util.ts.html +1 -1
- package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
- package/coverage/runtime/_services/field-page-object.ts.html +1 -1
- package/coverage/runtime/_services/form-page-object.ts.html +1 -1
- package/coverage/runtime/_services/index.html +1 -1
- package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
- package/coverage/runtime/_services/logger.service.ts.html +1 -1
- package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
- package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
- package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
- package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
- package/coverage/runtime/index.html +1 -1
- package/coverage/runtime/index.ts.html +1 -1
- package/coverage/tmp/coverage-23996-1781139437397-0.json +1 -0
- package/coverage/tmp/{coverage-11671-1781126947590-0.json → coverage-24001-1781139435697-0.json} +1 -1
- package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
- package/coverage/vqa/_collections/utils/finding-id.util.ts.html +214 -0
- package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
- package/coverage/vqa/_collections/utils/index.html +176 -0
- package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
- package/coverage/vqa/_collections/utils/risk-score.util.ts.html +424 -0
- package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
- package/coverage/vqa/_enums/finding-severity.enum.ts.html +133 -0
- package/coverage/vqa/_enums/finding-status.enum.ts.html +151 -0
- package/coverage/vqa/_enums/index.html +161 -0
- package/coverage/vqa/_enums/visual-state-type.enum.ts.html +235 -0
- package/coverage/vqa/generators/ai-agent-readme.template.ts.html +643 -0
- package/coverage/vqa/generators/bundle-summary.template.ts.html +316 -0
- package/coverage/vqa/generators/capture-spec.generator.ts.html +835 -0
- package/coverage/vqa/generators/comparison-bundle.generator.ts.html +898 -0
- package/coverage/vqa/generators/index.html +176 -0
- package/coverage/vqa/generators/review-bundle.generator.ts.html +559 -0
- package/package.json +7 -1
- package/coverage/tmp/coverage-11666-1781126948871-0.json +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyE2E_VQA_VisualState_Type = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `dynamo-e2e` VQA layer — visual state-típusok a `DyE2E_VQA_Feature_Manifest`-hez.
|
|
6
|
+
*
|
|
7
|
+
* Egy enum-érték EGY auditálandó vizuális állapotot azonosít. Minden manifest
|
|
8
|
+
* `states` mező egy ilyen kategoriából való. Az AI agent ezeket használja a
|
|
9
|
+
* QA-rubric szerinti vizsgálathoz (lásd `specifications/ai-visual-qa-system.md` §5).
|
|
10
|
+
*
|
|
11
|
+
* **Bedrock scope-LOCK (UI-20260611-003)**: a state-típusok csak label-szerepet
|
|
12
|
+
* játszanak — NEM kódolnak vizuális verdict-et. A capture-pipeline minden
|
|
13
|
+
* state-re screenshot+DOM-snapshot-ot készít; az AI agent dönt.
|
|
14
|
+
*/
|
|
15
|
+
var DyE2E_VQA_VisualState_Type;
|
|
16
|
+
(function (DyE2E_VQA_VisualState_Type) {
|
|
17
|
+
// ─── Alap állapotok ─────────────────────────────────────────────
|
|
18
|
+
DyE2E_VQA_VisualState_Type["default"] = "default";
|
|
19
|
+
DyE2E_VQA_VisualState_Type["loading"] = "loading";
|
|
20
|
+
DyE2E_VQA_VisualState_Type["empty"] = "empty";
|
|
21
|
+
// ─── Form input-állapotok ──────────────────────────────────────
|
|
22
|
+
DyE2E_VQA_VisualState_Type["validInput"] = "valid-input";
|
|
23
|
+
DyE2E_VQA_VisualState_Type["invalidInput"] = "invalid-input";
|
|
24
|
+
DyE2E_VQA_VisualState_Type["fieldError"] = "field-error";
|
|
25
|
+
DyE2E_VQA_VisualState_Type["globalError"] = "global-error";
|
|
26
|
+
DyE2E_VQA_VisualState_Type["backendError"] = "backend-error";
|
|
27
|
+
// ─── Jogosultság / authz ───────────────────────────────────────
|
|
28
|
+
DyE2E_VQA_VisualState_Type["permissionDenied"] = "permission-denied";
|
|
29
|
+
// ─── Végállapotok ──────────────────────────────────────────────
|
|
30
|
+
DyE2E_VQA_VisualState_Type["success"] = "success";
|
|
31
|
+
DyE2E_VQA_VisualState_Type["partialSuccess"] = "partial-success";
|
|
32
|
+
DyE2E_VQA_VisualState_Type["timeout"] = "timeout";
|
|
33
|
+
DyE2E_VQA_VisualState_Type["retry"] = "retry";
|
|
34
|
+
// ─── Tartalmi / viewport / téma szélsőségek ────────────────────
|
|
35
|
+
DyE2E_VQA_VisualState_Type["longContent"] = "long-content";
|
|
36
|
+
DyE2E_VQA_VisualState_Type["smallScreen"] = "small-screen";
|
|
37
|
+
DyE2E_VQA_VisualState_Type["largeFont"] = "large-font";
|
|
38
|
+
DyE2E_VQA_VisualState_Type["darkMode"] = "dark-mode";
|
|
39
|
+
// ─── Modal / overlay-állapotok ─────────────────────────────────
|
|
40
|
+
DyE2E_VQA_VisualState_Type["modalOpen"] = "modal-open";
|
|
41
|
+
DyE2E_VQA_VisualState_Type["modalOverflow"] = "modal-overflow";
|
|
42
|
+
// ─── Wizard / multi-step flow ──────────────────────────────────
|
|
43
|
+
DyE2E_VQA_VisualState_Type["wizardStep"] = "wizard-step";
|
|
44
|
+
DyE2E_VQA_VisualState_Type["wizardPartiallyFilled"] = "wizard-partially-filled";
|
|
45
|
+
DyE2E_VQA_VisualState_Type["wizardFinalSuccess"] = "wizard-final-success";
|
|
46
|
+
DyE2E_VQA_VisualState_Type["wizardFinalFailure"] = "wizard-final-failure";
|
|
47
|
+
DyE2E_VQA_VisualState_Type["wizardCancelled"] = "wizard-cancelled";
|
|
48
|
+
})(DyE2E_VQA_VisualState_Type || (exports.DyE2E_VQA_VisualState_Type = DyE2E_VQA_VisualState_Type = {}));
|
|
49
|
+
//# sourceMappingURL=visual-state-type.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-state-type.enum.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/_enums/visual-state-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,IAAY,0BAsCX;AAtCD,WAAY,0BAA0B;IACpC,mEAAmE;IACnE,iDAAmB,CAAA;IACnB,iDAAmB,CAAA;IACnB,6CAAe,CAAA;IAEf,kEAAkE;IAClE,wDAA0B,CAAA;IAC1B,4DAA8B,CAAA;IAC9B,wDAA0B,CAAA;IAC1B,0DAA4B,CAAA;IAC5B,4DAA8B,CAAA;IAE9B,kEAAkE;IAClE,oEAAsC,CAAA;IAEtC,kEAAkE;IAClE,iDAAmB,CAAA;IACnB,gEAAkC,CAAA;IAClC,iDAAmB,CAAA;IACnB,6CAAe,CAAA;IAEf,kEAAkE;IAClE,0DAA4B,CAAA;IAC5B,0DAA4B,CAAA;IAC5B,sDAAwB,CAAA;IACxB,oDAAsB,CAAA;IAEtB,kEAAkE;IAClE,sDAAwB,CAAA;IACxB,8DAAgC,CAAA;IAEhC,kEAAkE;IAClE,wDAA0B,CAAA;IAC1B,+EAAiD,CAAA;IACjD,yEAA2C,CAAA;IAC3C,yEAA2C,CAAA;IAC3C,kEAAoC,CAAA;AACtC,CAAC,EAtCW,0BAA0B,0CAA1B,0BAA0B,QAsCrC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Egy "kritikus elem" leírása a manifest-ben. A capture-pipeline ezekre futtatja
|
|
3
|
+
* a region-crop-ot (MP-D), és az AI-agent-promptba label-lel kerülnek.
|
|
4
|
+
*
|
|
5
|
+
* **regionType szerepe (MP-D):**
|
|
6
|
+
* - `modal` / `primary-cta` / `form` / `error` / `nav` / `header` / `footer` →
|
|
7
|
+
* standard crop-target a `DyE2E_VQA_RegionCrop_Util.cropRegion()`-hez
|
|
8
|
+
* - `custom` → tetszőleges, csak label-szerű
|
|
9
|
+
*/
|
|
10
|
+
export interface DyE2E_VQA_CriticalElement_Interface {
|
|
11
|
+
/** Stable kulcs (pl. `submit-cta`). */
|
|
12
|
+
key: string;
|
|
13
|
+
/** CSS selector vagy data-testid. */
|
|
14
|
+
selector: string;
|
|
15
|
+
/** Region-típus a crop-engine-nek. */
|
|
16
|
+
regionType: 'modal' | 'primary-cta' | 'form' | 'error' | 'nav' | 'header' | 'footer' | 'custom';
|
|
17
|
+
/** Ember-olvasható cimke (AI-prompt + summary). */
|
|
18
|
+
label?: string;
|
|
19
|
+
/** Extra padding (px) a crop körül. Default: 16. */
|
|
20
|
+
cropPadding?: number;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=critical-element.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"critical-element.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/critical-element.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,mCAAmC;IAClD,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAClD,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"critical-element.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/critical-element.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DyE2E_VQA_DOMEvidence_Detector } from '../../_enums/dom-evidence-detector.enum';
|
|
2
|
+
/**
|
|
3
|
+
* Egy DOM-detektor kimenete (MP-C). Strukturált JSON evidence az AI-agent-prompthoz.
|
|
4
|
+
*
|
|
5
|
+
* **SCOPE-LOCK**: `severityHint` AJÁNLÁS — az AI agent dönt.
|
|
6
|
+
*/
|
|
7
|
+
export interface DyE2E_VQA_DOMEvidence_Interface {
|
|
8
|
+
/** Detektor-azonosító (enum). */
|
|
9
|
+
detector: DyE2E_VQA_DOMEvidence_Detector;
|
|
10
|
+
/** Igen / nem: a detektor talált-e valamit. */
|
|
11
|
+
detected: boolean;
|
|
12
|
+
/** Strukturált payload (detektor-specifikus). */
|
|
13
|
+
details: Record<string, unknown>;
|
|
14
|
+
/** Súlyossági ajánlás az AI-nek (nem verdict!). */
|
|
15
|
+
severityHint?: 'blocker' | 'high' | 'medium' | 'low' | 'informational';
|
|
16
|
+
/** Suggested region-ek a region-crop-hoz (CSS selectors). */
|
|
17
|
+
suggestedRegions?: string[];
|
|
18
|
+
/** Opcionális ember-olvasható magyarázat. */
|
|
19
|
+
note?: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dom-evidence.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-evidence.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/dom-evidence.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,iCAAiC;IACjC,QAAQ,EAAE,8BAA8B,CAAC;IACzC,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mDAAmD;IACnD,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,CAAC;IACvE,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-evidence.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/dom-evidence.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A manifest `expectedFeedback`-je AI-hint: ennél az állapotnál ilyen visszajelzés
|
|
3
|
+
* várható. Az AI agent ezeket kontextusként használja a review-rubric szerint
|
|
4
|
+
* (spec §11).
|
|
5
|
+
*/
|
|
6
|
+
export interface DyE2E_VQA_ExpectedFeedback_Interface {
|
|
7
|
+
/** Melyik állapotban várjuk (state-id). */
|
|
8
|
+
stateId: string;
|
|
9
|
+
/** Visszajelzés-típus (spec §11 13 típus). */
|
|
10
|
+
feedbackType: 'loading' | 'fieldValidation' | 'formValidation' | 'backendError' | 'networkError' | 'permissionError' | 'emptyState' | 'successState' | 'warning' | 'confirmation' | 'retryOption' | 'destructiveConfirm' | 'partialSuccess';
|
|
11
|
+
/** Mit jelentene a "működik" (AI-prompt context). */
|
|
12
|
+
expectation: string;
|
|
13
|
+
/** Opcionális target-selector (hol kell látnia). */
|
|
14
|
+
selector?: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=expected-feedback.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expected-feedback.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/expected-feedback.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,oCAAoC;IACnD,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,EACR,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,GACjE,cAAc,GAAG,iBAAiB,GAAG,YAAY,GAAG,cAAc,GAClE,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,oBAAoB,GACjE,gBAAgB,CAAC;IACrB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expected-feedback.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/expected-feedback.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DyE2E_Viewport_Interface } from '../../../contracts/_models/interfaces/viewport.interface';
|
|
2
|
+
import { DyE2E_VQA_FlowStep_Interface } from './flow-step.interface';
|
|
3
|
+
import { DyE2E_VQA_VisualState_Interface } from './visual-state.interface';
|
|
4
|
+
import { DyE2E_VQA_CriticalElement_Interface } from './critical-element.interface';
|
|
5
|
+
import { DyE2E_VQA_ExpectedFeedback_Interface } from './expected-feedback.interface';
|
|
6
|
+
/**
|
|
7
|
+
* `DyE2E_VQA_Feature_Manifest` — egy auditálandó feature **teljes leírása**
|
|
8
|
+
* (spec §5). A capture-pipeline (MP-B) ezt veszi inputként és emit-eli a
|
|
9
|
+
* Playwright spec-et; a review-bundle generator (MP-E) a manifest-másolatot
|
|
10
|
+
* is bundle-be teszi az AI agent számára.
|
|
11
|
+
*
|
|
12
|
+
* **SCOPE-LOCK (UI-20260611-003)**: a manifest a CAPTURE-input — verdict-mezőt
|
|
13
|
+
* nem tartalmaz; az AI agent EXTERNAL consumer.
|
|
14
|
+
*
|
|
15
|
+
* Authoring: az AI agent (Claude Code külön session) vagy ember kézzel írja.
|
|
16
|
+
* Validátor: `DyE2E_VQA_ManifestValidator_Util.validate()`.
|
|
17
|
+
*/
|
|
18
|
+
export interface DyE2E_VQA_FeatureManifest_Interface {
|
|
19
|
+
/** Filename-friendly feature-azonosító (pl. `tasks-modul`, `checkout-flow`). */
|
|
20
|
+
featureId: string;
|
|
21
|
+
/** Ember-olvasható név (summary + report-ba). */
|
|
22
|
+
featureName: string;
|
|
23
|
+
/** Entry-point URL-path (pl. `/tasks`). */
|
|
24
|
+
route: string;
|
|
25
|
+
/** Cél user-szerepkör (auth-setup-hoz). */
|
|
26
|
+
userRole?: string;
|
|
27
|
+
/** Tesztadat-setup (mock-routes, seed-data, env-override-ok). */
|
|
28
|
+
testDataSetup?: {
|
|
29
|
+
mockRoutes?: {
|
|
30
|
+
pattern: string;
|
|
31
|
+
response: unknown;
|
|
32
|
+
status?: number;
|
|
33
|
+
}[];
|
|
34
|
+
seedData?: Record<string, unknown>;
|
|
35
|
+
envOverride?: Record<string, string>;
|
|
36
|
+
};
|
|
37
|
+
/** Manifest-szintű flow-lépések, amik MINDEN state előtt futnak (közös előfeltétel). */
|
|
38
|
+
flowSteps?: DyE2E_VQA_FlowStep_Interface[];
|
|
39
|
+
/** A vizsgálandó vizuális állapotok. */
|
|
40
|
+
states: DyE2E_VQA_VisualState_Interface[];
|
|
41
|
+
/** Viewport-mátrix subset, ami ezen a feature-en auditálandó. */
|
|
42
|
+
viewports: DyE2E_Viewport_Interface[];
|
|
43
|
+
/** Opcionális orientáció-mátrix. Default: csak `portrait`. */
|
|
44
|
+
orientations?: ('portrait' | 'landscape')[];
|
|
45
|
+
/** Critical-element-katalógus (region-crop input + AI-prompt label). */
|
|
46
|
+
criticalElements: DyE2E_VQA_CriticalElement_Interface[];
|
|
47
|
+
/** Opcionális AI-hint-ek a várt visszajelzéshez (spec §11). */
|
|
48
|
+
expectedFeedback?: DyE2E_VQA_ExpectedFeedback_Interface[];
|
|
49
|
+
/** Opcionális per-feature description (AI-prompt context). */
|
|
50
|
+
description?: string;
|
|
51
|
+
/** Manifest-szintű extra context (pl. domain-glossary, business-rule-ok). */
|
|
52
|
+
contextNotes?: string[];
|
|
53
|
+
/** Manifest-verzió (semver-szerű string). */
|
|
54
|
+
version?: string;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=feature-manifest.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-manifest.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/feature-manifest.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mCAAmC;IAClD,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACvE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;IAEF,wFAAwF;IACxF,SAAS,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAE3C,wCAAwC;IACxC,MAAM,EAAE,+BAA+B,EAAE,CAAC;IAE1C,iEAAiE;IACjE,SAAS,EAAE,wBAAwB,EAAE,CAAC;IAEtC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC;IAE5C,wEAAwE;IACxE,gBAAgB,EAAE,mCAAmC,EAAE,CAAC;IAExD,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,oCAAoC,EAAE,CAAC;IAE1D,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-manifest.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/feature-manifest.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DyE2E_VQA_FindingSeverity_Type } from '../../_enums/finding-severity.enum';
|
|
2
|
+
import { DyE2E_VQA_FindingStatus_Type } from '../../_enums/finding-status.enum';
|
|
3
|
+
/**
|
|
4
|
+
* Egy AI-által írt finding (spec §12). **Az AI agent az író**; a bedrock-tooling
|
|
5
|
+
* csak SCHEMA-t + validátor-t ad. A `DyE2E_VQA_FindingValidator_Util` ellenőrzi
|
|
6
|
+
* a konzisztenciát.
|
|
7
|
+
*
|
|
8
|
+
* **SCOPE-LOCK**: nem mi generáljuk, az AI agent ír — mi csak gondoskodunk hogy
|
|
9
|
+
* konzisztens legyen.
|
|
10
|
+
*/
|
|
11
|
+
export interface DyE2E_VQA_Finding_Interface {
|
|
12
|
+
/** Stable finding-azonosító. Konvenció: `VQA-<projekt>-<feature>-NNN`. */
|
|
13
|
+
findingId: string;
|
|
14
|
+
/** Mihez tartozik (manifest.featureId). */
|
|
15
|
+
featureId: string;
|
|
16
|
+
/** Melyik állapotban detected. */
|
|
17
|
+
stateId: string;
|
|
18
|
+
/** Viewport-kulcs (manifest.viewports[].key). */
|
|
19
|
+
viewport: string;
|
|
20
|
+
/** Opcionális orientation. */
|
|
21
|
+
orientation?: 'portrait' | 'landscape';
|
|
22
|
+
/** Bundle-relative path a full-page / fold screenshot-hoz. */
|
|
23
|
+
screenshotRef: string;
|
|
24
|
+
/** Bundle-relative path a DOM-snapshot JSON-höz. */
|
|
25
|
+
domSnapshotRef?: string;
|
|
26
|
+
/** Bundle-relative path-ek extra evidence-hez (crops, composites). */
|
|
27
|
+
additionalEvidenceRefs?: string[];
|
|
28
|
+
/** AI-által megfigyelt probléma (összefoglaló). */
|
|
29
|
+
description: string;
|
|
30
|
+
/** Mit várnánk helyette (AI-által). */
|
|
31
|
+
expectedBehavior: string;
|
|
32
|
+
severity: DyE2E_VQA_FindingSeverity_Type;
|
|
33
|
+
status: DyE2E_VQA_FindingStatus_Type;
|
|
34
|
+
/** Reprodukciós lépések (manifest flow + ezek). */
|
|
35
|
+
reproSteps: string[];
|
|
36
|
+
/** AI-által javasolt fix (opcionális). */
|
|
37
|
+
suggestedFix?: string;
|
|
38
|
+
/** AI-confidence 0..1. */
|
|
39
|
+
aiConfidence: number;
|
|
40
|
+
/** Hivatkozott detektor-evidence-ek (`evidence/<state>/<viewport>.json` belül). */
|
|
41
|
+
detectorEvidenceRefs?: string[];
|
|
42
|
+
/** Audit-run-azonosító, amiben detected. */
|
|
43
|
+
createdInRunId: string;
|
|
44
|
+
/** Utolsó update-run-id (re-audit nyom). */
|
|
45
|
+
lastUpdatedInRunId?: string;
|
|
46
|
+
/** ISO timestamp string (író AI agent által set). */
|
|
47
|
+
createdAt?: string;
|
|
48
|
+
lastUpdatedAt?: string;
|
|
49
|
+
/** Opcionális prioritás-hint (engineering döntés). */
|
|
50
|
+
priority?: 'p0' | 'p1' | 'p2' | 'p3';
|
|
51
|
+
/** Opcionális tags. */
|
|
52
|
+
tags?: string[];
|
|
53
|
+
/** Acceptance-criteria a fix-hez (markdown lista). */
|
|
54
|
+
acceptanceCriteria?: string[];
|
|
55
|
+
/** Re-audit instrukció (mit nézzen az AI agent a comparison-bundle-ben). */
|
|
56
|
+
reAuditInstruction?: string;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=finding.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finding.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/finding.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAEvC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAElC,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,8BAA8B,CAAC;IACzC,MAAM,EAAE,4BAA4B,CAAC;IAErC,mDAAmD;IACnD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IAErB,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAErC,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finding.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/finding.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Egy lépés a feature-flow-ban, ami a manifest `flowSteps`-ben sorrendben fut.
|
|
3
|
+
* A capture-pipeline emit-eli ezeket Playwright-call-okká.
|
|
4
|
+
*
|
|
5
|
+
* **action típusok:**
|
|
6
|
+
* - `navigate`: `page.goto(target)` (target = URL-path)
|
|
7
|
+
* - `click`: `page.locator(target).click()` (target = selector)
|
|
8
|
+
* - `fill`: `page.locator(target).fill(value)` (target = selector)
|
|
9
|
+
* - `select`: `page.locator(target).selectOption(value)`
|
|
10
|
+
* - `press`: `page.keyboard.press(value)` (target ignored)
|
|
11
|
+
* - `hover`: `page.locator(target).hover()`
|
|
12
|
+
* - `waitForSelector`: `page.waitForSelector(target, { timeout })`
|
|
13
|
+
* - `waitForTimeout`: `page.waitForTimeout(value as number)`
|
|
14
|
+
* - `setViewport`: `page.setViewportSize({ width: ..., height: ... })` (target = "WxH")
|
|
15
|
+
* - `evaluate`: `page.evaluate(value)` (value = JS expression string)
|
|
16
|
+
* - `mockResponse`: `page.route(target, route => route.fulfill({...JSON.parse(value)}))`
|
|
17
|
+
*/
|
|
18
|
+
export interface DyE2E_VQA_FlowStep_Interface {
|
|
19
|
+
/** Sorrendben futó lépés-azonosító (filename-friendly). */
|
|
20
|
+
stepId: string;
|
|
21
|
+
/** Akció-típus. */
|
|
22
|
+
action: 'navigate' | 'click' | 'fill' | 'select' | 'press' | 'hover' | 'waitForSelector' | 'waitForTimeout' | 'setViewport' | 'evaluate' | 'mockResponse';
|
|
23
|
+
/** Akció célja (URL-path / selector / "WxH" / route-pattern). */
|
|
24
|
+
target?: string;
|
|
25
|
+
/** Akció értéke (input-szöveg / option-érték / ms / JS / JSON). */
|
|
26
|
+
value?: string;
|
|
27
|
+
/** Opcionális timeout ms-ben (waitForSelector / waitForTimeout). */
|
|
28
|
+
timeout?: number;
|
|
29
|
+
/** Ember-olvasható leírás (logba kerül). */
|
|
30
|
+
description?: string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=flow-step.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-step.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/flow-step.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,4BAA4B;IAC3C,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAC5D,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,GACpD,UAAU,GAAG,cAAc,CAAC;IACpC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-step.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/flow-step.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './flow-step.interface';
|
|
2
|
+
export * from './visual-state.interface';
|
|
3
|
+
export * from './critical-element.interface';
|
|
4
|
+
export * from './expected-feedback.interface';
|
|
5
|
+
export * from './feature-manifest.interface';
|
|
6
|
+
export * from './dom-evidence.interface';
|
|
7
|
+
export * from './finding.interface';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./flow-step.interface"), exports);
|
|
18
|
+
__exportStar(require("./visual-state.interface"), exports);
|
|
19
|
+
__exportStar(require("./critical-element.interface"), exports);
|
|
20
|
+
__exportStar(require("./expected-feedback.interface"), exports);
|
|
21
|
+
__exportStar(require("./feature-manifest.interface"), exports);
|
|
22
|
+
__exportStar(require("./dom-evidence.interface"), exports);
|
|
23
|
+
__exportStar(require("./finding.interface"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,gEAA8C;AAC9C,+DAA6C;AAC7C,2DAAyC;AACzC,sDAAoC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DyE2E_VQA_VisualState_Type } from '../../_enums/visual-state-type.enum';
|
|
2
|
+
import { DyE2E_VQA_FlowStep_Interface } from './flow-step.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Egy auditálandó vizuális állapot a manifest-ben. A capture-pipeline minden
|
|
5
|
+
* `viewport × orientation` kombinációban végrehajtja a `prepareFlow`-t (a
|
|
6
|
+
* manifest `flowSteps`-en TÚL, állapot-specifikus extra lépések), majd
|
|
7
|
+
* screenshot+DOM-snapshot.
|
|
8
|
+
*
|
|
9
|
+
* **scope-LOCK**: NEM tartalmaz verdict-mezőt; az AI agent dönt a bundle-ből.
|
|
10
|
+
*/
|
|
11
|
+
export interface DyE2E_VQA_VisualState_Interface {
|
|
12
|
+
/** Stable, filename-friendly kulcs (pl. `wizard-step-2-invalid`). */
|
|
13
|
+
stateId: string;
|
|
14
|
+
/** State-kategória (enum). */
|
|
15
|
+
type: DyE2E_VQA_VisualState_Type;
|
|
16
|
+
/** Ember-olvasható cimke a summary-ba / AI-prompt-ba. */
|
|
17
|
+
label?: string;
|
|
18
|
+
/** Opcionális extra flow-lépések, amik a manifest `flowSteps` UTÁN futnak
|
|
19
|
+
* ennek az állapotnak a felépítéséhez. */
|
|
20
|
+
prepareFlow?: DyE2E_VQA_FlowStep_Interface[];
|
|
21
|
+
/** Az AI-agent-prompt-ba kerülő kontextus (mit várhatunk ettől az állapottól). */
|
|
22
|
+
context?: string;
|
|
23
|
+
/** Korábbi finding-ID-k, amik ehhez az állapothoz tartoznak (re-audit-mark). */
|
|
24
|
+
priorFindingRefs?: string[];
|
|
25
|
+
/** Opcionális per-state critical-element override (ha eltér a feature-szinttől). */
|
|
26
|
+
criticalElementSelectors?: string[];
|
|
27
|
+
/** Playwright `screenshot({ mask: [...] })` selectorok dinamikus régiókra (timestamp,
|
|
28
|
+
* avatar, számláló stb.) — az AI-review-nál azt a régiót kitakarja. */
|
|
29
|
+
maskSelectors?: string[];
|
|
30
|
+
/** Konvencionális ready-signal: a state kész, ha `data-testid="<readyTestId>"` elem van.
|
|
31
|
+
* Auto-injektálódik a flow-végére. */
|
|
32
|
+
readyTestId?: string;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=visual-state.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-state.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/visual-state.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC9C,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,0BAA0B,CAAC;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;+CAC2C;IAC3C,WAAW,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAC7C,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC;4EACwE;IACxE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;2CACuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-state.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/visual-state.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-spec.generator.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/vqa/capture-spec.generator.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const capture_spec_generator_1 = require("./generators/capture-spec.generator");
|
|
4
|
+
const visual_state_type_enum_1 = require("./_enums/visual-state-type.enum");
|
|
5
|
+
const vqa_standard_viewports_const_1 = require("./_collections/constants/vqa-standard-viewports.const");
|
|
6
|
+
const dom_evidence_page_scripts_const_1 = require("./_collections/constants/dom-evidence-page-scripts.const");
|
|
7
|
+
const dom_evidence_detector_enum_1 = require("./_enums/dom-evidence-detector.enum");
|
|
8
|
+
describe('DyE2E_VQA_CaptureSpec_Generator', () => {
|
|
9
|
+
const minimalManifest = {
|
|
10
|
+
featureId: 'demo',
|
|
11
|
+
featureName: 'Demo',
|
|
12
|
+
route: '/demo',
|
|
13
|
+
states: [
|
|
14
|
+
{ stateId: 'default', type: visual_state_type_enum_1.DyE2E_VQA_VisualState_Type.default },
|
|
15
|
+
],
|
|
16
|
+
viewports: [
|
|
17
|
+
vqa_standard_viewports_const_1.DyE2E_VQA_StandardViewports_Const.mobileMedium,
|
|
18
|
+
vqa_standard_viewports_const_1.DyE2E_VQA_StandardViewports_Const.desktop,
|
|
19
|
+
],
|
|
20
|
+
criticalElements: [
|
|
21
|
+
{ key: 'submit', selector: 'button[type=submit]', regionType: 'primary-cta' },
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
it('| emits a Playwright spec with imports + test blocks', () => {
|
|
25
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(minimalManifest);
|
|
26
|
+
expect(spec).toContain(`import { test, expect, type Page } from '@playwright/test';`);
|
|
27
|
+
expect(spec).toContain(`@futdevpro/dynamo-e2e/vqa`);
|
|
28
|
+
expect(spec).toContain(`test('default | mobile-m | portrait'`);
|
|
29
|
+
expect(spec).toContain(`test('default | desktop | portrait'`);
|
|
30
|
+
});
|
|
31
|
+
it('| emits per-state per-viewport per-orientation tests', () => {
|
|
32
|
+
const m = {
|
|
33
|
+
...minimalManifest,
|
|
34
|
+
orientations: ['portrait', 'landscape'],
|
|
35
|
+
states: [
|
|
36
|
+
{ stateId: 'a', type: visual_state_type_enum_1.DyE2E_VQA_VisualState_Type.default },
|
|
37
|
+
{ stateId: 'b', type: visual_state_type_enum_1.DyE2E_VQA_VisualState_Type.empty },
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(m);
|
|
41
|
+
// 2 states × 2 viewports × 2 orientations = 8
|
|
42
|
+
const count = (spec.match(/test\(/g) || []).length;
|
|
43
|
+
expect(count).toBe(8);
|
|
44
|
+
});
|
|
45
|
+
it('| emits flow-steps as Playwright calls', () => {
|
|
46
|
+
const m = {
|
|
47
|
+
...minimalManifest,
|
|
48
|
+
flowSteps: [
|
|
49
|
+
{ stepId: 's1', action: 'click', target: 'button.start' },
|
|
50
|
+
{ stepId: 's2', action: 'fill', target: 'input[name=email]', value: 'a@b.c' },
|
|
51
|
+
{ stepId: 's3', action: 'press', value: 'Enter' },
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(m);
|
|
55
|
+
expect(spec).toContain(`page.locator("button.start").click()`);
|
|
56
|
+
expect(spec).toContain(`page.locator("input[name=email]").fill("a@b.c")`);
|
|
57
|
+
expect(spec).toContain(`page.keyboard.press("Enter")`);
|
|
58
|
+
});
|
|
59
|
+
it('| emits state-level prepareFlow AFTER feature flowSteps', () => {
|
|
60
|
+
const m = {
|
|
61
|
+
...minimalManifest,
|
|
62
|
+
flowSteps: [{ stepId: 'login', action: 'click', target: '.login' }],
|
|
63
|
+
states: [{
|
|
64
|
+
stateId: 'wizard-step-2',
|
|
65
|
+
type: visual_state_type_enum_1.DyE2E_VQA_VisualState_Type.wizardStep,
|
|
66
|
+
prepareFlow: [{ stepId: 'next', action: 'click', target: '.next' }],
|
|
67
|
+
}],
|
|
68
|
+
};
|
|
69
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(m);
|
|
70
|
+
const loginIdx = spec.indexOf('.login');
|
|
71
|
+
const nextIdx = spec.indexOf('.next');
|
|
72
|
+
expect(loginIdx).toBeGreaterThan(-1);
|
|
73
|
+
expect(nextIdx).toBeGreaterThan(loginIdx);
|
|
74
|
+
});
|
|
75
|
+
it('| includes per-state captureDomSnapshot + runDetectors calls', () => {
|
|
76
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(minimalManifest);
|
|
77
|
+
expect(spec).toContain('captureDomSnapshot(page,');
|
|
78
|
+
expect(spec).toContain('runDetectors(page,');
|
|
79
|
+
expect(spec).toContain(`page.screenshot({`);
|
|
80
|
+
expect(spec).toContain(`'full.png'`);
|
|
81
|
+
expect(spec).toContain(`fullPage: true`);
|
|
82
|
+
});
|
|
83
|
+
it('| writes evidence.json + dom-snapshot.json to stateOut', () => {
|
|
84
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(minimalManifest);
|
|
85
|
+
expect(spec).toContain(`'evidence.json'`);
|
|
86
|
+
expect(spec).toContain(`'dom-snapshot.json'`);
|
|
87
|
+
});
|
|
88
|
+
it('| accepts setViewport flow-step', () => {
|
|
89
|
+
const m = {
|
|
90
|
+
...minimalManifest,
|
|
91
|
+
flowSteps: [{ stepId: 'resize', action: 'setViewport', target: '320x568' }],
|
|
92
|
+
};
|
|
93
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(m);
|
|
94
|
+
expect(spec).toContain(`page.setViewportSize({ width: 320, height: 568 })`);
|
|
95
|
+
});
|
|
96
|
+
it('| custom header-comment override', () => {
|
|
97
|
+
const spec = capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(minimalManifest, { headerComment: '// my-header' });
|
|
98
|
+
expect(spec.startsWith('// my-header')).toBeTrue();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('DyE2E_VQA_DomEvidencePageScripts_Const', () => {
|
|
102
|
+
it('| has script for all 16 detectors', () => {
|
|
103
|
+
const detectors = Object.values(dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector);
|
|
104
|
+
expect(detectors.length).toBe(16);
|
|
105
|
+
detectors.forEach((d) => {
|
|
106
|
+
expect(dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const[d]).toBeDefined();
|
|
107
|
+
expect(typeof dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const[d]).toBe('string');
|
|
108
|
+
expect(dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const[d].length).toBeGreaterThan(50);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
it('| scripts return objects with detector + detected + details', () => {
|
|
112
|
+
// Sanity: each script is `(() => { ... })()` or `(arg => {...})(arg)` and
|
|
113
|
+
// contains `detector:` + `detected:`.
|
|
114
|
+
Object.values(dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const).forEach((s) => {
|
|
115
|
+
expect(s).toContain('detector:');
|
|
116
|
+
expect(s).toContain('detected');
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
it('| CTA-aware scripts have __CRITICAL_CTA_SELECTORS__ placeholder', () => {
|
|
120
|
+
const offCta = dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const[dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.viewportOffCTA];
|
|
121
|
+
expect(offCta).toContain('__CRITICAL_CTA_SELECTORS__');
|
|
122
|
+
const vss = dom_evidence_page_scripts_const_1.DyE2E_VQA_DomEvidencePageScripts_Const[dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.verticalSpaceShortage];
|
|
123
|
+
expect(vss).toContain('__CRITICAL_CTA_SELECTORS__');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=capture-spec.generator.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-spec.generator.spec.js","sourceRoot":"","sources":["../../../src/_modules/vqa/capture-spec.generator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-bundle.generator.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/vqa/comparison-bundle.generator.spec.ts"],"names":[],"mappings":""}
|