@futdevpro/dynamo-e2e 1.14.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +2 -2
  3. package/bin/dye2e.js +81 -0
  4. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  5. package/build/_modules/generators/_collections/cli-runner.util.js +9 -0
  6. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  7. package/build/_modules/generators/_collections/config-validator.util.d.ts +23 -0
  8. package/build/_modules/generators/_collections/config-validator.util.d.ts.map +1 -0
  9. package/build/_modules/generators/_collections/config-validator.util.js +94 -0
  10. package/build/_modules/generators/_collections/config-validator.util.js.map +1 -0
  11. package/build/_modules/generators/_collections/json-schema.util.d.ts +16 -0
  12. package/build/_modules/generators/_collections/json-schema.util.d.ts.map +1 -0
  13. package/build/_modules/generators/_collections/json-schema.util.js +190 -0
  14. package/build/_modules/generators/_collections/json-schema.util.js.map +1 -0
  15. package/build/_modules/generators/_collections/preset-configs.const.d.ts +14 -0
  16. package/build/_modules/generators/_collections/preset-configs.const.d.ts.map +1 -0
  17. package/build/_modules/generators/_collections/preset-configs.const.js +76 -0
  18. package/build/_modules/generators/_collections/preset-configs.const.js.map +1 -0
  19. package/build/_modules/generators/config-validator.spec.d.ts +2 -0
  20. package/build/_modules/generators/config-validator.spec.d.ts.map +1 -0
  21. package/build/_modules/generators/config-validator.spec.js +115 -0
  22. package/build/_modules/generators/config-validator.spec.js.map +1 -0
  23. package/build/_modules/generators/index.d.ts +3 -0
  24. package/build/_modules/generators/index.d.ts.map +1 -1
  25. package/build/_modules/generators/index.js +3 -0
  26. package/build/_modules/generators/index.js.map +1 -1
  27. package/build/_modules/generators/json-schema.spec.d.ts +2 -0
  28. package/build/_modules/generators/json-schema.spec.d.ts.map +1 -0
  29. package/build/_modules/generators/json-schema.spec.js +81 -0
  30. package/build/_modules/generators/json-schema.spec.js.map +1 -0
  31. package/build/_modules/generators/preset-configs.spec.d.ts +2 -0
  32. package/build/_modules/generators/preset-configs.spec.d.ts.map +1 -0
  33. package/build/_modules/generators/preset-configs.spec.js +53 -0
  34. package/build/_modules/generators/preset-configs.spec.js.map +1 -0
  35. package/coverage/contracts/_collections/index.html +1 -1
  36. package/coverage/contracts/_collections/index.ts.html +1 -1
  37. package/coverage/contracts/_collections/utils/index.html +1 -1
  38. package/coverage/contracts/_collections/utils/test-id.util.ts.html +8 -8
  39. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  40. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  41. package/coverage/contracts/_enums/index.html +1 -1
  42. package/coverage/contracts/_enums/index.ts.html +1 -1
  43. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  44. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  45. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  46. package/coverage/contracts/index.html +1 -1
  47. package/coverage/contracts/index.ts.html +1 -1
  48. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  49. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +1 -1
  50. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  51. package/coverage/cwv/_collections/cwv-emission.util.ts.html +104 -104
  52. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  53. package/coverage/cwv/_collections/index.html +5 -5
  54. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  55. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  56. package/coverage/cwv/cwv-suite.generator.ts.html +44 -44
  57. package/coverage/cwv/index.html +3 -3
  58. package/coverage/generators/_collections/cli-runner.util.ts.html +80 -53
  59. package/coverage/generators/_collections/config-validator.util.ts.html +397 -0
  60. package/coverage/generators/_collections/field-emission.util.ts.html +86 -86
  61. package/coverage/generators/_collections/form-level-emission.util.ts.html +34 -34
  62. package/coverage/generators/_collections/index.html +65 -20
  63. package/coverage/generators/_collections/json-schema.util.ts.html +652 -0
  64. package/coverage/generators/_collections/preset-configs.const.ts.html +328 -0
  65. package/coverage/generators/_collections/spec-emission.util.ts.html +32 -32
  66. package/coverage/generators/_collections/test-case-filter.util.ts.html +64 -64
  67. package/coverage/generators/_collections/viewport-emission.util.ts.html +58 -58
  68. package/coverage/generators/form-suite.generator.ts.html +70 -70
  69. package/coverage/generators/index.html +6 -6
  70. package/coverage/generators/viewport-suite.generator.ts.html +48 -48
  71. package/coverage/index.html +23 -23
  72. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  73. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  74. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  75. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +8 -8
  76. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  77. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  78. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  79. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  80. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  81. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  82. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  83. package/coverage/lcov-report/contracts/index.html +1 -1
  84. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  85. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  86. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +1 -1
  87. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  88. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +104 -104
  89. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  90. package/coverage/lcov-report/cwv/_collections/index.html +5 -5
  91. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  92. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  93. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +44 -44
  94. package/coverage/lcov-report/cwv/index.html +3 -3
  95. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +80 -53
  96. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +397 -0
  97. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +86 -86
  98. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +34 -34
  99. package/coverage/lcov-report/generators/_collections/index.html +65 -20
  100. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +652 -0
  101. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +328 -0
  102. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +32 -32
  103. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +64 -64
  104. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +58 -58
  105. package/coverage/lcov-report/generators/form-suite.generator.ts.html +70 -70
  106. package/coverage/lcov-report/generators/index.html +6 -6
  107. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +48 -48
  108. package/coverage/lcov-report/index.html +23 -23
  109. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  110. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  111. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  112. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  113. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  114. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  115. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  116. package/coverage/lcov-report/runtime/_services/index.html +1 -1
  117. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  118. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  119. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  120. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  121. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  122. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  123. package/coverage/lcov-report/runtime/index.html +1 -1
  124. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  125. package/coverage/lcov.info +1352 -878
  126. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  127. package/coverage/runtime/_collections/index.html +1 -1
  128. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  129. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  130. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  131. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  132. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  133. package/coverage/runtime/_services/index.html +1 -1
  134. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  135. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  136. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  137. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  138. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  139. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  140. package/coverage/runtime/index.html +1 -1
  141. package/coverage/runtime/index.ts.html +1 -1
  142. package/coverage/tmp/{coverage-207124-1781074674403-0.json → coverage-228636-1781075225757-0.json} +1 -1
  143. package/coverage/tmp/coverage-228704-1781075227108-0.json +1 -0
  144. package/package.json +1 -1
  145. package/coverage/tmp/coverage-142636-1781074676409-0.json +0 -1
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DYE2E_PRESET_REGISTRY = exports.DYE2E_PRESET_CWV_DIAG_STANDARD = exports.DYE2E_PRESET_VIEWPORT_AUDIT_STANDARD = exports.DYE2E_PRESET_REGISTER_FORM = exports.DYE2E_PRESET_LOGIN_FORM = void 0;
4
+ const test_run_mode_type_enum_1 = require("../../contracts/_enums/test-run-mode-type.enum");
5
+ /**
6
+ * Preset config templates — consumer-projekt copy-paste-eli ezeket
7
+ * a `dye2e generate-*` parancsok-hoz.
8
+ */
9
+ exports.DYE2E_PRESET_LOGIN_FORM = {
10
+ formSettings: {
11
+ key: 'login',
12
+ fields: [
13
+ { key: 'email', type: 'text', label: 'Email', required: true, maxLength: 254, testId: 'login-email' },
14
+ { key: 'password', type: 'password', label: 'Password', required: true, minLength: 8, maxLength: 128, testId: 'login-password' },
15
+ { key: 'rememberMe', type: 'checkbox', label: 'Remember me', required: false, testId: 'login-remember' },
16
+ ],
17
+ },
18
+ formRoute: '/login',
19
+ formSelector: 'dynamo-form-new',
20
+ suiteSettings: {
21
+ runMode: test_run_mode_type_enum_1.DyE2E_TestRunMode_Type.full,
22
+ describePrefix: 'Login form',
23
+ },
24
+ };
25
+ exports.DYE2E_PRESET_REGISTER_FORM = {
26
+ formSettings: {
27
+ key: 'register',
28
+ fields: [
29
+ { key: 'username', type: 'text', label: 'Username', required: true, minLength: 3, maxLength: 32, testId: 'register-username' },
30
+ { key: 'email', type: 'text', label: 'Email', required: true, maxLength: 254, testId: 'register-email' },
31
+ { key: 'password', type: 'password', label: 'Password', required: true, minLength: 8, maxLength: 128, testId: 'register-password' },
32
+ { key: 'passwordConfirm', type: 'password', label: 'Confirm Password', required: true, minLength: 8, testId: 'register-password-confirm' },
33
+ { key: 'acceptedTerms', type: 'checkbox', label: 'Accept terms', required: true, testId: 'register-accepted-terms' },
34
+ ],
35
+ },
36
+ formRoute: '/register',
37
+ formSelector: 'dynamo-form-new',
38
+ suiteSettings: {
39
+ runMode: test_run_mode_type_enum_1.DyE2E_TestRunMode_Type.full,
40
+ describePrefix: 'Register form',
41
+ },
42
+ };
43
+ exports.DYE2E_PRESET_VIEWPORT_AUDIT_STANDARD = {
44
+ routes: [
45
+ { key: 'home', label: 'Home', path: '/' },
46
+ { key: 'login', label: 'Login', path: '/login' },
47
+ ],
48
+ themes: ['dark'],
49
+ checkOverflow: true,
50
+ checkTouchTargets: true,
51
+ takeScreenshot: true,
52
+ screenshotDir: 'e2e/screenshots',
53
+ };
54
+ exports.DYE2E_PRESET_CWV_DIAG_STANDARD = {
55
+ routes: [
56
+ { key: 'home', label: 'Home', path: '/' },
57
+ { key: 'login', label: 'Login', path: '/login' },
58
+ ],
59
+ iterationsPerRoute: 5,
60
+ thresholds: {
61
+ lcp_p75_ms: 2500,
62
+ cls_p75: 0.1,
63
+ inp_p75_ms: 200,
64
+ ttfb_p75_ms: 800,
65
+ fcp_p75_ms: 1800,
66
+ },
67
+ reportDir: 'e2e/cwv-report',
68
+ };
69
+ /** Map a preset-kulcsoktol a config-objektumig — `dye2e preset --name <key>` parancshoz. */
70
+ exports.DYE2E_PRESET_REGISTRY = {
71
+ 'login-form': exports.DYE2E_PRESET_LOGIN_FORM,
72
+ 'register-form': exports.DYE2E_PRESET_REGISTER_FORM,
73
+ 'viewport-audit-standard': exports.DYE2E_PRESET_VIEWPORT_AUDIT_STANDARD,
74
+ 'cwv-diag-standard': exports.DYE2E_PRESET_CWV_DIAG_STANDARD,
75
+ };
76
+ //# sourceMappingURL=preset-configs.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-configs.const.js","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/preset-configs.const.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-validator.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/config-validator.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config_validator_util_1 = require("./_collections/config-validator.util");
4
+ const json_schema_util_1 = require("./_collections/json-schema.util");
5
+ describe('| dynamo-e2e | Config Validator', () => {
6
+ describe('| Type check', () => {
7
+ it('| valid string', () => {
8
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate('hello', { type: 'string' });
9
+ expect(errors.length).toBe(0);
10
+ });
11
+ it('| invalid type — number ≠ string', () => {
12
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(42, { type: 'string' });
13
+ expect(errors.length).toBe(1);
14
+ expect(errors[0].message).toContain('expected type "string"');
15
+ });
16
+ it('| array type', () => {
17
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate([], { type: 'array' });
18
+ expect(errors.length).toBe(0);
19
+ });
20
+ it('| union type [number, string]', () => {
21
+ expect(config_validator_util_1.DyE2E_ConfigValidator_Util.validate(1, { type: ['number', 'string'] }).length).toBe(0);
22
+ expect(config_validator_util_1.DyE2E_ConfigValidator_Util.validate('a', { type: ['number', 'string'] }).length).toBe(0);
23
+ expect(config_validator_util_1.DyE2E_ConfigValidator_Util.validate(true, { type: ['number', 'string'] }).length).toBe(1);
24
+ });
25
+ });
26
+ describe('| Required fields', () => {
27
+ it('| missing required → error', () => {
28
+ const schema = { type: 'object', required: ['name'], properties: { name: { type: 'string' } } };
29
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate({}, schema);
30
+ expect(errors.length).toBe(1);
31
+ expect(errors[0].path).toBe('$.name');
32
+ expect(errors[0].message).toContain('required property missing');
33
+ });
34
+ it('| present required → ok', () => {
35
+ const schema = { type: 'object', required: ['name'], properties: { name: { type: 'string' } } };
36
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate({ name: 'foo' }, schema);
37
+ expect(errors.length).toBe(0);
38
+ });
39
+ });
40
+ describe('| Enum check', () => {
41
+ it('| value in enum', () => {
42
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate('a', { enum: ['a', 'b'] });
43
+ expect(errors.length).toBe(0);
44
+ });
45
+ it('| value NOT in enum', () => {
46
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate('x', { enum: ['a', 'b'] });
47
+ expect(errors.length).toBe(1);
48
+ expect(errors[0].message).toContain('not in enum');
49
+ });
50
+ });
51
+ describe('| Number minimum', () => {
52
+ it('| below minimum', () => {
53
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(-1, { type: 'number', minimum: 0 });
54
+ expect(errors.length).toBe(1);
55
+ });
56
+ it('| above minimum', () => {
57
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(5, { type: 'number', minimum: 0 });
58
+ expect(errors.length).toBe(0);
59
+ });
60
+ });
61
+ describe('| Array minItems', () => {
62
+ it('| minItems violation', () => {
63
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate([], { type: 'array', items: { type: 'string' }, minItems: 1 });
64
+ expect(errors.length).toBeGreaterThanOrEqual(1);
65
+ });
66
+ });
67
+ describe('| Real-world form-suite validation', () => {
68
+ it('| valid form-config', () => {
69
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
70
+ const config = {
71
+ formSettings: { key: 'login', fields: [{ key: 'email', type: 'text' }] },
72
+ formRoute: '/login',
73
+ };
74
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(config, schema);
75
+ expect(errors.length).toBe(0);
76
+ });
77
+ it('| missing formRoute → error', () => {
78
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
79
+ const config = { formSettings: { key: 'login', fields: [{ key: 'email', type: 'text' }] } };
80
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(config, schema);
81
+ expect(errors.length).toBe(1);
82
+ expect(errors[0].path).toBe('$.formRoute');
83
+ });
84
+ it('| invalid field-type → error', () => {
85
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
86
+ const config = {
87
+ formSettings: { key: 'x', fields: [{ key: 'a', type: 'unknown-type' }] },
88
+ formRoute: '/x',
89
+ };
90
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(config, schema);
91
+ const typeError = errors.find(e => e.path.includes('type'));
92
+ expect(typeError).toBeDefined();
93
+ expect(typeError?.message).toContain('not in enum');
94
+ });
95
+ });
96
+ describe('| Real-world cwv-diag validation', () => {
97
+ it('| valid cwv-config', () => {
98
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
99
+ const config = {
100
+ routes: [{ key: 'home', path: '/' }],
101
+ iterationsPerRoute: 5,
102
+ thresholds: { lcp_p75_ms: 2500 },
103
+ };
104
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(config, schema);
105
+ expect(errors.length).toBe(0);
106
+ });
107
+ it('| negative iterations → error', () => {
108
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
109
+ const config = { routes: [{ key: 'home', path: '/' }], iterationsPerRoute: -1 };
110
+ const errors = config_validator_util_1.DyE2E_ConfigValidator_Util.validate(config, schema);
111
+ expect(errors.find(e => e.message.includes('minimum'))).toBeDefined();
112
+ });
113
+ });
114
+ });
115
+ //# sourceMappingURL=config-validator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.spec.js","sourceRoot":"","sources":["../../../src/_modules/generators/config-validator.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  export * from './_collections/cli-runner.util';
2
+ export * from './_collections/config-validator.util';
3
+ export * from './_collections/json-schema.util';
4
+ export * from './_collections/preset-configs.const';
2
5
  export * from './_collections/field-emission.util';
3
6
  export * from './_collections/form-level-emission.util';
4
7
  export * from './_collections/spec-emission.util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
@@ -15,6 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./_collections/cli-runner.util"), exports);
18
+ __exportStar(require("./_collections/config-validator.util"), exports);
19
+ __exportStar(require("./_collections/json-schema.util"), exports);
20
+ __exportStar(require("./_collections/preset-configs.const"), exports);
18
21
  __exportStar(require("./_collections/field-emission.util"), exports);
19
22
  __exportStar(require("./_collections/form-level-emission.util"), exports);
20
23
  __exportStar(require("./_collections/spec-emission.util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,qEAAmD;AACnD,0EAAwD;AACxD,oEAAkD;AAClD,uEAAqD;AACrD,wEAAsD;AACtD,kDAAgC;AAChC,yDAAuC;AACvC,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,uEAAqD;AACrD,kEAAgD;AAChD,sEAAoD;AACpD,qEAAmD;AACnD,0EAAwD;AACxD,oEAAkD;AAClD,uEAAqD;AACrD,wEAAsD;AACtD,kDAAgC;AAChC,yDAAuC;AACvC,6DAA2C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=json-schema.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/json-schema.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const json_schema_util_1 = require("./_collections/json-schema.util");
4
+ describe('| dynamo-e2e | JSON Schema generator', () => {
5
+ describe('| formSuiteSchema', () => {
6
+ it('| draft-07 + title + required mezok', () => {
7
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
8
+ expect(schema.$schema).toBe('http://json-schema.org/draft-07/schema#');
9
+ expect(schema.title).toContain('FormSuite');
10
+ expect(schema.required).toContain('formSettings');
11
+ expect(schema.required).toContain('formRoute');
12
+ });
13
+ it('| field-type enum lefedi a 18 type-ot', () => {
14
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
15
+ const typeEnum = schema.properties.formSettings.properties.fields.items.properties.type.enum;
16
+ expect(typeEnum).toContain('text');
17
+ expect(typeEnum).toContain('chipSelect');
18
+ expect(typeEnum).toContain('autocomplete');
19
+ expect(typeEnum).toContain('richtextarea');
20
+ expect(typeEnum.length).toBeGreaterThanOrEqual(18);
21
+ });
22
+ it('| runMode enum: smoke/full/nightly', () => {
23
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.formSuiteSchema();
24
+ const runMode = schema.properties.suiteSettings.properties.runMode.enum;
25
+ expect(runMode).toEqual(['smoke', 'full', 'nightly']);
26
+ });
27
+ });
28
+ describe('| viewportSuiteSchema', () => {
29
+ it('| routes required + items shape', () => {
30
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.viewportSuiteSchema();
31
+ expect(schema.required).toContain('routes');
32
+ const route = schema.properties.routes.items;
33
+ expect(route.required).toEqual(['key', 'path']);
34
+ });
35
+ it('| themes enum: dark/light', () => {
36
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.viewportSuiteSchema();
37
+ const themes = schema.properties.themes.items.enum;
38
+ expect(themes).toEqual(['dark', 'light']);
39
+ });
40
+ it('| viewport-shape: key + width + height required', () => {
41
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.viewportSuiteSchema();
42
+ const vp = schema.properties.viewports.items;
43
+ expect(vp.required).toEqual(['key', 'width', 'height']);
44
+ });
45
+ });
46
+ describe('| cwvSuiteSchema', () => {
47
+ it('| thresholds-mezo a 5 metric-re', () => {
48
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
49
+ const t = schema.properties.thresholds.properties;
50
+ expect(t.lcp_p75_ms).toBeDefined();
51
+ expect(t.cls_p75).toBeDefined();
52
+ expect(t.inp_p75_ms).toBeDefined();
53
+ expect(t.ttfb_p75_ms).toBeDefined();
54
+ expect(t.fcp_p75_ms).toBeDefined();
55
+ });
56
+ it('| per-route cwvThresholds is jelen', () => {
57
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
58
+ const route = schema.properties.routes.items;
59
+ expect(route.properties.cwvThresholds).toBeDefined();
60
+ });
61
+ it('| networkThrottle enum: none/3g/4g/fast-3g', () => {
62
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
63
+ const nt = schema.properties.networkThrottle.enum;
64
+ expect(nt).toContain('none');
65
+ expect(nt).toContain('3g');
66
+ expect(nt).toContain('4g');
67
+ });
68
+ it('| iterationsPerRoute minimum: 1', () => {
69
+ const schema = json_schema_util_1.DyE2E_JsonSchema_Util.cwvSuiteSchema();
70
+ const iter = schema.properties.iterationsPerRoute;
71
+ expect(iter.minimum).toBe(1);
72
+ });
73
+ });
74
+ it('| helpText "schema" parancsot megemlít', () => {
75
+ const { DyE2E_CliRunner_Util } = require('./_collections/cli-runner.util');
76
+ const help = DyE2E_CliRunner_Util.helpText();
77
+ expect(help).toContain('schema');
78
+ expect(help).toContain('--type');
79
+ });
80
+ });
81
+ //# sourceMappingURL=json-schema.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.spec.js","sourceRoot":"","sources":["../../../src/_modules/generators/json-schema.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=preset-configs.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-configs.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/generators/preset-configs.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const preset_configs_const_1 = require("./_collections/preset-configs.const");
4
+ const form_suite_generator_1 = require("./form-suite.generator");
5
+ const viewport_suite_generator_1 = require("./viewport-suite.generator");
6
+ const cwv_suite_generator_1 = require("../cwv/cwv-suite.generator");
7
+ describe('| dynamo-e2e | preset config templates', () => {
8
+ it('| LOGIN preset valid emit-elhető form-suite-tá', () => {
9
+ const spec = form_suite_generator_1.DyE2E_FormSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_LOGIN_FORM);
10
+ expect(spec).toContain(`test.describe('Login form'`);
11
+ expect(spec).toContain('login-email');
12
+ expect(spec).toContain('login-password');
13
+ });
14
+ it('| REGISTER preset valid emit-elhető form-suite-tá', () => {
15
+ const spec = form_suite_generator_1.DyE2E_FormSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_REGISTER_FORM);
16
+ expect(spec).toContain(`test.describe('Register form'`);
17
+ expect(spec).toContain('register-username');
18
+ expect(spec).toContain('register-password-confirm');
19
+ });
20
+ it('| VIEWPORT_AUDIT preset valid emit-elhető viewport-suite-tá', () => {
21
+ const spec = viewport_suite_generator_1.DyE2E_ViewportSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_VIEWPORT_AUDIT_STANDARD);
22
+ expect(spec).toContain('Viewport audit');
23
+ expect(spec).toContain('home');
24
+ expect(spec).toContain('login');
25
+ });
26
+ it('| CWV_DIAG preset valid emit-elhető CWV-suite-tá', () => {
27
+ const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_CWV_DIAG_STANDARD);
28
+ expect(spec).toContain('CWV diagnostics');
29
+ expect(spec).toContain('LCP threshold 2500ms');
30
+ expect(spec).toContain('INP threshold 200ms');
31
+ });
32
+ it('| PRESET_REGISTRY tartalmazza mind a 4 preset-et', () => {
33
+ expect(preset_configs_const_1.DYE2E_PRESET_REGISTRY['login-form']).toBeDefined();
34
+ expect(preset_configs_const_1.DYE2E_PRESET_REGISTRY['register-form']).toBeDefined();
35
+ expect(preset_configs_const_1.DYE2E_PRESET_REGISTRY['viewport-audit-standard']).toBeDefined();
36
+ expect(preset_configs_const_1.DYE2E_PRESET_REGISTRY['cwv-diag-standard']).toBeDefined();
37
+ });
38
+ });
39
+ describe('| dynamo-e2e | E2E lifecycle smoke', () => {
40
+ it('| LOGIN preset → emit + summary-pattern check', () => {
41
+ // Lifecycle: preset → emit → assert spec-shape
42
+ const spec = form_suite_generator_1.DyE2E_FormSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_LOGIN_FORM);
43
+ expect(spec.length).toBeGreaterThan(1000);
44
+ expect(spec).toContain('Auto-generated by @futdevpro/dynamo-e2e');
45
+ expect(spec).toContain(`from '@playwright/test'`);
46
+ });
47
+ it('| CWV preset → INP threshold-tal emit-eli az INP scriptet', () => {
48
+ const spec = cwv_suite_generator_1.DyE2E_CWVSuite_Generator.emit(preset_configs_const_1.DYE2E_PRESET_CWV_DIAG_STANDARD);
49
+ expect(spec).toContain('DYE2E_INP_PAGE_SCRIPT');
50
+ expect(spec).toContain('mouse.click');
51
+ });
52
+ });
53
+ //# sourceMappingURL=preset-configs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-configs.spec.js","sourceRoot":"","sources":["../../../src/_modules/generators/preset-configs.spec.ts"],"names":[],"mappings":"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"}
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-10T06:57:56.936Z
104
+ at 2026-06-10T07:07:07.536Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -82,7 +82,7 @@ export * from './test-case-sets/field-type-registry.const';
82
82
  <div class='footer quiet pad2 space-top1 center small'>
83
83
  Code coverage generated by
84
84
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
85
- at 2026-06-10T06:57:56.936Z
85
+ at 2026-06-10T07:07:07.536Z
86
86
  </div>
87
87
  <script src="../../prettify.js"></script>
88
88
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-10T06:57:56.936Z
104
+ at 2026-06-10T07:07:07.536Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -107,19 +107,19 @@
107
107
  <span class="cline-any cline-yes">1x</span>
108
108
  <span class="cline-any cline-yes">1x</span>
109
109
  <span class="cline-any cline-yes">1x</span>
110
- <span class="cline-any cline-yes">15x</span>
111
- <span class="cline-any cline-yes">15x</span>
110
+ <span class="cline-any cline-yes">18x</span>
111
+ <span class="cline-any cline-yes">18x</span>
112
112
  <span class="cline-any cline-yes">1x</span>
113
113
  <span class="cline-any cline-yes">1x</span>
114
114
  <span class="cline-any cline-yes">3x</span>
115
115
  <span class="cline-any cline-yes">3x</span>
116
116
  <span class="cline-any cline-yes">1x</span>
117
117
  <span class="cline-any cline-yes">1x</span>
118
- <span class="cline-any cline-yes">231x</span>
119
- <span class="cline-any cline-yes">231x</span>
120
- <span class="cline-any cline-yes">231x</span>
121
- <span class="cline-any cline-yes">231x</span>
122
- <span class="cline-any cline-yes">231x</span>
118
+ <span class="cline-any cline-yes">234x</span>
119
+ <span class="cline-any cline-yes">234x</span>
120
+ <span class="cline-any cline-yes">234x</span>
121
+ <span class="cline-any cline-yes">234x</span>
122
+ <span class="cline-any cline-yes">234x</span>
123
123
  <span class="cline-any cline-yes">1x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
125
125
  * Selector-konvenció util-ok a generator + runtime közös testId-formálásához.
@@ -157,7 +157,7 @@ export class DyE2E_TestId_Util {
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
160
- at 2026-06-10T06:57:56.936Z
160
+ at 2026-06-10T07:07:07.536Z
161
161
  </div>
162
162
  <script src="../../../prettify.js"></script>
163
163
  <script>
@@ -130,7 +130,7 @@ export enum DyE2E_CWVMetric_Type {
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
133
- at 2026-06-10T06:57:56.936Z
133
+ at 2026-06-10T07:07:07.536Z
134
134
  </div>
135
135
  <script src="../../prettify.js"></script>
136
136
  <script>
@@ -379,7 +379,7 @@ export enum DyE2E_FieldTestCase_Type {
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
382
- at 2026-06-10T06:57:56.936Z
382
+ at 2026-06-10T07:07:07.536Z
383
383
  </div>
384
384
  <script src="../../prettify.js"></script>
385
385
  <script>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2026-06-10T06:57:56.936Z
179
+ at 2026-06-10T07:07:07.536Z
180
180
  </div>
181
181
  <script src="../../prettify.js"></script>
182
182
  <script>
@@ -85,7 +85,7 @@ export * from './test-run-mode-type.enum';
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at 2026-06-10T06:57:56.936Z
88
+ at 2026-06-10T07:07:07.536Z
89
89
  </div>
90
90
  <script src="../../prettify.js"></script>
91
91
  <script>
@@ -112,7 +112,7 @@ export enum DyE2E_StandardViewport_Type {
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at 2026-06-10T06:57:56.936Z
115
+ at 2026-06-10T07:07:07.536Z
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -118,7 +118,7 @@ export enum DyE2E_TestExpectation_Type {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at 2026-06-10T06:57:56.936Z
121
+ at 2026-06-10T07:07:07.536Z
122
122
  </div>
123
123
  <script src="../../prettify.js"></script>
124
124
  <script>
@@ -115,7 +115,7 @@ export enum DyE2E_TestRunMode_Type {
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at 2026-06-10T06:57:56.936Z
118
+ at 2026-06-10T07:07:07.536Z
119
119
  </div>
120
120
  <script src="../../prettify.js"></script>
121
121
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-10T06:57:56.936Z
104
+ at 2026-06-10T07:07:07.536Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -106,7 +106,7 @@ export * from './_collections/utils/test-id.util';
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-06-10T06:57:56.936Z
109
+ at 2026-06-10T07:07:07.536Z
110
110
  </div>
111
111
  <script src="../prettify.js"></script>
112
112
  <script>
@@ -226,7 +226,7 @@ export class DyE2E_CWVAggregator_Util {
226
226
  <div class='footer quiet pad2 space-top1 center small'>
227
227
  Code coverage generated by
228
228
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
229
- at 2026-06-10T06:57:56.936Z
229
+ at 2026-06-10T07:07:07.536Z
230
230
  </div>
231
231
  <script src="../../prettify.js"></script>
232
232
  <script>
@@ -340,7 +340,7 @@ export class DyE2E_CWVComparison_Util {
340
340
  <div class='footer quiet pad2 space-top1 center small'>
341
341
  Code coverage generated by
342
342
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at 2026-06-10T06:57:56.936Z
343
+ at 2026-06-10T07:07:07.536Z
344
344
  </div>
345
345
  <script src="../../prettify.js"></script>
346
346
  <script>
@@ -538,7 +538,7 @@ export class DyE2E_CWVDiagnose_Util {
538
538
  <div class='footer quiet pad2 space-top1 center small'>
539
539
  Code coverage generated by
540
540
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
541
- at 2026-06-10T06:57:56.936Z
541
+ at 2026-06-10T07:07:07.536Z
542
542
  </div>
543
543
  <script src="../../prettify.js"></script>
544
544
  <script>