@futdevpro/dynamo-e2e 1.18.26 → 1.18.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +10 -0
  3. package/build/_modules/contracts/_collections/test-case-sets/password-field-test-cases.const.d.ts +4 -0
  4. package/build/_modules/contracts/_collections/test-case-sets/password-field-test-cases.const.d.ts.map +1 -1
  5. package/build/_modules/contracts/_collections/test-case-sets/password-field-test-cases.const.js +39 -3
  6. package/build/_modules/contracts/_collections/test-case-sets/password-field-test-cases.const.js.map +1 -1
  7. package/build/_modules/contracts/_enums/field-test-case-type.enum.d.ts +5 -0
  8. package/build/_modules/contracts/_enums/field-test-case-type.enum.d.ts.map +1 -1
  9. package/build/_modules/contracts/_enums/field-test-case-type.enum.js +5 -0
  10. package/build/_modules/contracts/_enums/field-test-case-type.enum.js.map +1 -1
  11. package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts +9 -1
  12. package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts.map +1 -1
  13. package/build/_modules/generators/_collections/field-emission.util.d.ts +11 -0
  14. package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
  15. package/build/_modules/generators/_collections/field-emission.util.js +43 -6
  16. package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
  17. package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
  18. package/build/_modules/generators/_collections/form-level-emission.util.js +5 -6
  19. package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
  20. package/build/_modules/generators/_collections/json-schema.util.d.ts.map +1 -1
  21. package/build/_modules/generators/_collections/json-schema.util.js +2 -0
  22. package/build/_modules/generators/_collections/json-schema.util.js.map +1 -1
  23. package/build/_modules/generators/_collections/test-case-filter.util.d.ts +6 -0
  24. package/build/_modules/generators/_collections/test-case-filter.util.d.ts.map +1 -1
  25. package/build/_modules/generators/_collections/test-case-filter.util.js +36 -0
  26. package/build/_modules/generators/_collections/test-case-filter.util.js.map +1 -1
  27. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +13 -0
  28. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  29. package/build/_modules/generators/form-suite.generator.d.ts.map +1 -1
  30. package/build/_modules/generators/form-suite.generator.js +4 -1
  31. package/build/_modules/generators/form-suite.generator.js.map +1 -1
  32. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.d.ts +6 -0
  33. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.d.ts.map +1 -0
  34. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.js +255 -0
  35. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.js.map +1 -0
  36. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.d.ts +36 -0
  37. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.d.ts.map +1 -0
  38. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.js +133 -0
  39. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.js.map +1 -0
  40. package/build/_modules/ui-check/_collections/detectors/nested-scroll.detector.d.ts +25 -0
  41. package/build/_modules/ui-check/_collections/detectors/nested-scroll.detector.d.ts.map +1 -0
  42. package/build/_modules/ui-check/_collections/detectors/nested-scroll.detector.js +47 -0
  43. package/build/_modules/ui-check/_collections/detectors/nested-scroll.detector.js.map +1 -0
  44. package/build/_modules/ui-check/_collections/detectors/non-toggling-control.detector.d.ts +33 -0
  45. package/build/_modules/ui-check/_collections/detectors/non-toggling-control.detector.d.ts.map +1 -0
  46. package/build/_modules/ui-check/_collections/detectors/non-toggling-control.detector.js +119 -0
  47. package/build/_modules/ui-check/_collections/detectors/non-toggling-control.detector.js.map +1 -0
  48. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.d.ts +20 -0
  49. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.d.ts.map +1 -0
  50. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.js +30 -0
  51. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.js.map +1 -0
  52. package/build/_modules/ui-check/_collections/ui-check-guard.util.d.ts +60 -0
  53. package/build/_modules/ui-check/_collections/ui-check-guard.util.d.ts.map +1 -0
  54. package/build/_modules/ui-check/_collections/ui-check-guard.util.js +144 -0
  55. package/build/_modules/ui-check/_collections/ui-check-guard.util.js.map +1 -0
  56. package/build/_modules/ui-check/_collections/ui-check-page.util.d.ts +80 -0
  57. package/build/_modules/ui-check/_collections/ui-check-page.util.d.ts.map +1 -0
  58. package/build/_modules/ui-check/_collections/ui-check-page.util.js +195 -0
  59. package/build/_modules/ui-check/_collections/ui-check-page.util.js.map +1 -0
  60. package/build/_modules/ui-check/_collections/ui-check-runner.util.d.ts +41 -0
  61. package/build/_modules/ui-check/_collections/ui-check-runner.util.d.ts.map +1 -0
  62. package/build/_modules/ui-check/_collections/ui-check-runner.util.js +146 -0
  63. package/build/_modules/ui-check/_collections/ui-check-runner.util.js.map +1 -0
  64. package/build/_modules/ui-check/_models/ui-check-context.interface.d.ts +39 -0
  65. package/build/_modules/ui-check/_models/ui-check-context.interface.d.ts.map +1 -0
  66. package/build/_modules/ui-check/_models/ui-check-context.interface.js +3 -0
  67. package/build/_modules/ui-check/_models/ui-check-context.interface.js.map +1 -0
  68. package/build/_modules/ui-check/_models/ui-check-detector.interface.d.ts +32 -0
  69. package/build/_modules/ui-check/_models/ui-check-detector.interface.d.ts.map +1 -0
  70. package/build/_modules/ui-check/_models/ui-check-detector.interface.js +3 -0
  71. package/build/_modules/ui-check/_models/ui-check-detector.interface.js.map +1 -0
  72. package/build/_modules/ui-check/_models/ui-check-finding.interface.d.ts +30 -0
  73. package/build/_modules/ui-check/_models/ui-check-finding.interface.d.ts.map +1 -0
  74. package/build/_modules/ui-check/_models/ui-check-finding.interface.js +3 -0
  75. package/build/_modules/ui-check/_models/ui-check-finding.interface.js.map +1 -0
  76. package/build/_modules/ui-check/_models/ui-check-report.interface.d.ts +38 -0
  77. package/build/_modules/ui-check/_models/ui-check-report.interface.d.ts.map +1 -0
  78. package/build/_modules/ui-check/_models/ui-check-report.interface.js +3 -0
  79. package/build/_modules/ui-check/_models/ui-check-report.interface.js.map +1 -0
  80. package/build/_modules/ui-check/index.d.ts +27 -0
  81. package/build/_modules/ui-check/index.d.ts.map +1 -0
  82. package/build/_modules/ui-check/index.js +43 -0
  83. package/build/_modules/ui-check/index.js.map +1 -0
  84. package/build/index.d.ts +1 -0
  85. package/build/index.d.ts.map +1 -1
  86. package/build/index.js +2 -1
  87. package/build/index.js.map +1 -1
  88. package/package.json +10 -1
@@ -1 +1 @@
1
- {"version":3,"file":"test-case-filter.util.js","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/test-case-filter.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-case-filter.util.js","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/test-case-filter.util.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,12 @@ export interface DyE2E_FieldSettings_Shape {
33
33
  max?: number | string;
34
34
  minLength?: number;
35
35
  maxLength?: number;
36
+ /**
37
+ * BFR-ADVENTOR-078 — the field's pattern validator as a RegExp SOURCE (e.g. `FDP_passwordRegex.source`). The generator
38
+ * turns every "valid" value that does not match it into an `invalid` / `pattern` case, and keeps the
39
+ * `pattern-mismatch` cases; without it those cases are dropped.
40
+ */
41
+ pattern?: string;
36
42
  minDate?: string;
37
43
  maxDate?: string;
38
44
  minDateTime?: string;
@@ -60,6 +66,13 @@ export interface DyE2E_FieldSettings_Shape {
60
66
  * mismatch, not the case being measured), and one extra case checks that a DIFFERENT value is an error.
61
67
  */
62
68
  matchField?: string;
69
+ /**
70
+ * BFR-FLEET-013 — a checkbox that OPENS A DIALOG when pressed (e.g. the Terms of a registration): a RegExp SOURCE
71
+ * (case-insensitive) of the dialog button that closes it the user's way (e.g. `'accept|elfogad'`). After every press
72
+ * of the generated case the open dialog is closed with that button — without it the dialog's backdrop takes the next
73
+ * press, and the case measured the dialog instead of the checkbox.
74
+ */
75
+ toggleDialogClose?: string;
63
76
  /** Bármi más — duck-typing kompatibilitás. */
64
77
  [extra: string]: unknown;
65
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form-settings-shape.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/generators/_models/form-settings-shape.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE9F,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAClE,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,4GAA4G;IAC5G,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gGAAgG;IAChG,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"form-settings-shape.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/generators/_models/form-settings-shape.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE9F,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAClE,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,4GAA4G;IAC5G,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gGAAgG;IAChG,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-suite.generator.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/form-suite.generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AAEvG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,yBAAyB;IAEpC,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAkB;IAExD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAGtD;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM;IA+H7D;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAShD;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,iCAAiC,GAAG,MAAM,EAAE;CAcrG"}
1
+ {"version":3,"file":"form-suite.generator.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/form-suite.generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AAEvG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,yBAAyB;IAEpC,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAkB;IAExD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAGtD;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM;IAkI7D;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAShD;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,iCAAiC,GAAG,MAAM,EAAE;CAcrG"}
@@ -64,12 +64,15 @@ class DyE2E_FormSuite_Generator {
64
64
  }
65
65
  const override = suiteSettings?.fieldOverrides?.find((o) => o.fieldKey === field.key);
66
66
  const filtered = test_case_filter_util_1.DyE2E_TestCaseFilter_Util.filter(set.cases, field, runMode, override);
67
- if (filtered.length === 0) {
67
+ // BFR-FLEET-013 — a skipped case stays in the report (visibly skipped), it never just disappears
68
+ const skipped = test_case_filter_util_1.DyE2E_TestCaseFilter_Util.skippedByOverride(set.cases, runMode, override);
69
+ if (filtered.length === 0 && skipped.length === 0) {
68
70
  fieldBlocks.push(`// field "${field.key}" → no test-cases after filter (runMode=${runMode}).`);
69
71
  continue;
70
72
  }
71
73
  const cases = [
72
74
  ...filtered.map((c) => field_emission_util_1.DyE2E_FieldEmission_Util.emitTestCase(formSettings, field, c)),
75
+ ...skipped.map((c) => field_emission_util_1.DyE2E_FieldEmission_Util.emitSkippedCase(field, c, override)),
73
76
  // BFR-ADVENTOR-035 — a confirm field also gets the "different value ⇒ error" case
74
77
  ...(field.matchField ? [field_emission_util_1.DyE2E_FieldEmission_Util.emitMatchMismatchCase(formSettings, field)] : []),
75
78
  ].join('\n\n');
@@ -1 +1 @@
1
- {"version":3,"file":"form-suite.generator.js","sourceRoot":"","sources":["../../../src/_modules/generators/form-suite.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-suite.generator.js","sourceRoot":"","sources":["../../../src/_modules/generators/form-suite.generator.ts"],"names":[],"mappings":";;;AAAA,yFAAqF;AACrF,kHAAoG;AAEpG,4EAA8E;AAC9E,sFAAuF;AACvF,0EAA4E;AAC5E,gFAAiF;AAIjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,yBAAyB;IAEpC,8EAA8E;IAC9E,MAAM,CAAU,cAAc,GAAW,cAAc,CAAC;IAExD;;;OAGG;IACH,MAAM,CAAU,oBAAoB,GAAwB,IAAI,GAAG,CAAS;QAC1E,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB;QACnF,cAAc,EAAE,MAAM,EAAE,OAAO;KAChC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,OAAwC;QAClD,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC/G,MAAM,OAAO,GAA2B,aAAa,EAAE,OAAO,IAAI,gDAAsB,CAAC,IAAI,CAAC;QAE9F,yEAAyE;QACzE,kFAAkF;QAClF,MAAM,cAAc,GAAW,CAAC,SAAS,EAAE,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxE,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAW,4CAAuB,CAAC,aAAa,CAC1D,YAAY,CAAC,GAAG,EAChB,SAAS,EACT,yBAAyB,CAAC,cAAc,EACxC,aAAa,CACd,CAAC;QAEF,4GAA4G;QAC5G,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAW,EAAE,CAChD,CAAC,CAAC,aAAa,EAAE,cAAc,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpG,MAAM,SAAS,GAAY,YAAY,CAAC,MAAM,CAAC,IAAI,CACjD,CAAC,KAAK,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAA,0CAAc,EAAC,KAAK,CAAC,IAAI,CAAC,CAC3E,CAAC;QAEF,MAAM,OAAO,GAAa;YACxB,GAAG,yBAAyB,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC;YACnE,GAAG,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;SACvC,CAAC;QAEF,kFAAkF;QAClF,MAAM,SAAS,GAAW,yBAAyB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAW,aAAa,EAAE,cAAc,IAAI,SAAS,YAAY,CAAC,GAAG,EAAE,CAAC;QAE5F,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,IAAA,0CAAc,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,mDAAmD;gBACnD,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,uEAAuE,CAAC,CAAC;gBACrI,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAA8C,aAAa,EAAE,cAAc,EAAE,IAAI,CAC7F,CAAC,CAAgC,EAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CACxE,CAAC;YACF,MAAM,QAAQ,GAAG,iDAAyB,CAAC,MAAM,CAC/C,GAAG,CAAC,KAAK,EACT,KAAK,EACL,OAAO,EACP,QAAQ,CACT,CAAC;YACF,iGAAiG;YACjG,MAAM,OAAO,GAAG,iDAAyB,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,GAAG,2CAA2C,OAAO,IAAI,CAAC,CAAC;gBAC/F,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAW;gBACpB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8CAAwB,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrF,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8CAAwB,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnF,kFAAkF;gBAClF,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,8CAAwB,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACf,MAAM,QAAQ,GAAW,YAAY;gBACnC,CAAC,CAAC,2BAA2B,YAAY,2CAA2C;gBACpF,CAAC,CAAC,EAAE,CAAC;YACP,wGAAwG;YACxG,MAAM,QAAQ,GAAW,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC;;;;;;;;;EASR,SAAS,GAAG,cAAc,GAAG,QAAQ;;;;;;IAMnC;gBACI,CAAC,CAAC;EACR,SAAS,GAAG,cAAc,GAAG,QAAQ;IACnC,CAAC;YACC,WAAW,CAAC,IAAI,CACd,yBAAyB,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI;EACvD,4CAAuB,CAAC,MAAM,CAAC,GAAG,QAAQ;;EAE1C,KAAK,EAAE,EAAE,CAAC,CAAC;IACT,CACG,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAW,aAAa,EAAE,kBAAkB;YAC9D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;EACN,4CAAuB,CAAC,MAAM,CAAC;EAC/B,SAAS,GAAG,cAAc;;;EAG1B,uDAA4B,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;QAED,2GAA2G;QAC3G,MAAM,iBAAiB,GAAW,SAAS;YACzC,CAAC,CAAC;;;;;;;;IAQJ;YACE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,GAAG,MAAM;EAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,iBAAiB;;iBAEvB,4CAAuB,CAAC,YAAY,CAAC,cAAc,CAAC;;EAEnE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,cAAc;;;CAG1C,CAAC;IACA,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,SAAiB;QACrC,MAAM,KAAK,GAAW,4CAAuB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEtE,OAAO,uCAAuC,KAAK;0CACb,KAAK;;uCAER,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,SAAkB,EAAE,UAA8C;QACvF,MAAM,SAAS,GAAW,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,eAAe,GAAW,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACxF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAE,gBAAgB,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,6BAA6B,CAAE,CAAC;QACpH,CAAC;QACD,MAAM,YAAY,GAAW,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC;QACvD,MAAM,OAAO,GAAW,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,OAAO,SAAS,EAAE,CAAC;QAEtG,OAAO;YACL,YAAY,eAAe,6BAA6B;YACxD,YAAY,OAAO,YAAY,4CAAuB,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;SACzF,CAAC;IACJ,CAAC;;AAvLH,8DAwLC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Browser-side scripts of the UI detectors (BFR-FLEET-012). Each is the SOURCE of one function expression, called as
3
+ * `(${script})(${JSON.stringify(arg)})` through `page.evaluate` — DOM APIs only, no Node imports, JSON in and out.
4
+ */
5
+ export declare const DyE2E_UICheckPageScripts_Const: Readonly<Record<string, string>>;
6
+ //# sourceMappingURL=ui-check-page-scripts.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-check-page-scripts.const.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6P3E,CAAC"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_UICheckPageScripts_Const = void 0;
4
+ /**
5
+ * Browser-side scripts of the UI detectors (BFR-FLEET-012). Each is the SOURCE of one function expression, called as
6
+ * `(${script})(${JSON.stringify(arg)})` through `page.evaluate` — DOM APIs only, no Node imports, JSON in and out.
7
+ */
8
+ exports.DyE2E_UICheckPageScripts_Const = {
9
+ /**
10
+ * Lists the visible, enabled controls of one kind. `press`: buttons and button-like elements (not form submits, not
11
+ * checkbox / switch internals); `toggle`: checkboxes and switches. Each comes with a unique CSS path.
12
+ */
13
+ listControls: `(arg) => {
14
+ const cssPath = (el) => {
15
+ const parts = [];
16
+ let node = el;
17
+ while (node && node.nodeType === 1 && node !== document.documentElement) {
18
+ if (node.id && /^[A-Za-z][\\w-]*$/.test(node.id) && document.querySelectorAll('#' + node.id).length === 1) {
19
+ parts.unshift('#' + node.id);
20
+ break;
21
+ }
22
+ const tag = node.tagName.toLowerCase();
23
+ const parent = node.parentElement;
24
+ const same = parent ? Array.from(parent.children).filter((c) => c.tagName === node.tagName) : [];
25
+ parts.unshift(same.length > 1 ? tag + ':nth-of-type(' + (same.indexOf(node) + 1) + ')' : tag);
26
+ node = parent;
27
+ }
28
+ return parts.join(' > ');
29
+ };
30
+ const visible = (el) => {
31
+ const r = el.getBoundingClientRect();
32
+ const cs = getComputedStyle(el);
33
+ return r.width > 0 && r.height > 0 && cs.visibility !== 'hidden' && cs.display !== 'none'
34
+ && (typeof el.checkVisibility !== 'function' || el.checkVisibility());
35
+ };
36
+ const disabled = (el) => el.disabled === true || el.getAttribute('aria-disabled') === 'true'
37
+ || !!el.closest('[inert], fieldset[disabled]');
38
+ const selector = arg.kind === 'toggle'
39
+ ? 'input[type="checkbox"], [role="checkbox"], [role="switch"]'
40
+ : 'button, [role="button"], a:not([href]), a[href="#"], a[href=""], [role="menuitem"], [role="tab"]';
41
+ // a modal dialog open (a visible dialog + a backdrop, or aria-modal) ⇒ only ITS controls are reachable
42
+ const dialogs = Array.from(document.querySelectorAll(
43
+ '[role="dialog"], [role="alertdialog"], mat-dialog-container, .mat-mdc-dialog-container, dialog[open]'))
44
+ .filter((d) => visible(d));
45
+ const backdrop = Array.from(document.querySelectorAll('.cdk-overlay-backdrop-showing, .modal-backdrop'))
46
+ .some((b) => visible(b));
47
+ const modal = dialogs.length && (backdrop || dialogs.some((d) => d.getAttribute('aria-modal') === 'true'))
48
+ ? dialogs[dialogs.length - 1] : null;
49
+ const out = [];
50
+ for (const el of Array.from((modal || document).querySelectorAll(selector))) {
51
+ if (arg.kind === 'press') {
52
+ if (el.closest('[role="checkbox"], [role="switch"], [role="radio"], label') && el.tagName !== 'BUTTON') continue;
53
+ if (el.tagName === 'BUTTON' && (el.type || 'submit') === 'submit' && el.form) continue;
54
+ if (el.closest('input, select, textarea')) continue;
55
+ }
56
+ if (arg.kind === 'toggle' && el.tagName !== 'INPUT' && el.querySelector('input[type="checkbox"]')) continue;
57
+ const probe = el.tagName === 'INPUT' && !visible(el) ? (el.closest('label, [class*="checkbox"]') || el) : el;
58
+ if (!visible(probe) || disabled(el)) continue;
59
+ const labelEl = el.tagName === 'INPUT'
60
+ ? (el.labels && el.labels[0]) || el.closest('label, [class*="checkbox"], [class*="toggle"]') : el;
61
+ out.push({
62
+ selector: cssPath(el),
63
+ tag: el.tagName.toLowerCase(),
64
+ text: ((labelEl && labelEl.textContent) || '').replace(/\\s+/g, ' ').trim().slice(0, 120),
65
+ testId: el.getAttribute('data-testid') || el.getAttribute('data-test-id') || null,
66
+ ariaLabel: el.getAttribute('aria-label'),
67
+ title: el.getAttribute('title') || '',
68
+ destructive: !!el.closest('[data-e2e-destructive]'),
69
+ });
70
+ if (out.length >= arg.max) break;
71
+ }
72
+ return out;
73
+ }`,
74
+ /** Starts counting MEANINGFUL DOM mutations (ripple, tooltip, focus-class and live-announcer noise ignored). */
75
+ startMutationWatch: `() => {
76
+ const noise = '.mat-ripple-element, .mat-ripple, .mdc-button__ripple, .mat-mdc-button-ripple, '
77
+ + '.mat-mdc-button-persistent-ripple, .mat-focus-indicator, mat-tooltip-component, .mat-mdc-tooltip, '
78
+ + '.mdc-tooltip, .mat-mdc-tooltip-panel, .cdk-describedby-message-container, .cdk-live-announcer-element, '
79
+ + '.cdk-visually-hidden, [role="tooltip"]';
80
+ const isNoise = (node) => {
81
+ const el = node && node.nodeType === 1 ? node : node && node.parentElement;
82
+ if (!el) return true;
83
+ // <head> changes are invisible (e.g. a style injected on the first ripple) — only the <title> counts
84
+ if (el.closest('head') && !el.closest('title')) return true;
85
+ if (el.closest(noise)) return true;
86
+ // a wrapper that only carries noise (e.g. the overlay pane of a tooltip)
87
+ const inner = Array.from(el.querySelectorAll(noise));
88
+ return inner.length > 0 && (el.textContent || '').trim()
89
+ === inner.map((n) => (n.textContent || '').trim()).join('').trim();
90
+ };
91
+ const noiseClass = /focus|ripple|hover|active|mouse|keyboard|touch|program|animat|transition/i;
92
+ const noiseAttr = /^(mat-ripple-loader|ng-reflect-|aria-describedby$|tabindex$|data-mat-|cdk-focus)/i;
93
+ const state = { count: 0, samples: [] };
94
+ const note = (text) => { state.count++; if (state.samples.length < 5) state.samples.push(text); };
95
+ const observer = new MutationObserver((records) => {
96
+ for (const r of records) {
97
+ if (r.type === 'childList') {
98
+ const nodes = Array.from(r.addedNodes).concat(Array.from(r.removedNodes))
99
+ .filter((n) => n.nodeType === 1 || (n.nodeType === 3 && (n.textContent || '').trim()));
100
+ if (nodes.length && !isNoise(r.target) && nodes.some((n) => !isNoise(n))) {
101
+ note('childList ' + (r.target.tagName || '').toLowerCase());
102
+ }
103
+ } else if (r.type === 'characterData') {
104
+ if (!isNoise(r.target)) note('text ' + (r.target.textContent || '').trim().slice(0, 40));
105
+ } else if (r.type === 'attributes') {
106
+ // the framework's own bookkeeping attributes (lazy ripple loader, Angular reflect, focus/describedby)
107
+ if (isNoise(r.target) || noiseAttr.test(r.attributeName || '')) continue;
108
+ if (r.attributeName === 'class') {
109
+ const before = new Set((r.oldValue || '').split(/\\s+/).filter(Boolean));
110
+ const after = new Set((r.target.getAttribute('class') || '').split(/\\s+/).filter(Boolean));
111
+ const changed = [...before].filter((c) => !after.has(c)).concat([...after].filter((c) => !before.has(c)));
112
+ if (changed.every((c) => noiseClass.test(c))) continue;
113
+ }
114
+ note('attr ' + r.attributeName + ' ' + (r.target.tagName || '').toLowerCase());
115
+ }
116
+ }
117
+ });
118
+ observer.observe(document.documentElement, { subtree: true, childList: true, characterData: true,
119
+ attributes: true, attributeOldValue: true });
120
+ // effects with no DOM trace: clipboard copy, storage write, a message to another window
121
+ const restore = [];
122
+ const hook = (owner, name, label) => {
123
+ if (!owner || typeof owner[name] !== 'function') return;
124
+ const original = owner[name];
125
+ owner[name] = function () { note(label); return original.apply(this, arguments); };
126
+ restore.push(() => { owner[name] = original; });
127
+ };
128
+ if (navigator.clipboard) {
129
+ hook(navigator.clipboard, 'writeText', 'clipboard write');
130
+ hook(navigator.clipboard, 'write', 'clipboard write');
131
+ }
132
+ hook(document, 'execCommand', 'execCommand');
133
+ hook(Storage.prototype, 'setItem', 'storage write');
134
+ hook(Storage.prototype, 'removeItem', 'storage write');
135
+ hook(window, 'postMessage', 'postMessage');
136
+ if (window.parent && window.parent !== window) {
137
+ try { hook(window.parent, 'postMessage', 'postMessage to parent'); } catch (e) { /* cross-origin parent */ }
138
+ }
139
+ window.__dye2eUiMut = { state: state, observer: observer, restore: restore };
140
+ return true;
141
+ }`,
142
+ /** Stops the mutation watch and returns `{ count, samples }`. */
143
+ readMutationWatch: `() => {
144
+ const w = window.__dye2eUiMut;
145
+ if (!w) return { count: -1, samples: [ 'the watch was lost (the page navigated)' ] };
146
+ w.observer.disconnect();
147
+ w.restore.forEach((undo) => undo());
148
+ delete window.__dye2eUiMut;
149
+ return w.state;
150
+ }`,
151
+ /**
152
+ * The EMPTY text input a control works on (BFR-FLEET-012, QA-1 round 128: a "Search" button pressed with its field
153
+ * empty did nothing — with a search word it filtered). Looks in the control's form / search region, else up to three
154
+ * ancestors; returns the CSS path of the single visible, empty text-like input (text, search, untyped, textarea — not
155
+ * password, e-mail or number), or null.
156
+ */
157
+ boundEmptyInput: `(selector) => {
158
+ const el = document.querySelector(selector);
159
+ if (!el) return null;
160
+ const textLike = (input) => {
161
+ if (input.tagName === 'TEXTAREA') return true;
162
+ const type = (input.getAttribute('type') || 'text').toLowerCase();
163
+ return type === 'text' || type === 'search';
164
+ };
165
+ const visible = (node) => {
166
+ const r = node.getBoundingClientRect();
167
+ const cs = getComputedStyle(node);
168
+ return r.width > 0 && r.height > 0 && cs.visibility !== 'hidden' && cs.display !== 'none';
169
+ };
170
+ const emptyInputs = (root) => Array.from(root.querySelectorAll('input, textarea'))
171
+ .filter((input) => textLike(input) && !input.disabled && !input.readOnly && !input.value && visible(input));
172
+ let found = [];
173
+ const region = el.closest('form, [role="search"]');
174
+ if (region) {
175
+ found = emptyInputs(region);
176
+ } else {
177
+ let node = el.parentElement;
178
+ for (let level = 0; level < 3 && node && !found.length; level++, node = node.parentElement) {
179
+ found = emptyInputs(node);
180
+ }
181
+ }
182
+ if (found.length !== 1) return null;
183
+ const parts = [];
184
+ let node = found[0];
185
+ while (node && node.nodeType === 1 && node !== document.documentElement) {
186
+ if (node.id && /^[A-Za-z][\\w-]*$/.test(node.id) && document.querySelectorAll('#' + node.id).length === 1) {
187
+ parts.unshift('#' + node.id);
188
+ break;
189
+ }
190
+ const tag = node.tagName.toLowerCase();
191
+ const parent = node.parentElement;
192
+ const same = parent ? Array.from(parent.children).filter((c) => c.tagName === node.tagName) : [];
193
+ parts.unshift(same.length > 1 ? tag + ':nth-of-type(' + (same.indexOf(node) + 1) + ')' : tag);
194
+ node = parent;
195
+ }
196
+ return parts.join(' > ');
197
+ }`,
198
+ /** The state of a checkbox / switch: `on`, `off` or `missing`. */
199
+ toggleState: `(selector) => {
200
+ const el = document.querySelector(selector);
201
+ if (!el) return 'missing';
202
+ if (el.tagName === 'INPUT') return el.checked ? 'on' : 'off';
203
+ return el.getAttribute('aria-checked') === 'true' ? 'on' : 'off';
204
+ }`,
205
+ /** The visible modal dialogs, with the texts of their buttons. */
206
+ openDialogs: `() => {
207
+ const dialogs = Array.from(document.querySelectorAll(
208
+ '[role="dialog"], [role="alertdialog"], mat-dialog-container, .mat-mdc-dialog-container, dialog[open]'))
209
+ .filter((d) => { const r = d.getBoundingClientRect(); return r.width > 0 && r.height > 0; });
210
+ return dialogs.map((d) => Array.from(d.querySelectorAll('button, [role="button"], a'))
211
+ .map((b) => (b.textContent || '').replace(/\\s+/g, ' ').trim()).filter(Boolean));
212
+ }`,
213
+ /**
214
+ * The two-level scroll measurement: does the DOCUMENT scroll, and is there an inner scroll container that holds the
215
+ * main content (≥ the given share of the viewport height and width)? Small inner scrollers (lists, textareas,
216
+ * drop-downs) are not counted.
217
+ */
218
+ nestedScroll: `(arg) => {
219
+ const root = document.scrollingElement || document.documentElement;
220
+ const vh = window.innerHeight;
221
+ const vw = window.innerWidth;
222
+ const documentScrolls = root.scrollHeight > vh + 1
223
+ && getComputedStyle(document.body).overflowY !== 'hidden'
224
+ && getComputedStyle(document.documentElement).overflowY !== 'hidden';
225
+ const cssPath = (el) => {
226
+ const parts = [];
227
+ let node = el;
228
+ while (node && node.nodeType === 1 && node !== document.documentElement) {
229
+ if (node.id && /^[A-Za-z][\\w-]*$/.test(node.id)) { parts.unshift('#' + node.id); break; }
230
+ const tag = node.tagName.toLowerCase();
231
+ const parent = node.parentElement;
232
+ const same = parent ? Array.from(parent.children).filter((c) => c.tagName === node.tagName) : [];
233
+ parts.unshift(same.length > 1 ? tag + ':nth-of-type(' + (same.indexOf(node) + 1) + ')' : tag);
234
+ node = parent;
235
+ }
236
+ return parts.join(' > ');
237
+ };
238
+ const inner = [];
239
+ for (const el of Array.from(document.querySelectorAll('body *'))) {
240
+ if (/^(TEXTAREA|SELECT|INPUT)$/.test(el.tagName) || el.closest('[role="listbox"], [role="menu"]')) continue;
241
+ const cs = getComputedStyle(el);
242
+ if (!/(auto|scroll|overlay)/.test(cs.overflowY) || el.scrollHeight <= el.clientHeight + 1) continue;
243
+ const r = el.getBoundingClientRect();
244
+ const visibleHeight = Math.min(r.bottom, vh) - Math.max(r.top, 0);
245
+ if (visibleHeight < vh * arg.minHeightShare || r.width < vw * arg.minWidthShare) continue;
246
+ inner.push({ selector: cssPath(el), tag: el.tagName.toLowerCase(),
247
+ className: (typeof el.className === 'string' ? el.className : '').slice(0, 80),
248
+ scrollHeight: el.scrollHeight, clientHeight: el.clientHeight, visibleHeight: Math.round(visibleHeight) });
249
+ }
250
+ return { documentScrolls: documentScrolls, documentScrollHeight: root.scrollHeight, viewportHeight: vh,
251
+ viewportWidth: vw, inner: inner.filter((a) => !inner.some((b) => b !== a && b.selector.startsWith(a.selector
252
+ + ' > '))) };
253
+ }`,
254
+ };
255
+ //# sourceMappingURL=ui-check-page-scripts.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-check-page-scripts.const.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,8BAA8B,GAAqC;IAE9E;;;OAGG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4DZ;IAEF,gHAAgH;IAChH,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkElB;IAEF,iEAAiE;IACjE,iBAAiB,EAAE;;;;;;;IAOjB;IAEF;;;;;OAKG;IACH,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwCf;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;IAKX;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;;IAMX;IAEF;;;;OAIG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCZ;CACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Page } from '@playwright/test';
2
+ import { DyE2E_UICheckContext_Interface } from '../../_models/ui-check-context.interface';
3
+ import { DyE2E_UICheckDetector_Interface, DyE2E_UICheckOrigin_Interface } from '../../_models/ui-check-detector.interface';
4
+ import { DyE2E_UICheckFinding_Interface } from '../../_models/ui-check-finding.interface';
5
+ /**
6
+ * A control that does nothing: every visible, enabled button-like control is pressed on a FRESH page (reloaded before
7
+ * each press, so the presses cannot hide each other), and the effect is measured — URL, meaningful DOM change, request,
8
+ * popup, download, native dialog. Nothing ⇒ a finding. A press that fails (the control is covered) is a finding too,
9
+ * and so is a console error the press caused.
10
+ *
11
+ * Safety (`DyE2E_UICheckGuard_Util`): test host + anonymous / throwaway account only; payment, e-mail, delete, logout,
12
+ * publish controls are never pressed; form submits are left to the form suites; mutating requests are aborted.
13
+ *
14
+ * Origin: `BL-QA-FDPUI-001` — the registration PAGE showed a close "X" that did nothing (owner, 2026-10-20).
15
+ */
16
+ export declare class DyE2E_DeadControl_Detector implements DyE2E_UICheckDetector_Interface {
17
+ readonly id: string;
18
+ readonly errorClass: string;
19
+ readonly description: string;
20
+ readonly origin: DyE2E_UICheckOrigin_Interface;
21
+ readonly interactive: boolean;
22
+ notes: string[];
23
+ run(page: Page, context: DyE2E_UICheckContext_Interface): Promise<DyE2E_UICheckFinding_Interface[]>;
24
+ /** What an empty input bound to a control is filled with before the second press. */
25
+ static readonly probeText: string;
26
+ /**
27
+ * On a fresh page: the single empty text input the control works on (its form / search region, or up to three
28
+ * ancestors) is filled with `probeText`, and the control is pressed again. `null` when there is no such input.
29
+ */
30
+ private pressWithInput;
31
+ /** The same control on the reloaded page (by tag, test id, label and text). */
32
+ private findAgain;
33
+ /** The findings of one press. */
34
+ private judge;
35
+ }
36
+ //# sourceMappingURL=dead-control.detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-control.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC3H,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAS1F;;;;;;;;;;GAUG;AACH,qBAAa,0BAA2B,YAAW,+BAA+B;IAEhF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAkB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA4B;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAmE;IAC/F,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IACrC,KAAK,EAAE,MAAM,EAAE,CAAM;IAEf,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;IA0DzG,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAO;IAExC;;;OAGG;YACW,cAAc;IAyB5B,+EAA+E;YACjE,SAAS;IAevB,iCAAiC;IACjC,OAAO,CAAC,KAAK;CAiCd"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_DeadControl_Detector = void 0;
4
+ const ui_check_page_scripts_const_1 = require("../constants/ui-check-page-scripts.const");
5
+ const ui_check_guard_util_1 = require("../ui-check-guard.util");
6
+ const ui_check_page_util_1 = require("../ui-check-page.util");
7
+ /**
8
+ * A control that does nothing: every visible, enabled button-like control is pressed on a FRESH page (reloaded before
9
+ * each press, so the presses cannot hide each other), and the effect is measured — URL, meaningful DOM change, request,
10
+ * popup, download, native dialog. Nothing ⇒ a finding. A press that fails (the control is covered) is a finding too,
11
+ * and so is a console error the press caused.
12
+ *
13
+ * Safety (`DyE2E_UICheckGuard_Util`): test host + anonymous / throwaway account only; payment, e-mail, delete, logout,
14
+ * publish controls are never pressed; form submits are left to the form suites; mutating requests are aborted.
15
+ *
16
+ * Origin: `BL-QA-FDPUI-001` — the registration PAGE showed a close "X" that did nothing (owner, 2026-10-20).
17
+ */
18
+ class DyE2E_DeadControl_Detector {
19
+ id = 'dead-control';
20
+ errorClass = 'control-without-effect';
21
+ description = 'A visible, enabled control that changes nothing when pressed.';
22
+ origin = {
23
+ code: 'BL-QA-FDPUI-001', foundBy: 'owner (+ QA-1 round 126)', date: '2026-10-20',
24
+ };
25
+ interactive = true;
26
+ notes = [];
27
+ async run(page, context) {
28
+ const guard = await ui_check_guard_util_1.DyE2E_UICheckGuard_Util.installNetworkGuard(page, context);
29
+ const findings = [];
30
+ /** Console errors the page logs without any press (background noise, e.g. a failing socket). */
31
+ const background = new Set();
32
+ this.notes = [];
33
+ try {
34
+ await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
35
+ const listed = await ui_check_page_util_1.DyE2E_UICheckPage_Util.listControls(page, context, 'press');
36
+ if (listed.denied.length) {
37
+ this.notes.push(`${listed.denied.length} control(s) not pressed (deny list): ` + listed.denied
38
+ .map((c) => `"${c.text || c.ariaLabel || c.testId}"`).join(', '));
39
+ }
40
+ for (const control of listed.controls) {
41
+ await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
42
+ // an earlier press may have changed the page for good (a stored choice) ⇒ find the control again by identity
43
+ const current = await this.findAgain(page, context, control);
44
+ if (!current) {
45
+ this.notes.push(`"${control.text || control.ariaLabel || control.testId}" (${control.selector}) was not ` +
46
+ 'found again after the reload — not measured.');
47
+ continue;
48
+ }
49
+ let effect = await ui_check_page_util_1.DyE2E_UICheckPage_Util.press(page, current.selector, guard, context, background);
50
+ // QA-1 round 128 (Adventor preset library): "Search" pressed with its field EMPTY did nothing — with a word
51
+ // it filtered. A control that works on an empty input is pressed again with the input filled.
52
+ if (!effect.pressError && !effect.hadEffect) {
53
+ const retried = await this.pressWithInput(page, context, control, guard, background);
54
+ if (retried) {
55
+ this.notes.push(`"${current.text || current.ariaLabel || current.testId}" did nothing with its input ` +
56
+ `empty; pressed again with "${DyE2E_DeadControl_Detector.probeText}" in ${retried.input}: ` +
57
+ (retried.effect.hadEffect ? 'it had an effect (not a finding)' : 'still no effect'));
58
+ effect = retried.effect;
59
+ }
60
+ }
61
+ if (context.trace) {
62
+ this.notes.push(`trace "${current.text || current.ariaLabel || current.testId}" ${current.selector}: ` +
63
+ `url ${effect.urlAfter === effect.urlBefore ? 'same' : '→ ' + effect.urlAfter}, mutations ` +
64
+ `${effect.mutations} [${effect.mutationSamples.join('; ')}], requests ${effect.requests}, popups ` +
65
+ `${effect.popups}, dialogs ${effect.nativeDialogs}, error ${effect.pressError ?? '-'}`);
66
+ }
67
+ findings.push(...this.judge(current, effect, context, listed.denied.length));
68
+ }
69
+ }
70
+ finally {
71
+ await guard.remove();
72
+ }
73
+ return findings;
74
+ }
75
+ /** What an empty input bound to a control is filled with before the second press. */
76
+ static probeText = 'a';
77
+ /**
78
+ * On a fresh page: the single empty text input the control works on (its form / search region, or up to three
79
+ * ancestors) is filled with `probeText`, and the control is pressed again. `null` when there is no such input.
80
+ */
81
+ async pressWithInput(page, context, control, guard, background) {
82
+ await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
83
+ const current = await this.findAgain(page, context, control);
84
+ if (!current) {
85
+ return null;
86
+ }
87
+ const input = await ui_check_page_util_1.DyE2E_UICheckPage_Util.evaluate(page, ui_check_page_scripts_const_1.DyE2E_UICheckPageScripts_Const['boundEmptyInput'], current.selector);
88
+ if (!input) {
89
+ return null;
90
+ }
91
+ await page.locator(input).first().fill(DyE2E_DeadControl_Detector.probeText, { timeout: 3_000 });
92
+ return { input: input,
93
+ effect: await ui_check_page_util_1.DyE2E_UICheckPage_Util.press(page, current.selector, guard, context, background) };
94
+ }
95
+ /** The same control on the reloaded page (by tag, test id, label and text). */
96
+ async findAgain(page, context, control) {
97
+ const listed = await ui_check_page_util_1.DyE2E_UICheckPage_Util.listControls(page, context, 'press');
98
+ const wanted = ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(control);
99
+ return listed.controls.find((c) => c.selector === control.selector
100
+ && ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(c) === wanted)
101
+ ?? listed.controls.find((c) => ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(c) === wanted);
102
+ }
103
+ /** The findings of one press. */
104
+ judge(control, effect, context, deniedCount) {
105
+ const label = control.text || control.ariaLabel || control.testId || control.selector;
106
+ const base = {
107
+ detector: this.id,
108
+ url: context.url,
109
+ target: ui_check_page_util_1.DyE2E_UICheckPage_Util.toTarget(control),
110
+ details: { ...effect, deniedControlsOnPage: deniedCount },
111
+ };
112
+ const findings = [];
113
+ if (effect.pressError) {
114
+ findings.push({ ...base, errorClass: 'control-not-pressable',
115
+ measured: `"${label}" is visible and enabled, but pressing it failed: ${effect.pressError}`,
116
+ expected: 'A visible, enabled control can be pressed (nothing covers it).' });
117
+ }
118
+ else if (!effect.hadEffect) {
119
+ findings.push({ ...base, errorClass: this.errorClass,
120
+ measured: `Pressing "${label}" changed nothing: same URL, no DOM change, no request, no popup, no dialog.`,
121
+ expected: 'A control does something visible when pressed — or it is not shown / shown disabled.' });
122
+ }
123
+ if (effect.consoleErrors.length) {
124
+ findings.push({ ...base, errorClass: 'console-error-on-press',
125
+ measured: `Pressing "${label}" logged ${effect.consoleErrors.length} console error(s): ` +
126
+ effect.consoleErrors.slice(0, 2).join(' | '),
127
+ expected: 'A press logs no error.' });
128
+ }
129
+ return findings;
130
+ }
131
+ }
132
+ exports.DyE2E_DeadControl_Detector = DyE2E_DeadControl_Detector;
133
+ //# sourceMappingURL=dead-control.detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-control.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Page } from '@playwright/test';
2
+ import { DyE2E_UICheckContext_Interface } from '../../_models/ui-check-context.interface';
3
+ import { DyE2E_UICheckDetector_Interface, DyE2E_UICheckOrigin_Interface } from '../../_models/ui-check-detector.interface';
4
+ import { DyE2E_UICheckFinding_Interface } from '../../_models/ui-check-finding.interface';
5
+ /**
6
+ * Two-level scrolling of the main content: the DOCUMENT scrolls AND an inner container holding the main content
7
+ * (≥ 40 % of the viewport height and width) scrolls too — so part of the page (often the footer) is reachable only
8
+ * with a second scroll. Small inner scrollers (lists, textareas, drop-downs) do not count.
9
+ *
10
+ * Origin: `BL-QA-FDPUI-003` — Master Prompter, logged in: the catalog scrolls inside a `div.flex` (2 196 px), the
11
+ * footer in the outer window (QA-1, round 126, 2026-10-20).
12
+ */
13
+ export declare class DyE2E_NestedScroll_Detector implements DyE2E_UICheckDetector_Interface {
14
+ readonly id: string;
15
+ readonly errorClass: string;
16
+ readonly description: string;
17
+ readonly origin: DyE2E_UICheckOrigin_Interface;
18
+ readonly interactive: boolean;
19
+ /** The inner container counts when it covers at least this share of the viewport height. */
20
+ static readonly minHeightShare: number;
21
+ /** …and at least this share of the viewport width. */
22
+ static readonly minWidthShare: number;
23
+ run(page: Page, context: DyE2E_UICheckContext_Interface): Promise<DyE2E_UICheckFinding_Interface[]>;
24
+ }
25
+ //# sourceMappingURL=nested-scroll.detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-scroll.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/nested-scroll.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC3H,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAc1F;;;;;;;GAOG;AACH,qBAAa,2BAA4B,YAAW,+BAA+B;IAEjF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAmB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAsB;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+E;IAC3G,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAS;IAEtC,4FAA4F;IAC5F,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAO;IAE7C,sDAAsD;IACtD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAO;IAEtC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;CAwB1G"}