testeranto 0.172.0 → 0.177.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 (203) hide show
  1. package/README.md +2 -4
  2. package/dist/common/src/PM/base.js +5 -1
  3. package/dist/common/src/PM/main.js +57 -54
  4. package/dist/common/src/PM/node.js +4 -1
  5. package/dist/common/src/PM/pure.js +4 -1
  6. package/dist/common/src/PM/web.js +6 -3
  7. package/dist/common/src/Pure.js +0 -4
  8. package/dist/common/src/Pure.test.js +1 -1
  9. package/dist/common/src/ReportServer.js +2 -126
  10. package/dist/common/src/ReportServer.test.ts/index.js +78 -0
  11. package/dist/common/src/ReportServerLib.js +141 -0
  12. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  13. package/dist/common/src/esbuildConfigs/node.js +1 -3
  14. package/dist/common/src/lib/BaseSuite.js +13 -11
  15. package/dist/common/src/lib/abstractBase.js +39 -40
  16. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  17. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  18. package/dist/common/src/lib/basebuilder.js +13 -2
  19. package/dist/common/src/lib/core.js +1 -0
  20. package/dist/common/src/lib/pmProxy.js +215 -201
  21. package/dist/common/src/lib/pmProxy.test/adapter.js +2 -2
  22. package/dist/common/src/lib/pmProxy.test/implementation.js +1 -1
  23. package/dist/common/testeranto.config.js +47 -32
  24. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  25. package/dist/module/src/PM/base.js +5 -1
  26. package/dist/module/src/PM/main.js +22 -19
  27. package/dist/module/src/PM/node.js +4 -1
  28. package/dist/module/src/PM/pure.js +4 -1
  29. package/dist/module/src/PM/web.js +6 -3
  30. package/dist/module/src/Pure.js +0 -4
  31. package/dist/module/src/Pure.test.js +1 -1
  32. package/dist/module/src/ReportServer.js +2 -123
  33. package/dist/module/src/ReportServer.test.ts/index.js +73 -0
  34. package/dist/module/src/ReportServerLib.js +134 -0
  35. package/dist/module/src/TestPage.js +29 -17
  36. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  37. package/dist/module/src/components/pure/TestPageView.js +29 -17
  38. package/dist/module/src/esbuildConfigs/node.js +1 -3
  39. package/dist/module/src/lib/BaseSuite.js +13 -11
  40. package/dist/module/src/lib/abstractBase.js +39 -40
  41. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  42. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  43. package/dist/module/src/lib/basebuilder.js +13 -2
  44. package/dist/module/src/lib/core.js +1 -0
  45. package/dist/module/src/lib/pmProxy.js +215 -201
  46. package/dist/module/src/lib/pmProxy.test/adapter.js +2 -2
  47. package/dist/module/src/lib/pmProxy.test/implementation.js +1 -1
  48. package/dist/module/testeranto.config.js +47 -32
  49. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  50. package/dist/prebuild/App.js +3 -3
  51. package/dist/prebuild/ReportServer.mjs +21 -9
  52. package/dist/prebuild/build.mjs +1 -1
  53. package/dist/prebuild/run.mjs +27 -20
  54. package/dist/types/src/PM/base.d.ts +1 -1
  55. package/dist/types/src/PM/node.d.ts +1 -1
  56. package/dist/types/src/PM/pure.d.ts +1 -1
  57. package/dist/types/src/PM/web.d.ts +1 -1
  58. package/dist/types/src/ReportServer.test.ts/index.d.ts +29 -0
  59. package/dist/types/src/ReportServerLib.d.ts +1 -0
  60. package/dist/types/src/Types.d.ts +0 -1
  61. package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +2 -1
  62. package/dist/types/src/lib/BaseSuite.d.ts +2 -0
  63. package/dist/types/src/lib/abstractBase.d.ts +5 -7
  64. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +7 -4
  65. package/dist/types/src/lib/pmProxy.d.ts +3 -3
  66. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  67. package/package.json +3 -3
  68. package/src/PM/base.ts +7 -5
  69. package/src/PM/main.ts +26 -21
  70. package/src/PM/node.ts +6 -1
  71. package/src/PM/pure.ts +6 -1
  72. package/src/PM/web.ts +7 -3
  73. package/src/Pure.test.ts +6 -6
  74. package/src/Pure.ts +0 -8
  75. package/src/ReportServer.test.ts/index.ts +194 -0
  76. package/src/ReportServer.ts +2 -132
  77. package/src/ReportServerLib.ts +147 -0
  78. package/src/TestPage.tsx +65 -5
  79. package/src/Types.ts +0 -1
  80. package/src/components/pure/ProjectPageView.test/implementation.tsx +1 -1
  81. package/src/components/pure/TestPageView.tsx +65 -5
  82. package/src/esbuildConfigs/node.ts +1 -1
  83. package/src/lib/BaseSuite.ts +16 -21
  84. package/src/lib/abstractBase.ts +59 -48
  85. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +22 -10
  86. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +9 -9
  87. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +7 -4
  88. package/src/lib/basebuilder.ts +13 -4
  89. package/src/lib/core.ts +1 -0
  90. package/src/lib/pmProxy.test/adapter.ts +2 -2
  91. package/src/lib/pmProxy.test/implementation.ts +3 -3
  92. package/src/lib/pmProxy.test/types.ts +0 -2
  93. package/src/lib/pmProxy.ts +135 -80
  94. package/testeranto/App.js +3 -3
  95. package/testeranto/bundles/node/core/metafile.json +8 -0
  96. package/testeranto/bundles/pure/core/metafile.json +8 -0
  97. package/testeranto/bundles/web/core/metafile.json +15086 -0
  98. package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.html +1 -1
  99. package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.mjs +4109 -1642
  100. package/testeranto/projects.json +1 -1
  101. package/testeranto/reports/core/config.json +24 -0
  102. package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +6 -1
  103. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +59 -0
  104. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +2 -0
  105. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +27 -0
  106. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
  107. package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +15 -33
  108. package/testeranto/reports/core/summary.json +9 -0
  109. package/testeranto.config.ts +49 -32
  110. package/tsc.log +78 -92
  111. package/testeranto/bundles/node/allTests/chunk-3EUGBAOM.mjs +0 -113
  112. package/testeranto/bundles/node/allTests/chunk-E75CSRER.mjs +0 -800
  113. package/testeranto/bundles/node/allTests/chunk-M6DO7VMB.mjs +0 -252
  114. package/testeranto/bundles/node/allTests/metafile.json +0 -1229
  115. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test/node.test.mjs +0 -323
  116. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -223
  117. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +0 -411
  118. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +0 -528
  119. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +0 -4752
  120. package/testeranto/bundles/pure/allTests/chunk-KHDVEHF7.mjs +0 -185
  121. package/testeranto/bundles/pure/allTests/chunk-VMUSFSZM.mjs +0 -797
  122. package/testeranto/bundles/pure/allTests/metafile.json +0 -1054
  123. package/testeranto/bundles/pure/allTests/src/Pure.test.mjs +0 -429
  124. package/testeranto/bundles/pure/allTests/src/lib/BaseSuite.test/pure.test.mjs +0 -425
  125. package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -381
  126. package/testeranto/bundles/web/allTests/chunk-HPYA4YZC.mjs +0 -2283
  127. package/testeranto/bundles/web/allTests/chunk-U7AW26HL.mjs +0 -997
  128. package/testeranto/bundles/web/allTests/metafile.json +0 -25
  129. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.html +0 -19
  130. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.mjs +0 -440
  131. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +0 -19
  132. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -244
  133. package/testeranto/reports/allTests/config.json +0 -104
  134. package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.txt +0 -0
  135. package/testeranto/reports/allTests/src/Pure.test/pure/message.txt +0 -2
  136. package/testeranto/reports/allTests/src/Pure.test/pure/prompt.txt +0 -13
  137. package/testeranto/reports/allTests/src/Pure.test/pure/type_errors.txt +0 -101
  138. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/bdd_errors.txt +0 -1
  139. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -50
  140. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -2
  141. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -17
  142. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -32
  143. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/bdd_errors.txt +0 -1
  144. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  145. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/logs.txt +0 -52
  146. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/message.txt +0 -2
  147. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -13
  148. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/tests.json +0 -31
  149. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/type_errors.txt +0 -111
  150. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/bdd_errors.txt +0 -1
  151. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  152. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/message.txt +0 -2
  153. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -14
  154. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/tests.json +0 -31
  155. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +0 -111
  156. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/bdd_errors.txt +0 -1
  157. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  158. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/logs.txt +0 -108
  159. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/message.txt +0 -2
  160. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -14
  161. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/tests.json +0 -31
  162. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -111
  163. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
  164. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -0
  165. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -35
  166. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
  167. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -16
  168. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -77
  169. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -62
  170. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -0
  171. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
  172. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -18
  173. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -62
  174. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
  175. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -0
  176. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -69
  177. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
  178. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -16
  179. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -77
  180. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -62
  181. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/bdd_errors.txt +0 -1
  182. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  183. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/logs.txt +0 -700
  184. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message.txt +0 -2
  185. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +0 -16
  186. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/tests.json +0 -164
  187. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +0 -138
  188. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.txt +0 -21
  189. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/logs.txt +0 -7
  190. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message.txt +0 -2
  191. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +0 -18
  192. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +0 -63
  193. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/bdd_errors.txt +0 -1
  194. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.txt +0 -20
  195. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +0 -31
  196. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message.txt +0 -2
  197. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +0 -16
  198. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/tests.json +0 -134
  199. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +0 -76
  200. package/testeranto/reports/allTests/summary.json +0 -79
  201. package/testeranto/reportsnode_build_errors +0 -20
  202. package/testeranto/reportspure_build_errors +0 -343
  203. package/testeranto/reportsweb_build_errors +0 -25
@@ -1,429 +0,0 @@
1
- import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
- import {
3
- Pure_default
4
- } from "../chunk-KHDVEHF7.mjs";
5
- import "../chunk-VMUSFSZM.mjs";
6
-
7
- // src/lib/pmProxy.test/mockPMBase.ts
8
- var MockPMBase = class {
9
- constructor(configs) {
10
- this.calls = {};
11
- this.testResourceConfiguration = {};
12
- this.configs = configs || {};
13
- }
14
- // Common tracking functionality
15
- trackCall(method, args) {
16
- if (!this.calls[method]) {
17
- this.calls[method] = [];
18
- }
19
- this.calls[method].push(args);
20
- }
21
- getCallCount(method) {
22
- return this.calls[method]?.length || 0;
23
- }
24
- getLastCall(method) {
25
- const calls = this.calls[method];
26
- return calls ? calls[calls.length - 1] : null;
27
- }
28
- // Minimal implementations of required methods
29
- launchSideCar(n, testName, projectName) {
30
- this.trackCall("launchSideCar", { n, testName, projectName });
31
- return Promise.resolve();
32
- }
33
- end(uid) {
34
- this.trackCall("end", { uid });
35
- console.debug(`Ending test with uid ${uid}`);
36
- return Promise.resolve(true);
37
- }
38
- // Add debug method
39
- debug(message) {
40
- console.debug(`[MockPMBase] ${message}`);
41
- this.trackCall("debug", { message });
42
- }
43
- writeFileSync(path, content, testName) {
44
- this.trackCall("writeFileSync", { path, content, testName });
45
- return Promise.resolve(true);
46
- }
47
- createWriteStream(path, testName) {
48
- this.trackCall("createWriteStream", { path, testName });
49
- return Promise.resolve(0);
50
- }
51
- screencast(opts, testName, page) {
52
- this.trackCall("screencast", { opts, testName, page });
53
- return Promise.resolve({});
54
- }
55
- customScreenShot(opts, testName, pageUid) {
56
- this.trackCall("customScreenShot", { opts, testName, pageUid });
57
- return Promise.resolve({});
58
- }
59
- testArtiFactoryfileWriter(tLog, callback) {
60
- return (fPath, value) => {
61
- this.trackCall("testArtiFactoryfileWriter", { fPath, value });
62
- callback(Promise.resolve());
63
- };
64
- }
65
- // Other required PM_Base methods with minimal implementations
66
- closePage(p) {
67
- return Promise.resolve();
68
- }
69
- $(selector, p) {
70
- return Promise.resolve();
71
- }
72
- click(selector, page) {
73
- return Promise.resolve();
74
- }
75
- goto(p, url) {
76
- return Promise.resolve();
77
- }
78
- newPage() {
79
- return Promise.resolve("mock-page");
80
- }
81
- pages() {
82
- return Promise.resolve(["mock-page"]);
83
- }
84
- waitForSelector(p, s) {
85
- return Promise.resolve(true);
86
- }
87
- focusOn(selector, p) {
88
- return Promise.resolve();
89
- }
90
- typeInto(value, p) {
91
- return Promise.resolve();
92
- }
93
- getAttribute(selector, attribute, p) {
94
- return Promise.resolve();
95
- }
96
- getInnerHtml(selector, p) {
97
- return Promise.resolve();
98
- }
99
- isDisabled(selector, p) {
100
- return Promise.resolve(false);
101
- }
102
- screencastStop(s) {
103
- return Promise.resolve();
104
- }
105
- existsSync(destFolder) {
106
- return false;
107
- }
108
- mkdirSync(fp) {
109
- return Promise.resolve();
110
- }
111
- write(uid, contents) {
112
- return Promise.resolve(true);
113
- }
114
- page(p) {
115
- return "mock-page";
116
- }
117
- doInPage(p, cb) {
118
- return Promise.resolve();
119
- }
120
- customclose() {
121
- return Promise.resolve();
122
- }
123
- };
124
-
125
- // src/Pure.test.ts
126
- var implementation = {
127
- suites: {
128
- Default: "PureTesteranto Test Suite"
129
- },
130
- givens: {
131
- Default: () => ({
132
- pm: new MockPMBase(),
133
- config: {},
134
- proxies: {
135
- butThenProxy: (pm, path) => ({
136
- ...pm,
137
- writeFileSync: (p, c) => pm.writeFileSync(`${path}/butThen/${p}`, c)
138
- }),
139
- andWhenProxy: (pm, path) => ({
140
- ...pm,
141
- writeFileSync: (p, c) => pm.writeFileSync(`${path}/andWhen/${p}`, c)
142
- }),
143
- beforeEachProxy: (pm, suite) => ({
144
- ...pm,
145
- writeFileSync: (p, c) => pm.writeFileSync(`suite-${suite}/beforeEach/${p}`, c)
146
- })
147
- }
148
- })
149
- },
150
- whens: {
151
- applyProxy: (proxyType) => (store) => {
152
- console.debug(`[DEBUG] Applying proxy type: ${proxyType}`);
153
- switch (proxyType) {
154
- case "invalidConfig":
155
- throw new Error("Invalid configuration");
156
- case "missingProxy":
157
- return { ...store, pm: {} };
158
- case "largePayload":
159
- return {
160
- ...store,
161
- largePayload: true,
162
- pm: {
163
- ...store.pm,
164
- writeFileSync: (p, c) => {
165
- if (c.length > 1e6) {
166
- return true;
167
- }
168
- throw new Error("Payload too small");
169
- }
170
- }
171
- };
172
- case "resourceConfig":
173
- return {
174
- ...store,
175
- pm: {
176
- ...store.pm,
177
- testResourceConfiguration: { name: "test-resource" }
178
- }
179
- };
180
- default:
181
- return store;
182
- }
183
- },
184
- addArtifact: (artifact) => (store) => {
185
- console.debug("[DEBUG] Adding artifact");
186
- return {
187
- ...store,
188
- artifacts: [...store.artifacts || [], artifact]
189
- };
190
- },
191
- setTestJobs: (jobs) => (store) => {
192
- console.debug("[DEBUG] Setting test jobs");
193
- return {
194
- ...store,
195
- testJobs: jobs
196
- };
197
- },
198
- modifySpecs: (modifier) => (store) => {
199
- console.debug("[DEBUG] Modifying specs");
200
- return {
201
- ...store,
202
- specs: modifier(store.specs || [])
203
- };
204
- }
205
- },
206
- thens: {
207
- initializedProperly: () => (store) => {
208
- if (!store.pm) {
209
- throw new Error("PM not initialized");
210
- }
211
- return store;
212
- },
213
- specsGenerated: () => (store) => {
214
- if (store.pm.getCallCount("writeFileSync") === 0) {
215
- throw new Error("No specs generated");
216
- }
217
- return store;
218
- },
219
- jobsCreated: () => (store) => {
220
- return store;
221
- },
222
- artifactsTracked: () => (store) => {
223
- return store;
224
- },
225
- testRunSuccessful: () => (store) => {
226
- if (store.pm.getCallCount("end") === 0) {
227
- throw new Error("Test run did not complete successfully");
228
- }
229
- return store;
230
- },
231
- specsModified: (expectedCount) => (store) => {
232
- const actualCount = store.pm.getCallCount("writeFileSync");
233
- if (actualCount < expectedCount) {
234
- throw new Error(
235
- `Expected ${expectedCount} spec modifications, got ${actualCount}`
236
- );
237
- }
238
- return store;
239
- },
240
- verifyProxy: (expectedPath) => (store) => {
241
- const actualPath = store.pm.getLastCall("writeFileSync")?.path;
242
- if (actualPath !== expectedPath) {
243
- throw new Error(`Expected path ${expectedPath}, got ${actualPath}`);
244
- }
245
- return store;
246
- },
247
- verifyNoProxy: () => (store) => {
248
- if (store.pm.getCallCount("writeFileSync") > 0) {
249
- throw new Error("Proxy was unexpectedly applied");
250
- }
251
- return store;
252
- },
253
- verifyError: (expectedError) => (store) => {
254
- try {
255
- store.pm.writeFileSync("test", "content");
256
- throw new Error("Expected error but none was thrown");
257
- } catch (error) {
258
- if (!error.message.includes(expectedError)) {
259
- throw new Error(
260
- `Expected error "${expectedError}", got "${error.message}"`
261
- );
262
- }
263
- }
264
- return store;
265
- },
266
- verifyResourceConfig: () => (store) => {
267
- if (!store.pm.testResourceConfiguration) {
268
- throw new Error("Missing test resource configuration");
269
- }
270
- return store;
271
- },
272
- verifyLargePayload: () => (store) => {
273
- const largeContent = "x".repeat(2e6);
274
- const result = store.pm.writeFileSync("large.txt", largeContent);
275
- if (!result) {
276
- throw new Error("Failed to handle large payload");
277
- }
278
- return store;
279
- },
280
- verifyTypeSafety: () => (store) => {
281
- return store;
282
- }
283
- }
284
- };
285
- var specification = (Suite, Given, When, Then) => [
286
- Suite.Default("Core Functionality", {
287
- initializationTest: Given.Default(
288
- ["Should initialize with default configuration"],
289
- [],
290
- [Then.verifyNoProxy()]
291
- ),
292
- resourceConfigTest: Given.Default(
293
- ["Should handle test resource configuration"],
294
- [When.applyProxy("resourceConfig")],
295
- [Then.verifyResourceConfig()]
296
- )
297
- }),
298
- Suite.Default("Proxy Integration", {
299
- butThenProxyTest: Given.Default(
300
- ["Should integrate with butThenProxy"],
301
- [When.applyProxy("butThenProxy")],
302
- [Then.verifyProxy("test/path/butThen/expected")]
303
- ),
304
- andWhenProxyTest: Given.Default(
305
- ["Should integrate with andWhenProxy"],
306
- [When.applyProxy("andWhenProxy")],
307
- [Then.verifyProxy("test/path/andWhen/expected")]
308
- ),
309
- beforeEachProxyTest: Given.Default(
310
- ["Should integrate with beforeEachProxy"],
311
- [When.applyProxy("beforeEachProxy")],
312
- [Then.verifyProxy("suite-1/beforeEach/expected")]
313
- )
314
- }),
315
- Suite.Default("Error Handling", {
316
- invalidConfigTest: Given.Default(
317
- ["Should handle invalid configuration"],
318
- [When.applyProxy("invalidConfig")],
319
- [Then.verifyError("Invalid configuration")]
320
- ),
321
- missingProxyTest: Given.Default(
322
- ["Should handle missing proxy"],
323
- [When.applyProxy("missingProxy")],
324
- [Then.verifyError("Proxy not found")]
325
- )
326
- }),
327
- Suite.Default("Performance", {
328
- multipleProxiesTest: Given.Default(
329
- ["Should handle multiple proxies efficiently"],
330
- [
331
- When.applyProxy("butThenProxy"),
332
- When.applyProxy("andWhenProxy"),
333
- When.applyProxy("beforeEachProxy")
334
- ],
335
- [
336
- Then.verifyProxy("test/path/butThen/expected"),
337
- Then.verifyProxy("test/path/andWhen/expected"),
338
- Then.verifyProxy("suite-1/beforeEach/expected")
339
- ]
340
- ),
341
- largePayloadTest: Given.Default(
342
- ["Should handle large payloads"],
343
- [When.applyProxy("largePayload")],
344
- [Then.verifyLargePayload()]
345
- )
346
- }),
347
- Suite.Default("Cross-Component Verification", {
348
- proxyChainTest: Given.Default(
349
- ["Proxies should chain correctly"],
350
- [When.applyProxy("butThenProxy"), When.applyProxy("andWhenProxy")],
351
- [Then.verifyProxy("test/path/andWhen/butThen/expected")]
352
- ),
353
- errorPropagationTest: Given.Default(
354
- ["Errors should propagate across components"],
355
- [When.applyProxy("invalidConfig")],
356
- [Then.verifyError("Invalid configuration")]
357
- ),
358
- resourceSharingTest: Given.Default(
359
- ["Resources should be shared correctly"],
360
- [When.applyProxy("resourceConfig")],
361
- [Then.verifyResourceConfig()]
362
- )
363
- }),
364
- Suite.Default("Type Safety", {
365
- strictTypeTest: Given.Default(
366
- ["Should enforce type safety"],
367
- [When.applyProxy("typeSafe")],
368
- [Then.verifyTypeSafety()]
369
- ),
370
- invalidTypeTest: Given.Default(
371
- ["Should reject invalid types"],
372
- [When.applyProxy("invalidType")],
373
- [Then.verifyError("Type mismatch")]
374
- )
375
- }),
376
- Suite.Default("Integration Tests", {
377
- // Verify builders work together
378
- builderIntegration: Given.Default(
379
- ["BaseBuilder and ClassBuilder should integrate properly"],
380
- [],
381
- [
382
- Then.initializedProperly(),
383
- Then.specsGenerated(),
384
- Then.jobsCreated(),
385
- Then.artifactsTracked()
386
- ]
387
- ),
388
- // Verify PM proxy integration
389
- pmProxyIntegration: Given.Default(
390
- ["PM proxies should work with test runners"],
391
- [When.applyProxy("butThenProxy")],
392
- [Then.verifyProxy("test/path/butThen/expected")]
393
- ),
394
- // Verify full test lifecycle
395
- fullLifecycle: Given.Default(
396
- ["Should complete full test lifecycle"],
397
- [
398
- When.addArtifact(Promise.resolve("test")),
399
- When.setTestJobs([]),
400
- When.modifySpecs((specs) => [...specs])
401
- ],
402
- [Then.testRunSuccessful(), Then.artifactsTracked(), Then.specsModified(0)]
403
- )
404
- })
405
- ];
406
- var testAdapter = {
407
- beforeEach: async (subject, initializer) => {
408
- const pm = initializer();
409
- pm.debug(`Initializing test with subject: ${subject}`);
410
- return { pm };
411
- },
412
- andWhen: async (store, whenCB) => whenCB(store),
413
- butThen: async (store, thenCB) => thenCB(store),
414
- afterEach: async (store) => store,
415
- afterAll: async () => {
416
- },
417
- beforeAll: async (input, testResource) => ({}),
418
- assertThis: (x) => x
419
- };
420
- var Pure_test_default = Pure_default(
421
- null,
422
- // No initial input
423
- specification,
424
- implementation,
425
- testAdapter
426
- );
427
- export {
428
- Pure_test_default as default
429
- };