@futdevpro/dynamo-e2e 1.18.10 → 1.18.12
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/CHANGELOG.md +20 -3
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts +8 -0
- package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts +13 -0
- package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.js +45 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.js.map +1 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.js +17 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.js.map +1 -1
- package/build/_modules/game/_models/game-contracts.interface.d.ts +82 -0
- package/build/_modules/game/_models/game-contracts.interface.d.ts.map +1 -0
- package/build/_modules/game/_models/game-contracts.interface.js +3 -0
- package/build/_modules/game/_models/game-contracts.interface.js.map +1 -0
- package/build/_modules/game/game-seam.helper.d.ts +40 -0
- package/build/_modules/game/game-seam.helper.d.ts.map +1 -0
- package/build/_modules/game/game-seam.helper.js +254 -0
- package/build/_modules/game/game-seam.helper.js.map +1 -0
- package/build/_modules/game/index.d.ts +4 -0
- package/build/_modules/game/index.d.ts.map +1 -0
- package/build/_modules/game/index.js +20 -0
- package/build/_modules/game/index.js.map +1 -0
- package/build/_modules/game/journey-catalog.validator.d.ts +5 -0
- package/build/_modules/game/journey-catalog.validator.d.ts.map +1 -0
- package/build/_modules/game/journey-catalog.validator.js +244 -0
- package/build/_modules/game/journey-catalog.validator.js.map +1 -0
- package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/cli-runner.util.js +28 -0
- package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
- package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/field-emission.util.js +51 -7
- package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js +8 -0
- package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +21 -0
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.d.ts +5 -0
- package/build/_modules/generators/form-suite.generator.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.js +53 -5
- package/build/_modules/generators/form-suite.generator.js.map +1 -1
- package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
- package/build/_modules/presets/_collections/playwright-config.factory.js +6 -0
- package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
- package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +4 -0
- package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +2 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -1
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +29 -2
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -1
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +2 -1
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -1
- package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.js +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -1
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts +5 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/capture-spec.generator.js +26 -10
- package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.js +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.js +2 -2
- package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/package.json +37 -5
- package/.c8rc.json +0 -25
- package/.dynamo/pipeline.cicd.config.json +0 -167
- package/.dynamo/version-bump.config.json +0 -5
- package/.github/workflows/main.yml +0 -35
- package/BUILD.md +0 -36
- package/CONTRIBUTING.md +0 -90
- package/build/_modules/contracts/contracts.spec.d.ts +0 -2
- package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
- package/build/_modules/contracts/contracts.spec.js +0 -144
- package/build/_modules/contracts/contracts.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
- package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
- package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
- package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
- package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
- package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
- package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
- package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
- package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
- package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-script.spec.js +0 -35
- package/build/_modules/cwv/inp-script.spec.js.map +0 -1
- package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
- package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
- package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
- package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
- package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
- package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
- package/build/_modules/generators/bootstrap.spec.js +0 -46
- package/build/_modules/generators/bootstrap.spec.js.map +0 -1
- package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
- package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
- package/build/_modules/generators/cli-runner.spec.js +0 -93
- package/build/_modules/generators/cli-runner.spec.js.map +0 -1
- package/build/_modules/generators/config-validator.spec.d.ts +0 -2
- package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
- package/build/_modules/generators/config-validator.spec.js +0 -115
- package/build/_modules/generators/config-validator.spec.js.map +0 -1
- package/build/_modules/generators/doctor.spec.d.ts +0 -2
- package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
- package/build/_modules/generators/doctor.spec.js +0 -68
- package/build/_modules/generators/doctor.spec.js.map +0 -1
- package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
- package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
- package/build/_modules/generators/field-emission-edge.spec.js +0 -164
- package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
- package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
- package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/generators/form-suite.generator.spec.js +0 -188
- package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
- package/build/_modules/generators/info.spec.d.ts +0 -2
- package/build/_modules/generators/info.spec.d.ts.map +0 -1
- package/build/_modules/generators/info.spec.js +0 -42
- package/build/_modules/generators/info.spec.js.map +0 -1
- package/build/_modules/generators/json-schema.spec.d.ts +0 -2
- package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
- package/build/_modules/generators/json-schema.spec.js +0 -81
- package/build/_modules/generators/json-schema.spec.js.map +0 -1
- package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
- package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
- package/build/_modules/generators/preset-configs.spec.js +0 -53
- package/build/_modules/generators/preset-configs.spec.js.map +0 -1
- package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
- package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
- package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
- package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
- package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
- package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
- package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
- package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
- package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
- package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
- package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
- package/build/_modules/presets/presets.spec.d.ts +0 -2
- package/build/_modules/presets/presets.spec.d.ts.map +0 -1
- package/build/_modules/presets/presets.spec.js +0 -286
- package/build/_modules/presets/presets.spec.js.map +0 -1
- package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
- package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
- package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
- package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
- package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
- package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
- package/build/_modules/runtime/logger.service.spec.js +0 -61
- package/build/_modules/runtime/logger.service.spec.js.map +0 -1
- package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
- package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
- package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
- package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
- package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
- package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
- package/build/_modules/runtime/page-objects.spec.js +0 -241
- package/build/_modules/runtime/page-objects.spec.js.map +0 -1
- package/build/_modules/runtime/runtime.spec.d.ts +0 -2
- package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
- package/build/_modules/runtime/runtime.spec.js +0 -73
- package/build/_modules/runtime/runtime.spec.js.map +0 -1
- package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
- package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
- package/build/_modules/runtime/unique-generator.spec.js +0 -41
- package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
- package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
- package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
- package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
- package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
- package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
- package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
- package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
- package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/finding-validator.spec.js +0 -136
- package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
- package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
- package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/manifest-validator.spec.js +0 -125
- package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
- package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
- package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
- package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
- package/build/_modules/vqa/wave-7.spec.js +0 -203
- package/build/_modules/vqa/wave-7.spec.js.map +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/contracts/_collections/index.html +0 -116
- package/coverage/contracts/_collections/index.ts.html +0 -97
- package/coverage/contracts/_collections/utils/index.html +0 -116
- package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
- package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
- package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
- package/coverage/contracts/_enums/index.html +0 -191
- package/coverage/contracts/_enums/index.ts.html +0 -100
- package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
- package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
- package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
- package/coverage/contracts/index.html +0 -116
- package/coverage/contracts/index.ts.html +0 -121
- package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
- package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
- package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
- package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
- package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
- package/coverage/cwv/_collections/index.html +0 -206
- package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
- package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
- package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
- package/coverage/cwv/index.html +0 -116
- package/coverage/favicon.png +0 -0
- package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
- package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
- package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
- package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
- package/coverage/generators/_collections/index.html +0 -236
- package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
- package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
- package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
- package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
- package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
- package/coverage/generators/form-suite.generator.ts.html +0 -406
- package/coverage/generators/index.html +0 -131
- package/coverage/generators/viewport-suite.generator.ts.html +0 -307
- package/coverage/index.html +0 -266
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/contracts/_collections/index.html +0 -116
- package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
- package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
- package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
- package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
- package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
- package/coverage/lcov-report/contracts/_enums/index.html +0 -191
- package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
- package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
- package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
- package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
- package/coverage/lcov-report/contracts/index.html +0 -116
- package/coverage/lcov-report/contracts/index.ts.html +0 -121
- package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
- package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
- package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
- package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
- package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
- package/coverage/lcov-report/cwv/_collections/index.html +0 -206
- package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
- package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
- package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
- package/coverage/lcov-report/cwv/index.html +0 -116
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
- package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
- package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
- package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
- package/coverage/lcov-report/generators/_collections/index.html +0 -236
- package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
- package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
- package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
- package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
- package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
- package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
- package/coverage/lcov-report/generators/index.html +0 -131
- package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
- package/coverage/lcov-report/index.html +0 -266
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
- package/coverage/lcov-report/runtime/_collections/index.html +0 -146
- package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
- package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
- package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
- package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
- package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
- package/coverage/lcov-report/runtime/_services/index.html +0 -236
- package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
- package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
- package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
- package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
- package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
- package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
- package/coverage/lcov-report/runtime/index.html +0 -116
- package/coverage/lcov-report/runtime/index.ts.html +0 -178
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov.info +0 -4047
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
- package/coverage/runtime/_collections/index.html +0 -146
- package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
- package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
- package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
- package/coverage/runtime/_services/field-page-object.ts.html +0 -253
- package/coverage/runtime/_services/form-page-object.ts.html +0 -184
- package/coverage/runtime/_services/index.html +0 -236
- package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
- package/coverage/runtime/_services/logger.service.ts.html +0 -385
- package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
- package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
- package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
- package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
- package/coverage/runtime/index.html +0 -116
- package/coverage/runtime/index.ts.html +0 -178
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
- package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
- package/dogfood/PARITY-MATRIX.md +0 -67
- package/dogfood/generated/date-range-field-new.spec.ts +0 -54
- package/dogfood/generated/password-field-new.spec.ts +0 -97
- package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
- package/dogfood/generated/slider-field-new.spec.ts +0 -47
- package/dogfood/generated/text-field-new.spec.ts +0 -0
- package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
- package/dogfood/generated-full/date-field-new.spec.ts +0 -71
- package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
- package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
- package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
- package/dogfood/generated-full/number-field-new.spec.ts +0 -113
- package/dogfood/generated-full/password-field-new.spec.ts +0 -97
- package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
- package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
- package/dogfood/generated-full/select-field-new.spec.ts +0 -69
- package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
- package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
- package/dogfood/generated-full/text-field-new.spec.ts +0 -0
- package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
- package/dogfood/sandbox-bootstrap-full.js +0 -248
- package/dogfood/sandbox-bootstrap.js +0 -170
- package/examples/minimal-form/README.md +0 -55
- package/examples/minimal-form/form-config.json +0 -38
- package/examples/multi-form-app/README.md +0 -63
- package/examples/multi-form-app/cwv-config.json +0 -14
- package/examples/multi-form-app/settings/login-form.json +0 -11
- package/examples/multi-form-app/settings/profile-form.json +0 -25
- package/examples/multi-form-app/viewport-config.json +0 -12
- package/logs/cicd-job.json +0 -3
- package/logs/cicd-report.json +0 -3
- package/logs/cicd-status.json +0 -3
package/CONTRIBUTING.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Contributing — `@futdevpro/dynamo-e2e`
|
|
2
|
-
|
|
3
|
-
Köszönjük, hogy hozzájárulsz! Ez egy bedrock-package a Dynamo + FDP
|
|
4
|
-
ecosystem-hez. A módosítások N-szeresen fan-out-elnek a consumer-projekteken,
|
|
5
|
-
így minimális defensiveness elvárt.
|
|
6
|
-
|
|
7
|
-
## Setup
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
git clone git@github.com:futdevpro/dynamo-e2e.git
|
|
11
|
-
cd dynamo-e2e
|
|
12
|
-
pnpm run prep
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Develop
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pnpm run build-base # tsc → ./build
|
|
19
|
-
pnpm test # build + jasmine
|
|
20
|
-
pnpm run test:coverage # build + c8 jasmine — 75/65/75/75 küszöb
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Hozzájárulási checklist
|
|
24
|
-
|
|
25
|
-
A PR-előtt:
|
|
26
|
-
|
|
27
|
-
- [ ] `pnpm test` zöld lokálisan
|
|
28
|
-
- [ ] `pnpm run test:coverage` zöld (mindenhol >75% statements / functions / lines, >65% branches)
|
|
29
|
-
- [ ] Új feature → spec + getting-started + per-fieldtype-test-matrix update
|
|
30
|
-
- [ ] Deterministic emission — `STAMP_BUILT_AT` const, semmilyen `Date.now()` a generator-ban
|
|
31
|
-
- [ ] Pure JavaScript a page-script-ekben (NEM TS — a browser direkt futtatja)
|
|
32
|
-
- [ ] JSDoc minden új public export-on
|
|
33
|
-
- [ ] CHANGELOG.md új section a release-version-nel
|
|
34
|
-
|
|
35
|
-
## Branch-strategy
|
|
36
|
-
|
|
37
|
-
- `master` — kötelező-zöld; CICD-publish-eli
|
|
38
|
-
- `feat/*` — feature branches; PR-rel mergel
|
|
39
|
-
- `fix/*` — bug-fix branches
|
|
40
|
-
- `chore/*` — non-functional changes (docs, deps)
|
|
41
|
-
|
|
42
|
-
## Verziózás
|
|
43
|
-
|
|
44
|
-
- **Major (`MM.x.x`)**: API-break. **NINCS automatikus** — emberi
|
|
45
|
-
decision (lásd MP-07 SP-F példa)
|
|
46
|
-
- **Minor (`MM.mm.0`)**: új feature, additive
|
|
47
|
-
- **Patch (`MM.mm.p`)**: bug-fix, doc-only
|
|
48
|
-
|
|
49
|
-
A `dynamo-cli` `dc bump-version` husky-pre-commit auto-bumpolja a
|
|
50
|
-
patch-szegmenset. Major/minor-bumpot manuálisan kell beállítani a
|
|
51
|
-
`package.json`-ban a commit előtt — ÉS a CHANGELOG-ot is.
|
|
52
|
-
|
|
53
|
-
## A test-case-mátrix-bővítés (Wave-2+)
|
|
54
|
-
|
|
55
|
-
Új field-type-hozzáadás:
|
|
56
|
-
|
|
57
|
-
1. `src/_modules/contracts/_collections/test-case-sets/<type>-field-test-cases.const.ts`
|
|
58
|
-
2. Hozzáfűzd a `FIELD_TYPE_TEST_CASE_REGISTRY`-be
|
|
59
|
-
3. `src/_modules/generators/_collections/field-emission.util.ts` `emitInteraction` + `emitAssertion` dispatch-ágat add hozzá
|
|
60
|
-
4. (Opcionális) `src/_modules/runtime/_services/<type>-page-object.ts` page-object + fixture
|
|
61
|
-
5. Specifikációs `__documentations/per-fieldtype-test-matrix.md` táblát bővíts
|
|
62
|
-
6. Specifikáció `cwv|generators|runtime` modulon test minden új dispatch-ágra
|
|
63
|
-
|
|
64
|
-
## Code style
|
|
65
|
-
|
|
66
|
-
- TypeScript strict-laza (lásd `tsconfig.json`)
|
|
67
|
-
- Hunglish dokumentáció + Hungarian inline-comment (memory: project konvenció)
|
|
68
|
-
- Top-of-file imports (`import` only, NEM `require()`)
|
|
69
|
-
- Naming: `DyE2E_*` per Dynamo-konvenció (DataModel: `_DataModel`, Service: `_Service`, stb.)
|
|
70
|
-
- ESLint: `pnpm lint` (`@futdevpro/dynamo-eslint` config)
|
|
71
|
-
|
|
72
|
-
## CICD
|
|
73
|
-
|
|
74
|
-
- A push automatikusan triggereli az Overseer pipeline-t
|
|
75
|
-
- A `.dynamo/pipeline.cicd.config.json` 9 step-pel:
|
|
76
|
-
discord-start → pre-flight → install → build → test → **coverage** → npm-publish → pipeline-report → discord-result
|
|
77
|
-
- A `coverage` step a 75% küszöb alatti merge-et blokkolja
|
|
78
|
-
- A `npm-publish` step `skipIfPublished: true` — manual `npm publish` is OK
|
|
79
|
-
|
|
80
|
-
## Memory + plan-háló
|
|
81
|
-
|
|
82
|
-
A nagyobb feature-ek a `__documentations/plans/dynamo-e2e-foundation/`
|
|
83
|
-
HYPERPLAN.md + MP-N file-okba kerülnek először. Az implementáció után a
|
|
84
|
-
CHANGELOG.md-be kerül a release-summary.
|
|
85
|
-
|
|
86
|
-
## Kapcsolat
|
|
87
|
-
|
|
88
|
-
- Issues: github.com/futdevpro/dynamo-e2e/issues
|
|
89
|
-
- Maintainer: @itharen (Tahi-Toth Balazs)
|
|
90
|
-
- Discord: #bedrock-builds
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/contracts/contracts.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const index_1 = require("./index");
|
|
4
|
-
describe('| dynamo-e2e | contracts (Layer-A)', () => {
|
|
5
|
-
// ────────────────── Enums ──────────────────
|
|
6
|
-
describe('| Enums', () => {
|
|
7
|
-
it('| DyE2E_FieldTestCase_Type tartalmaz minden curated alapesetet', () => {
|
|
8
|
-
expect(index_1.DyE2E_FieldTestCase_Type.emptyInput).toBe('empty-input');
|
|
9
|
-
expect(index_1.DyE2E_FieldTestCase_Type.oversize).toBe('oversize');
|
|
10
|
-
expect(index_1.DyE2E_FieldTestCase_Type.startAfterEnd).toBe('start-after-end');
|
|
11
|
-
expect(index_1.DyE2E_FieldTestCase_Type.custom).toBe('custom');
|
|
12
|
-
});
|
|
13
|
-
it('| DyE2E_TestExpectation_Type 4 ertekkel', () => {
|
|
14
|
-
expect(Object.values(index_1.DyE2E_TestExpectation_Type).length).toBe(4);
|
|
15
|
-
});
|
|
16
|
-
it('| DyE2E_TestRunMode_Type 3 ertekkel', () => {
|
|
17
|
-
expect(Object.values(index_1.DyE2E_TestRunMode_Type).length).toBe(3);
|
|
18
|
-
});
|
|
19
|
-
it('| DyE2E_CWVMetric_Type tartalmazza a 4 fo metricet', () => {
|
|
20
|
-
expect(index_1.DyE2E_CWVMetric_Type.lcp).toBe('lcp');
|
|
21
|
-
expect(index_1.DyE2E_CWVMetric_Type.cls).toBe('cls');
|
|
22
|
-
expect(index_1.DyE2E_CWVMetric_Type.inp).toBe('inp');
|
|
23
|
-
expect(index_1.DyE2E_CWVMetric_Type.ttfb).toBe('ttfb');
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
// ────────────────── Data-modelek ──────────────────
|
|
27
|
-
describe('| Data-modelek', () => {
|
|
28
|
-
it('| DyE2E_FieldTestCase_DataModel JSON.stringify+parse roundtrip', () => {
|
|
29
|
-
const original = new index_1.DyE2E_FieldTestCase_DataModel({
|
|
30
|
-
id: 'text:empty',
|
|
31
|
-
type: index_1.DyE2E_FieldTestCase_Type.emptyInput,
|
|
32
|
-
description: 'üres',
|
|
33
|
-
inputValue: '',
|
|
34
|
-
expectation: index_1.DyE2E_TestExpectation_Type.valid,
|
|
35
|
-
});
|
|
36
|
-
const json = JSON.stringify(original);
|
|
37
|
-
const restored = new index_1.DyE2E_FieldTestCase_DataModel(JSON.parse(json));
|
|
38
|
-
expect(restored.id).toBe('text:empty');
|
|
39
|
-
expect(restored.type).toBe(index_1.DyE2E_FieldTestCase_Type.emptyInput);
|
|
40
|
-
expect(restored.expectation).toBe(index_1.DyE2E_TestExpectation_Type.valid);
|
|
41
|
-
});
|
|
42
|
-
it('| DyE2E_FieldTestCaseSet_DataModel JSON-roundtrip', () => {
|
|
43
|
-
const set = new index_1.DyE2E_FieldTestCaseSet_DataModel({
|
|
44
|
-
fieldTypeKey: 'text',
|
|
45
|
-
label: 'Text',
|
|
46
|
-
cases: [
|
|
47
|
-
new index_1.DyE2E_FieldTestCase_DataModel({
|
|
48
|
-
id: 't1',
|
|
49
|
-
type: index_1.DyE2E_FieldTestCase_Type.ascii,
|
|
50
|
-
description: 'ascii',
|
|
51
|
-
inputValue: 'hi',
|
|
52
|
-
expectation: index_1.DyE2E_TestExpectation_Type.valid,
|
|
53
|
-
}),
|
|
54
|
-
],
|
|
55
|
-
});
|
|
56
|
-
const restored = new index_1.DyE2E_FieldTestCaseSet_DataModel(JSON.parse(JSON.stringify(set)));
|
|
57
|
-
expect(restored.cases.length).toBe(1);
|
|
58
|
-
expect(restored.fieldTypeKey).toBe('text');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
// ────────────────── Viewport ──────────────────
|
|
62
|
-
describe('| Viewport-katalogus', () => {
|
|
63
|
-
it('| 7 standard viewport elerheto', () => {
|
|
64
|
-
expect(Object.keys(index_1.STANDARD_VIEWPORT_CATALOG).length).toBe(7);
|
|
65
|
-
expect(index_1.STANDARD_VIEWPORT_LIST.length).toBe(7);
|
|
66
|
-
});
|
|
67
|
-
it('| mobile-s = 320×568', () => {
|
|
68
|
-
const mob = index_1.STANDARD_VIEWPORT_CATALOG[index_1.DyE2E_StandardViewport_Type.mobileS];
|
|
69
|
-
expect(mob.width).toBe(320);
|
|
70
|
-
expect(mob.height).toBe(568);
|
|
71
|
-
expect(mob.isMobile).toBe(true);
|
|
72
|
-
});
|
|
73
|
-
it('| desktop-wide = 1920×1080', () => {
|
|
74
|
-
const dw = index_1.STANDARD_VIEWPORT_CATALOG[index_1.DyE2E_StandardViewport_Type.desktopWide];
|
|
75
|
-
expect(dw.width).toBe(1920);
|
|
76
|
-
expect(dw.height).toBe(1080);
|
|
77
|
-
expect(dw.isMobile).toBe(false);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
// ────────────────── CWV ──────────────────
|
|
81
|
-
describe('| CWV thresholds', () => {
|
|
82
|
-
it('| LCP good < 2500ms (web.dev "good" zona)', () => {
|
|
83
|
-
expect(index_1.CWV_GOOD_THRESHOLDS.lcp_p75_ms).toBe(2500);
|
|
84
|
-
});
|
|
85
|
-
it('| CLS good < 0.1', () => {
|
|
86
|
-
expect(index_1.CWV_GOOD_THRESHOLDS.cls_p75).toBe(0.1);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
// ────────────────── Test-case registry ──────────────────
|
|
90
|
-
describe('| FIELD_TYPE_TEST_CASE_REGISTRY', () => {
|
|
91
|
-
it('| tartalmazza mind a 13 Forms v2 field-type-ot', () => {
|
|
92
|
-
const keys = Object.keys(index_1.FIELD_TYPE_TEST_CASE_REGISTRY);
|
|
93
|
-
expect(keys).toContain('text');
|
|
94
|
-
expect(keys).toContain('textarea');
|
|
95
|
-
expect(keys).toContain('password');
|
|
96
|
-
expect(keys).toContain('number');
|
|
97
|
-
expect(keys).toContain('slider');
|
|
98
|
-
expect(keys).toContain('sliderRange');
|
|
99
|
-
expect(keys).toContain('checkbox');
|
|
100
|
-
expect(keys).toContain('select');
|
|
101
|
-
expect(keys).toContain('multiselect');
|
|
102
|
-
expect(keys).toContain('radioSelect');
|
|
103
|
-
expect(keys).toContain('date');
|
|
104
|
-
expect(keys).toContain('dateTime');
|
|
105
|
-
expect(keys).toContain('dateRange');
|
|
106
|
-
});
|
|
107
|
-
it('| getTestCaseSet ismert type-ra visszaadja a set-et', () => {
|
|
108
|
-
const set = (0, index_1.getTestCaseSet)('text');
|
|
109
|
-
expect(set).not.toBeNull();
|
|
110
|
-
expect(set?.fieldTypeKey).toBe('text');
|
|
111
|
-
expect((set?.cases.length ?? 0)).toBeGreaterThan(5);
|
|
112
|
-
});
|
|
113
|
-
it('| getTestCaseSet ismeretlen type-ra null-t ad (Wave-2b extensibility)', () => {
|
|
114
|
-
const set = (0, index_1.getTestCaseSet)('not-a-real-type');
|
|
115
|
-
expect(set).toBeNull();
|
|
116
|
-
});
|
|
117
|
-
it('| registerTestCaseSet uj registry-objektumot ad (immutable)', () => {
|
|
118
|
-
const newSet = new index_1.DyE2E_FieldTestCaseSet_DataModel({
|
|
119
|
-
fieldTypeKey: 'customColor',
|
|
120
|
-
label: 'Custom Color',
|
|
121
|
-
cases: [],
|
|
122
|
-
});
|
|
123
|
-
const extended = (0, index_1.registerTestCaseSet)('customColor', newSet);
|
|
124
|
-
expect(extended['customColor']).toBe(newSet);
|
|
125
|
-
// Original NEM mutalt.
|
|
126
|
-
expect(index_1.FIELD_TYPE_TEST_CASE_REGISTRY['customColor']).toBeUndefined();
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
// ────────────────── TestId util ──────────────────
|
|
130
|
-
describe('| DyE2E_TestId_Util', () => {
|
|
131
|
-
it('| field testId konvencio', () => {
|
|
132
|
-
expect(index_1.DyE2E_TestId_Util.field('login', 'email')).toBe('login-email');
|
|
133
|
-
});
|
|
134
|
-
it('| camelCase → kebab', () => {
|
|
135
|
-
expect(index_1.DyE2E_TestId_Util.field('myForm', 'firstName')).toBe('my-form-first-name');
|
|
136
|
-
});
|
|
137
|
-
it('| form / submit / cancel testId-k', () => {
|
|
138
|
-
expect(index_1.DyE2E_TestId_Util.form('login')).toBe('login-form');
|
|
139
|
-
expect(index_1.DyE2E_TestId_Util.formSubmit('login')).toBe('login-submit');
|
|
140
|
-
expect(index_1.DyE2E_TestId_Util.formCancel('login')).toBe('login-cancel');
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
//# sourceMappingURL=contracts.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.spec.js","sourceRoot":"","sources":["../../../src/_modules/contracts/contracts.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-comparison.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-comparison.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cwv_metric_type_enum_1 = require("../contracts/_enums/cwv-metric-type.enum");
|
|
4
|
-
const cwv_comparison_util_1 = require("./_collections/cwv-comparison.util");
|
|
5
|
-
describe('| dynamo-e2e | CWV Comparison Util (Wave-3)', () => {
|
|
6
|
-
it('| ures report-ok → [] (nincs metric)', () => {
|
|
7
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports({}, {});
|
|
8
|
-
expect(result.length).toBe(0);
|
|
9
|
-
});
|
|
10
|
-
it('| stable: ±5% alatti változás', () => {
|
|
11
|
-
const oldR = { summary: { lcp: { p75: 2000 } } };
|
|
12
|
-
const newR = { summary: { lcp: { p75: 2080 } } };
|
|
13
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
14
|
-
expect(result[0].status).toBe('stable');
|
|
15
|
-
});
|
|
16
|
-
it('| improved: >5% csökkenés', () => {
|
|
17
|
-
const oldR = { summary: { lcp: { p75: 2000 } } };
|
|
18
|
-
const newR = { summary: { lcp: { p75: 1500 } } };
|
|
19
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
20
|
-
expect(result[0].status).toBe('improved');
|
|
21
|
-
expect(result[0].delta).toBe(-500);
|
|
22
|
-
});
|
|
23
|
-
it('| regressed: >5% növekedés', () => {
|
|
24
|
-
const oldR = { summary: { lcp: { p75: 2000 } } };
|
|
25
|
-
const newR = { summary: { lcp: { p75: 3000 } } };
|
|
26
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
27
|
-
expect(result[0].status).toBe('regressed');
|
|
28
|
-
expect(result[0].deltaPercent).toBe(50);
|
|
29
|
-
});
|
|
30
|
-
it('| custom tolerance — 1% strict mode', () => {
|
|
31
|
-
const oldR = { summary: { lcp: { p75: 2000 } } };
|
|
32
|
-
const newR = { summary: { lcp: { p75: 2050 } } };
|
|
33
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR, 1);
|
|
34
|
-
expect(result[0].status).toBe('regressed');
|
|
35
|
-
});
|
|
36
|
-
it('| több metric egyszerre', () => {
|
|
37
|
-
const oldR = { summary: { lcp: { p75: 2000 }, cls: { p75: 0.05 }, inp: { p75: 150 } } };
|
|
38
|
-
const newR = { summary: { lcp: { p75: 2100 }, cls: { p75: 0.20 }, inp: { p75: 100 } } };
|
|
39
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
40
|
-
expect(result.length).toBe(3);
|
|
41
|
-
const lcp = result.find(r => r.metric === cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp);
|
|
42
|
-
const cls = result.find(r => r.metric === cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls);
|
|
43
|
-
const inp = result.find(r => r.metric === cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.inp);
|
|
44
|
-
expect(lcp?.status).toBe('stable');
|
|
45
|
-
expect(cls?.status).toBe('regressed');
|
|
46
|
-
expect(inp?.status).toBe('improved');
|
|
47
|
-
});
|
|
48
|
-
it('| regressionsOnly — szűr', () => {
|
|
49
|
-
const oldR = { summary: { lcp: { p75: 2000 }, cls: { p75: 0.05 } } };
|
|
50
|
-
const newR = { summary: { lcp: { p75: 3000 }, cls: { p75: 0.05 } } };
|
|
51
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
52
|
-
const regressions = cwv_comparison_util_1.DyE2E_CWVComparison_Util.regressionsOnly(result);
|
|
53
|
-
expect(regressions.length).toBe(1);
|
|
54
|
-
expect(regressions[0].metric).toBe(cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp);
|
|
55
|
-
});
|
|
56
|
-
it('| formatMarkdownTable — header + row markdown', () => {
|
|
57
|
-
const oldR = { summary: { lcp: { p75: 2000 } } };
|
|
58
|
-
const newR = { summary: { lcp: { p75: 3000 } } };
|
|
59
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
60
|
-
const md = cwv_comparison_util_1.DyE2E_CWVComparison_Util.formatMarkdownTable(result);
|
|
61
|
-
expect(md).toContain('| Metric | Old p75 | New p75 | Delta | Δ% | Status |');
|
|
62
|
-
expect(md).toContain('LCP');
|
|
63
|
-
expect(md).toContain('🔴');
|
|
64
|
-
expect(md).toContain('regressed');
|
|
65
|
-
});
|
|
66
|
-
it('| formatMarkdownTable — üres → "_No comparable metrics._"', () => {
|
|
67
|
-
const md = cwv_comparison_util_1.DyE2E_CWVComparison_Util.formatMarkdownTable([]);
|
|
68
|
-
expect(md).toBe('_No comparable metrics._');
|
|
69
|
-
});
|
|
70
|
-
it('| NaN p75 → metric kihagyva', () => {
|
|
71
|
-
const oldR = { summary: { lcp: { p75: 2000 }, cls: {} } };
|
|
72
|
-
const newR = { summary: { lcp: { p75: 2100 }, cls: { p75: 0.1 } } };
|
|
73
|
-
const result = cwv_comparison_util_1.DyE2E_CWVComparison_Util.compareReports(oldR, newR);
|
|
74
|
-
expect(result.length).toBe(1); // csak lcp, mert cls.oldP75 NaN
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
//# sourceMappingURL=cwv-comparison.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-comparison.spec.js","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-comparison.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-diagnose.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-diagnose.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cwv_metric_type_enum_1 = require("../contracts/_enums/cwv-metric-type.enum");
|
|
4
|
-
const cwv_default_thresholds_const_1 = require("../contracts/_collections/constants/cwv-default-thresholds.const");
|
|
5
|
-
const cwv_measurement_data_model_1 = require("./_models/cwv-measurement.data-model");
|
|
6
|
-
const cwv_diagnose_util_1 = require("./_collections/cwv-diagnose.util");
|
|
7
|
-
describe('| dynamo-e2e | CWV Diagnose Util (Wave-3)', () => {
|
|
8
|
-
it('| üres measurement → null', () => {
|
|
9
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric([], cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
10
|
-
expect(result).toBeNull();
|
|
11
|
-
});
|
|
12
|
-
it('| LCP p75 < threshold → OK', () => {
|
|
13
|
-
const ms = [
|
|
14
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 1500, iteration: 0, route: '/x' }),
|
|
15
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 2000, iteration: 1, route: '/x' }),
|
|
16
|
-
];
|
|
17
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
18
|
-
expect(result).not.toBeNull();
|
|
19
|
-
expect(result?.suggestion).toBe('OK — threshold tartva.');
|
|
20
|
-
expect(result?.summary).toContain('LCP p75');
|
|
21
|
-
expect(result?.summary).not.toContain('FAIL');
|
|
22
|
-
});
|
|
23
|
-
it('| LCP p75 > threshold → FAIL + suggestion', () => {
|
|
24
|
-
const ms = [
|
|
25
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 4000, iteration: 0, route: '/x' }),
|
|
26
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 5500, iteration: 1, route: '/x' }),
|
|
27
|
-
];
|
|
28
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
29
|
-
expect(result?.summary).toContain('FAIL');
|
|
30
|
-
expect(result?.suggestion).not.toBe('OK — threshold tartva.');
|
|
31
|
-
});
|
|
32
|
-
it('| LCP target IMG → IMG-specifikus suggestion', () => {
|
|
33
|
-
const ms = [
|
|
34
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({
|
|
35
|
-
metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 5000, iteration: 0, route: '/x',
|
|
36
|
-
attribution: { element: 'IMG#hero-banner' },
|
|
37
|
-
}),
|
|
38
|
-
];
|
|
39
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
40
|
-
expect(result?.worstTarget).toBe('IMG#hero-banner');
|
|
41
|
-
expect(result?.suggestion).toContain('preload');
|
|
42
|
-
});
|
|
43
|
-
it('| CLS p75 > 0.1 → FAIL + dimension suggestion', () => {
|
|
44
|
-
const ms = [
|
|
45
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls, value: 0.2, iteration: 0, route: '/x' }),
|
|
46
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls, value: 0.3, iteration: 1, route: '/x' }),
|
|
47
|
-
];
|
|
48
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
49
|
-
expect(result?.summary).toContain('FAIL');
|
|
50
|
-
expect(result?.suggestion).toContain('dimension');
|
|
51
|
-
});
|
|
52
|
-
it('| INP p75 > 200ms → FAIL + long-task suggestion', () => {
|
|
53
|
-
const ms = [
|
|
54
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.inp, value: 500, iteration: 0, route: '/x' }),
|
|
55
|
-
];
|
|
56
|
-
const result = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.inp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
57
|
-
expect(result?.suggestion).toContain('long tasks');
|
|
58
|
-
});
|
|
59
|
-
it('| TTFB / FCP suggestion-ágak', () => {
|
|
60
|
-
const ttfbMs = [new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.ttfb, value: 2000, iteration: 0, route: '/x' })];
|
|
61
|
-
const fcpMs = [new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.fcp, value: 3000, iteration: 0, route: '/x' })];
|
|
62
|
-
const ttfb = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(ttfbMs, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.ttfb, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
63
|
-
const fcp = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseMetric(fcpMs, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.fcp, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
64
|
-
expect(ttfb?.suggestion).toContain('caching');
|
|
65
|
-
expect(fcp?.suggestion).toContain('critical CSS');
|
|
66
|
-
});
|
|
67
|
-
it('| diagnoseAll több metric-re egyszerre', () => {
|
|
68
|
-
const ms = [
|
|
69
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 1500, iteration: 0, route: '/x' }),
|
|
70
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls, value: 0.05, iteration: 0, route: '/x' }),
|
|
71
|
-
];
|
|
72
|
-
const all = cwv_diagnose_util_1.DyE2E_CWVDiagnose_Util.diagnoseAll(ms, cwv_default_thresholds_const_1.CWV_GOOD_THRESHOLDS);
|
|
73
|
-
expect(all.length).toBe(2); // LCP + CLS
|
|
74
|
-
expect(all.find(h => h.metric === cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp)).toBeDefined();
|
|
75
|
-
expect(all.find(h => h.metric === cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls)).toBeDefined();
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=cwv-diagnose.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-diagnose.spec.js","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-diagnose.spec.ts"],"names":[],"mappings":";;AAAA,mFAAgF;AAChF,mHAAuG;AACvG,qFAAsF;AACtF,wEAA0E;AAE1E,QAAQ,CAAC,2CAA2C,EAAE,GAAS,EAAE;IAE/D,EAAE,CAAC,2BAA2B,EAAE,GAAS,EAAE;QACzC,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAS,EAAE;QAC1C,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChH,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACjH,CAAC;QACF,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAS,EAAE;QACzD,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChH,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACjH,CAAC;QACF,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC;gBACjC,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI;gBACxE,WAAW,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;aAC5C,CAAC;SACH,CAAC;QACF,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAS,EAAE;QAC7D,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/G,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAChH,CAAC;QACF,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;QAC/D,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAChH,CAAC;QACF,MAAM,MAAM,GAAG,0CAAsB,CAAC,cAAc,CAAC,EAAE,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC5C,MAAM,MAAM,GAAG,CAAC,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACnI,MAAM,KAAK,GAAG,CAAC,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjI,MAAM,IAAI,GAAG,0CAAsB,CAAC,cAAc,CAAC,MAAM,EAAE,2CAAoB,CAAC,IAAI,EAAE,kDAAmB,CAAC,CAAC;QAC3G,MAAM,GAAG,GAAG,0CAAsB,CAAC,cAAc,CAAC,KAAK,EAAE,2CAAoB,CAAC,GAAG,EAAE,kDAAmB,CAAC,CAAC;QACxG,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,EAAE,GAAG;YACT,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChH,IAAI,2DAA8B,CAAC,EAAE,MAAM,EAAE,2CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACjH,CAAC;QACF,MAAM,GAAG,GAAG,0CAAsB,CAAC,WAAW,CAAC,EAAE,EAAE,kDAAmB,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;QACxC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2CAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2CAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-suite.generator.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-suite.generator.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cwv_metric_type_enum_1 = require("../contracts/_enums/cwv-metric-type.enum");
|
|
4
|
-
const cwv_aggregator_util_1 = require("./_collections/cwv-aggregator.util");
|
|
5
|
-
const cwv_measurement_data_model_1 = require("./_models/cwv-measurement.data-model");
|
|
6
|
-
const cwv_suite_generator_1 = require("./cwv-suite.generator");
|
|
7
|
-
describe('| dynamo-e2e | CWV suite generator (MP-05)', () => {
|
|
8
|
-
describe('| Aggregator', () => {
|
|
9
|
-
it('| percentile — egyetlen ertek', () => {
|
|
10
|
-
expect(cwv_aggregator_util_1.DyE2E_CWVAggregator_Util.percentile([5], 0.5)).toBe(5);
|
|
11
|
-
});
|
|
12
|
-
it('| percentile — p50 a median', () => {
|
|
13
|
-
expect(cwv_aggregator_util_1.DyE2E_CWVAggregator_Util.percentile([1, 2, 3], 0.5)).toBe(2);
|
|
14
|
-
});
|
|
15
|
-
it('| percentile — p75 lineáris interpolációval', () => {
|
|
16
|
-
// [10, 20, 30, 40, 50] → rank = 0.75 * 4 = 3 → sorted[3] = 40
|
|
17
|
-
expect(cwv_aggregator_util_1.DyE2E_CWVAggregator_Util.percentile([10, 20, 30, 40, 50], 0.75)).toBe(40);
|
|
18
|
-
});
|
|
19
|
-
it('| summarize — több measurement-ből', () => {
|
|
20
|
-
const ms = [
|
|
21
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 1000, iteration: 0, route: '/a' }),
|
|
22
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 2000, iteration: 1, route: '/a' }),
|
|
23
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp, value: 3000, iteration: 2, route: '/a' }),
|
|
24
|
-
new cwv_measurement_data_model_1.DyE2E_CWVMeasurement_DataModel({ metric: cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.cls, value: 0.05, iteration: 0, route: '/a' }),
|
|
25
|
-
];
|
|
26
|
-
const summary = cwv_aggregator_util_1.DyE2E_CWVAggregator_Util.summarize(ms, cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp);
|
|
27
|
-
expect(summary.n).toBe(3);
|
|
28
|
-
expect(summary.min).toBe(1000);
|
|
29
|
-
expect(summary.max).toBe(3000);
|
|
30
|
-
expect(summary.mean).toBe(2000);
|
|
31
|
-
expect(summary.p50).toBe(2000);
|
|
32
|
-
});
|
|
33
|
-
it('| summarize — üres mérés → NaN-ok', () => {
|
|
34
|
-
const summary = cwv_aggregator_util_1.DyE2E_CWVAggregator_Util.summarize([], cwv_metric_type_enum_1.DyE2E_CWVMetric_Type.lcp);
|
|
35
|
-
expect(summary.n).toBe(0);
|
|
36
|
-
expect(isNaN(summary.p50)).toBe(true);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
describe('| Generator emit', () => {
|
|
40
|
-
it('| ures route-listaval valid spec.ts', () => {
|
|
41
|
-
const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({ routes: [] });
|
|
42
|
-
expect(spec).toContain(`import { test, expect } from '@playwright/test';`);
|
|
43
|
-
expect(spec).toContain('CWV diagnostics');
|
|
44
|
-
});
|
|
45
|
-
it('| 1 route → emit-el N iter loop-ot + JSON-report-ot + assertion-okat', () => {
|
|
46
|
-
const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({
|
|
47
|
-
routes: [{ key: 'home', path: '/' }],
|
|
48
|
-
});
|
|
49
|
-
expect(spec).toContain('for (let iter: number = 0; iter < 5;');
|
|
50
|
-
expect(spec).toContain('cwv-report');
|
|
51
|
-
expect(spec).toContain('LCP threshold 2500ms');
|
|
52
|
-
expect(spec).toContain('CLS threshold 0.1');
|
|
53
|
-
});
|
|
54
|
-
it('| custom thresholds → asszertok', () => {
|
|
55
|
-
const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({
|
|
56
|
-
routes: [{ key: 'x', path: '/x' }],
|
|
57
|
-
thresholds: { lcp_p75_ms: 4000, cls_p75: 0.25 },
|
|
58
|
-
});
|
|
59
|
-
expect(spec).toContain('LCP threshold 4000ms');
|
|
60
|
-
expect(spec).toContain('CLS threshold 0.25');
|
|
61
|
-
});
|
|
62
|
-
it('| iterationsPerRoute override', () => {
|
|
63
|
-
const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({
|
|
64
|
-
routes: [{ key: 'x', path: '/x' }],
|
|
65
|
-
iterationsPerRoute: 10,
|
|
66
|
-
});
|
|
67
|
-
expect(spec).toContain('iter < 10');
|
|
68
|
-
});
|
|
69
|
-
it('| stable STAMP → deterministic', () => {
|
|
70
|
-
const a = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({ routes: [{ key: 'x', path: '/x' }] });
|
|
71
|
-
const b = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({ routes: [{ key: 'x', path: '/x' }] });
|
|
72
|
-
expect(a).toBe(b);
|
|
73
|
-
});
|
|
74
|
-
it('| inlined page-script JSON-encoded (no string-break)', () => {
|
|
75
|
-
const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit({ routes: [{ key: 'x', path: '/x' }] });
|
|
76
|
-
expect(spec).toContain('DYE2E_WEB_VITALS_PAGE_SCRIPT');
|
|
77
|
-
expect(spec).toContain('__dye2e_cwv_events__');
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=cwv-suite.generator.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-suite.generator.spec.js","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-suite.generator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cwv-summarize.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/cwv/cwv-summarize.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cwv_summarize_util_1 = require("./_collections/cwv-summarize.util");
|
|
4
|
-
describe('| dynamo-e2e | CWV Summarize Util (Wave-3)', () => {
|
|
5
|
-
describe('| toMarkdown', () => {
|
|
6
|
-
it('| üres summary → csak header + tabla-header', () => {
|
|
7
|
-
const md = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toMarkdown({ route: '/x' });
|
|
8
|
-
expect(md).toContain('CWV summary — /x');
|
|
9
|
-
expect(md).toContain('| Metric | n | p50 | p75 | p95 | Target | Status |');
|
|
10
|
-
});
|
|
11
|
-
it('| lcp passing → 🟢', () => {
|
|
12
|
-
const report = {
|
|
13
|
-
route: '/home',
|
|
14
|
-
summary: { lcp: { n: 5, p50: 1500, p75: 2000, p95: 2400 } },
|
|
15
|
-
};
|
|
16
|
-
const md = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toMarkdown(report);
|
|
17
|
-
expect(md).toContain('🟢');
|
|
18
|
-
expect(md).toContain('LCP');
|
|
19
|
-
expect(md).toContain('2000.00ms');
|
|
20
|
-
});
|
|
21
|
-
it('| lcp failing → 🔴', () => {
|
|
22
|
-
const report = {
|
|
23
|
-
route: '/home',
|
|
24
|
-
summary: { lcp: { n: 5, p75: 4000 } },
|
|
25
|
-
};
|
|
26
|
-
const md = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toMarkdown(report);
|
|
27
|
-
expect(md).toContain('🔴');
|
|
28
|
-
});
|
|
29
|
-
it('| n=0 metrik kihagyva', () => {
|
|
30
|
-
const report = {
|
|
31
|
-
summary: { lcp: { n: 0 }, cls: { n: 3, p75: 0.05 } },
|
|
32
|
-
};
|
|
33
|
-
const md = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toMarkdown(report);
|
|
34
|
-
expect(md).not.toContain('| LCP |');
|
|
35
|
-
expect(md).toContain('| CLS |');
|
|
36
|
-
});
|
|
37
|
-
it('| route opcionalis — "unknown route" default', () => {
|
|
38
|
-
const md = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toMarkdown({});
|
|
39
|
-
expect(md).toContain('unknown route');
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe('| toJsonSummary', () => {
|
|
43
|
-
it('| üres summary → minden no-data', () => {
|
|
44
|
-
const json = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toJsonSummary({});
|
|
45
|
-
expect(json.lcp.status).toBe('no-data');
|
|
46
|
-
expect(json.cls.status).toBe('no-data');
|
|
47
|
-
expect(json.inp.status).toBe('no-data');
|
|
48
|
-
});
|
|
49
|
-
it('| lcp pass + cls fail egyszerre', () => {
|
|
50
|
-
const report = {
|
|
51
|
-
summary: { lcp: { n: 5, p75: 2000 }, cls: { n: 5, p75: 0.3 } },
|
|
52
|
-
};
|
|
53
|
-
const json = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toJsonSummary(report);
|
|
54
|
-
expect(json.lcp.status).toBe('pass');
|
|
55
|
-
expect(json.lcp.p75).toBe(2000);
|
|
56
|
-
expect(json.cls.status).toBe('fail');
|
|
57
|
-
expect(json.cls.p75).toBe(0.3);
|
|
58
|
-
});
|
|
59
|
-
it('| custom thresholds figyelembe vesz', () => {
|
|
60
|
-
const report = {
|
|
61
|
-
summary: { lcp: { n: 5, p75: 3000 } },
|
|
62
|
-
};
|
|
63
|
-
const stricter = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toJsonSummary(report, { lcp_p75_ms: 2000 });
|
|
64
|
-
expect(stricter.lcp.status).toBe('fail');
|
|
65
|
-
const looser = cwv_summarize_util_1.DyE2E_CWVSummarize_Util.toJsonSummary(report, { lcp_p75_ms: 4000 });
|
|
66
|
-
expect(looser.lcp.status).toBe('pass');
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
//# sourceMappingURL=cwv-summarize.spec.js.map
|