testeranto 0.140.2 → 0.146.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 (204) hide show
  1. package/.aider.chat.history.md +11006 -0
  2. package/.aider.input.history +441 -0
  3. package/.aider.tags.cache.v3/06/1a/1ec9fd1f595d4b36094caef45894.val +0 -0
  4. package/.aider.tags.cache.v3/0f/f6/f42b5108253d75de3cb6286df7f6.val +0 -0
  5. package/.aider.tags.cache.v3/{ad/3c/10f2ab1397f6d544e613d2a6acaf.val → 3d/81/8b6f0e9b98ec2952cdb8968ac386.val} +0 -0
  6. package/.aider.tags.cache.v3/cache.db +0 -0
  7. package/.aider.tags.cache.v3/{a7/97/6d37fce350ad2d588f36729db0cd.val → d6/7d/1820c2d4b9330eab7017da4515e7.val} +0 -0
  8. package/README.md +15 -16
  9. package/dist/tsconfig.tsbuildinfo +1 -1
  10. package/docs/aiderTest.sh +1 -0
  11. package/docs/index.md +45 -33
  12. package/docs/testing.ai.txt +98 -0
  13. package/docs/testing.prompt.txt +8 -0
  14. package/package.json +3 -3
  15. package/src/Node.ts +17 -13
  16. package/src/PM/PM_WithEslintAndTsc.ts +83 -67
  17. package/src/PM/main.ts +182 -92
  18. package/src/PM/node.ts +1 -15
  19. package/src/PM/nodeSidecar.ts +0 -1
  20. package/src/Pure.test.ts +299 -0
  21. package/src/Pure.ts +20 -2
  22. package/src/Types.ts +5 -5
  23. package/src/Web.ts +1 -1
  24. package/src/build.ts +0 -1
  25. package/src/esbuildConfigs/consoleDetectorPlugin.ts +28 -14
  26. package/src/esbuildConfigs/nativeImportDetectorPlugin.ts +26 -0
  27. package/src/esbuildConfigs/pure.ts +3 -1
  28. package/src/esbuildConfigs/rebuildPlugin.ts +1 -4
  29. package/src/lib/BaseSuite.test/node.test.ts +12 -0
  30. package/src/lib/BaseSuite.test/pure.test.ts +12 -0
  31. package/src/lib/{BaseSuite.test.ts → BaseSuite.test/test.ts} +36 -27
  32. package/src/lib/BaseSuite.test/web.test.ts +12 -0
  33. package/src/lib/BaseSuite.ts +17 -15
  34. package/src/lib/abstractBase.test/MockGiven.ts +31 -0
  35. package/src/lib/abstractBase.test/MockThen.ts +20 -0
  36. package/src/lib/abstractBase.test/MockWhen.ts +17 -0
  37. package/src/lib/abstractBase.test/implementation.ts +51 -0
  38. package/src/lib/abstractBase.test/index.ts +19 -0
  39. package/src/lib/abstractBase.test/interface.ts +12 -0
  40. package/src/lib/abstractBase.test/specification.ts +49 -0
  41. package/src/lib/abstractBase.test/types.ts +19 -0
  42. package/src/lib/abstractBase.ts +0 -2
  43. package/src/lib/baseBuilder.test/TestBaseBuilder.ts +83 -0
  44. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +134 -0
  45. package/src/lib/baseBuilder.test/baseBuilder.test.interface.ts +18 -0
  46. package/src/lib/baseBuilder.test/baseBuilder.test.node.ts +14 -0
  47. package/src/lib/baseBuilder.test/baseBuilder.test.pure.ts +14 -0
  48. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +35 -0
  49. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +36 -0
  50. package/src/lib/baseBuilder.test/baseBuilder.test.web.ts +14 -0
  51. package/src/lib/basebuilder.ts +2 -1
  52. package/src/lib/classBuilder.test/TestClassBuilder.ts +88 -0
  53. package/src/lib/classBuilder.test/classBuilder.test.implementation.ts +204 -0
  54. package/src/lib/classBuilder.test/classBuilder.test.interface.ts +18 -0
  55. package/src/lib/classBuilder.test/classBuilder.test.specification.ts +113 -0
  56. package/src/lib/classBuilder.test/classBuilder.test.ts +14 -0
  57. package/src/lib/classBuilder.test/classBuilder.test.types.ts +84 -0
  58. package/src/lib/core.test/MockCore.ts +49 -0
  59. package/src/lib/core.test/core.test.implementation.ts +129 -0
  60. package/src/lib/core.test/core.test.interface.ts +18 -0
  61. package/src/lib/core.test/core.test.specification.ts +99 -0
  62. package/src/lib/core.test/core.test.ts +15 -0
  63. package/src/lib/core.test/core.test.types.ts +68 -0
  64. package/src/lib/core.ts +1 -11
  65. package/src/lib/pmProxy.test/implementation.ts +104 -0
  66. package/src/lib/pmProxy.test/index.ts +19 -0
  67. package/src/lib/pmProxy.test/interface.ts +46 -0
  68. package/src/lib/pmProxy.test/mockPM.ts +38 -0
  69. package/src/lib/pmProxy.test/mockPMBase.ts +136 -0
  70. package/src/lib/pmProxy.test/specification.ts +123 -0
  71. package/src/lib/pmProxy.test/types.ts +45 -0
  72. package/src/lib/pmProxy.ts +40 -193
  73. package/src/run.ts +7 -7
  74. package/testeranto/bundles/node/allTests/chunk-NQBTLMSG.mjs +254 -0
  75. package/testeranto/bundles/node/allTests/chunk-RF3LIUSG.mjs +765 -0
  76. package/testeranto/bundles/node/allTests/chunk-YZWFKYY3.mjs +171 -0
  77. package/testeranto/bundles/node/allTests/metafile.json +628 -3567
  78. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test/node.test.mjs +325 -0
  79. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +226 -0
  80. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +408 -0
  81. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +279 -0
  82. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +4587 -0
  83. package/testeranto/bundles/{node/allTests/chunk-4PJCC2XT.mjs → pure/allTests/chunk-W22WOQNK.mjs} +208 -326
  84. package/testeranto/bundles/pure/allTests/metafile.json +732 -3
  85. package/testeranto/bundles/pure/allTests/src/Pure.test.mjs +369 -0
  86. package/testeranto/bundles/{node/allTests/src/lib/BaseSuite.test.mjs → pure/allTests/src/lib/BaseSuite.test/pure.test.mjs} +26 -8
  87. package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +224 -0
  88. package/testeranto/bundles/web/allTests/chunk-FIZ3WLUB.mjs +943 -0
  89. package/testeranto/bundles/web/allTests/metafile.json +1133 -2
  90. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.html +19 -0
  91. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.mjs +322 -0
  92. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +19 -0
  93. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +10964 -0
  94. package/testeranto/index.html +1 -1
  95. package/testeranto/reports/allTests/config.json +50 -11
  96. package/testeranto/reports/allTests/index.html +1 -1
  97. package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.json +1539 -0
  98. package/testeranto/reports/allTests/src/Pure.test/pure/logs.txt +11 -0
  99. package/testeranto/reports/allTests/src/Pure.test/pure/message +1 -0
  100. package/testeranto/reports/allTests/src/Pure.test/pure/prompt.txt +8 -0
  101. package/testeranto/reports/allTests/src/{PM/__tests__/pureSidecar.testeranto/node → Pure.test/pure}/type_errors.txt +18 -14
  102. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.json +620 -0
  103. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/logs.txt +12 -0
  104. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/message +1 -0
  105. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/prompt.txt +8 -0
  106. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/type_errors.txt +94 -0
  107. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/index.html +21 -0
  108. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.json +620 -0
  109. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/logs.txt +11 -0
  110. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/message +1 -0
  111. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +8 -0
  112. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +104 -0
  113. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/dev.html +21 -0
  114. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/index.html +21 -0
  115. package/testeranto/reports/allTests/src/lib/BaseSuite.test/{node → web.test/web}/lint_errors.json +69 -57
  116. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/logs.txt +10 -0
  117. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/message +1 -0
  118. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/prompt.txt +8 -0
  119. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/type_errors.txt +95 -0
  120. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/dev.html +21 -0
  121. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/index.html +21 -0
  122. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.json +966 -0
  123. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message +1 -0
  124. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +11 -0
  125. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +57 -0
  126. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/bdd_errors.txt +1 -0
  127. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/dev.html +21 -0
  128. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/index.html +21 -0
  129. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.json +966 -0
  130. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/log.txt +0 -0
  131. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message +1 -0
  132. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +11 -0
  133. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/tests.json +57 -0
  134. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +57 -0
  135. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +1 -0
  136. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/dev.html +21 -0
  137. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/index.html +21 -0
  138. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.json +966 -0
  139. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/log.txt +0 -0
  140. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -0
  141. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message +1 -0
  142. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +11 -0
  143. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +57 -0
  144. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +48 -0
  145. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/dev.html +21 -0
  146. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +21 -0
  147. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.json +791 -0
  148. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/logs.txt +12 -0
  149. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message +1 -0
  150. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +11 -0
  151. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +55 -0
  152. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/dev.html +21 -0
  153. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +21 -0
  154. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.json +416 -0
  155. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/logs.txt +17 -0
  156. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message +1 -0
  157. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +11 -0
  158. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +65 -0
  159. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/dev.html +21 -0
  160. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +21 -0
  161. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.json +1724 -0
  162. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/log.txt +0 -0
  163. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +30 -0
  164. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message +1 -0
  165. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +11 -0
  166. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +64 -0
  167. package/testeranto/reports/allTests/summary.json +59 -24
  168. package/testeranto.config.ts +37 -12
  169. package/tsc.log +273 -27
  170. package/testeranto/bundles/node/allTests/chunk-PG6KUKNP.mjs +0 -44
  171. package/testeranto/bundles/node/allTests/src/PM/__tests__/nodeSidecar.testeranto.mjs +0 -187
  172. package/testeranto/bundles/node/allTests/src/PM/__tests__/pureSidecar.testeranto.mjs +0 -156
  173. package/testeranto/bundles/node/allTests/src/PM/__tests__/webSidecar.testeranto.mjs +0 -156
  174. package/testeranto/bundles/node/allTests/src/mothership/test.mjs +0 -24411
  175. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/index.html +0 -21
  176. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/lint_errors.json +0 -80
  177. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/message +0 -1
  178. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/prompt.txt +0 -8
  179. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/type_errors.txt +0 -28
  180. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/index.html +0 -21
  181. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/lint_errors.json +0 -80
  182. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/message +0 -1
  183. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/prompt.txt +0 -8
  184. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/index.html +0 -21
  185. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/lint_errors.json +0 -80
  186. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/message +0 -1
  187. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/prompt.txt +0 -8
  188. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/type_errors.txt +0 -32
  189. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/console_log.txt +0 -35
  190. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/index.html +0 -21
  191. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/message +0 -1
  192. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/prompt.txt +0 -7
  193. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/type_errors.txt +0 -68
  194. package/testeranto/reports/allTests/src/mothership/test/node/index.html +0 -21
  195. package/testeranto/reports/allTests/src/mothership/test/node/lint_errors.json +0 -1
  196. package/testeranto/reports/allTests/src/mothership/test/node/message +0 -1
  197. package/testeranto/reports/allTests/src/mothership/test/node/prompt.txt +0 -8
  198. package/testeranto/reports/allTests/src/mothership/test/node/type_errors.txt +0 -24
  199. /package/testeranto/reports/allTests/src/{PM/__tests__/nodeSidecar.testeranto/node → Pure.test/pure}/dev.html +0 -0
  200. /package/testeranto/reports/allTests/src/{PM/__tests__/pureSidecar.testeranto/node/dev.html → Pure.test/pure/index.html} +0 -0
  201. /package/testeranto/reports/allTests/src/{PM/__tests__/webSidecar.testeranto → lib/BaseSuite.test/node.test}/node/dev.html +0 -0
  202. /package/testeranto/reports/allTests/src/lib/BaseSuite.test/{node/dev.html → node.test/node/index.html} +0 -0
  203. /package/testeranto/reports/allTests/src/{mothership/test/node → lib/BaseSuite.test/pure.test/pure}/dev.html +0 -0
  204. /package/testeranto/reports/allTests/src/lib/{BaseSuite.test/node/log.txt → baseBuilder.test/baseBuilder.test.node/node/logs.txt} +0 -0
@@ -0,0 +1,943 @@
1
+ // src/lib/basebuilder.ts
2
+ var BaseBuilder = class {
3
+ constructor(input, suitesOverrides, givenOverides, whenOverides, thenOverides, checkOverides, testResourceRequirement, testSpecification) {
4
+ this.artifacts = [];
5
+ this.artifacts = [];
6
+ this.testResourceRequirement = testResourceRequirement;
7
+ this.suitesOverrides = suitesOverrides;
8
+ this.givenOverides = givenOverides;
9
+ this.whenOverides = whenOverides;
10
+ this.thenOverides = thenOverides;
11
+ this.checkOverides = checkOverides;
12
+ this.testSpecification = testSpecification;
13
+ this.specs = testSpecification(
14
+ this.Suites(),
15
+ this.Given(),
16
+ this.When(),
17
+ this.Then(),
18
+ this.Check()
19
+ );
20
+ this.testJobs = this.specs.map((suite) => {
21
+ const suiteRunner = (suite2) => async (puppetMaster, tLog) => {
22
+ const x = await suite2.run(
23
+ input,
24
+ puppetMaster.testResourceConfiguration,
25
+ (fPath, value) => puppetMaster.testArtiFactoryfileWriter(
26
+ tLog,
27
+ (p) => {
28
+ this.artifacts.push(p);
29
+ }
30
+ )(puppetMaster.testResourceConfiguration.fs + "/" + fPath, value),
31
+ tLog,
32
+ puppetMaster
33
+ );
34
+ return x;
35
+ };
36
+ const runner = suiteRunner(suite);
37
+ return {
38
+ test: suite,
39
+ toObj: () => {
40
+ return suite.toObj();
41
+ },
42
+ runner,
43
+ receiveTestResourceConfig: async function(puppetMaster) {
44
+ const logFilePath = "log.txt";
45
+ const access = await puppetMaster.createWriteStream(
46
+ logFilePath
47
+ );
48
+ const tLog = async (...l) => {
49
+ };
50
+ const suiteDone = await runner(puppetMaster, tLog);
51
+ const logPromise = new Promise(async (res) => {
52
+ await puppetMaster.end(access);
53
+ res(true);
54
+ });
55
+ const fails = suiteDone.fails;
56
+ await puppetMaster.writeFileSync(`bdd_errors.txt`, fails.toString());
57
+ await puppetMaster.writeFileSync(
58
+ `tests.json`,
59
+ JSON.stringify(this.toObj(), null, 2)
60
+ );
61
+ return {
62
+ failed: fails > 0,
63
+ fails,
64
+ artifacts: this.artifacts || [],
65
+ logPromise,
66
+ features: suiteDone.features()
67
+ };
68
+ }
69
+ };
70
+ });
71
+ }
72
+ // testsJson() {
73
+ // puppetMaster.writeFileSync(
74
+ // `tests.json`,
75
+ // JSON.stringify({ features: suiteDone.features() }, null, 2)
76
+ // );
77
+ // }
78
+ Specs() {
79
+ return this.specs;
80
+ }
81
+ Suites() {
82
+ return this.suitesOverrides;
83
+ }
84
+ Given() {
85
+ return this.givenOverides;
86
+ }
87
+ When() {
88
+ return this.whenOverides;
89
+ }
90
+ Then() {
91
+ return this.thenOverides;
92
+ }
93
+ Check() {
94
+ return this.checkOverides;
95
+ }
96
+ };
97
+
98
+ // src/lib/pmProxy.ts
99
+ var baseProxy = function(pm, mappings) {
100
+ return new Proxy(pm, {
101
+ get: (target, prop, receiver) => {
102
+ for (const mapping of mappings) {
103
+ const method = mapping[0];
104
+ const arger = mapping[1];
105
+ if (prop === method) {
106
+ return (...x) => target[prop](arger(...x));
107
+ }
108
+ }
109
+ return (...x) => target[prop](...x);
110
+ }
111
+ });
112
+ };
113
+ var butThenProxy = (pm, filepath) => baseProxy(pm, [
114
+ [
115
+ "screencast",
116
+ (opts2, p) => [
117
+ {
118
+ ...opts2,
119
+ path: `${filepath}/butThen/${opts2.path}`
120
+ },
121
+ p
122
+ ]
123
+ ],
124
+ ["createWriteStream", (fp) => [`${filepath}/butThen/${fp}`]],
125
+ [
126
+ "writeFileSync",
127
+ (fp, contents) => [`${filepath}/butThen/${fp}`, contents]
128
+ ],
129
+ [
130
+ "customScreenShot",
131
+ (opts2, p) => [
132
+ {
133
+ ...opts2,
134
+ path: `${filepath}/butThen/${opts2.path}`
135
+ },
136
+ p
137
+ ]
138
+ ]
139
+ ]);
140
+ var andWhenProxy = (pm, filepath) => baseProxy(pm, [
141
+ [
142
+ "screencast",
143
+ (opts2, p) => [
144
+ {
145
+ ...opts2,
146
+ path: `${filepath}/andWhen/${opts2.path}`
147
+ },
148
+ p
149
+ ]
150
+ ],
151
+ ["createWriteStream", (fp) => [`${filepath}/andWhen/${fp}`]],
152
+ ["writeFileSync", (fp, contents) => [`${filepath}/andWhen${fp}`, contents]],
153
+ [
154
+ "customScreenShot",
155
+ (opts2, p) => [
156
+ {
157
+ ...opts2,
158
+ path: `${filepath}/andWhen${opts2.path}`
159
+ },
160
+ p
161
+ ]
162
+ ]
163
+ ]);
164
+ var afterEachProxy = (pm, suite, given) => baseProxy(pm, [
165
+ [
166
+ "screencast",
167
+ (opts2, p) => [
168
+ {
169
+ ...opts2,
170
+ path: `suite-${suite}/given-${given}/afterEach/${opts2.path}`
171
+ },
172
+ p
173
+ ]
174
+ ],
175
+ ["createWriteStream", (fp) => [`suite-${suite}/afterEach/${fp}`]],
176
+ [
177
+ "writeFileSync",
178
+ (fp, contents) => [
179
+ `suite-${suite}/given-${given}/afterEach/${fp}`,
180
+ contents
181
+ ]
182
+ ],
183
+ [
184
+ "customScreenShot",
185
+ (opts2, p) => [
186
+ {
187
+ ...opts2,
188
+ path: `suite-${suite}/given-${given}/afterEach/${opts2.path}`
189
+ },
190
+ p
191
+ ]
192
+ ]
193
+ ]);
194
+ var beforeEachProxy = (pm, suite) => baseProxy(pm, [
195
+ [
196
+ "screencast",
197
+ (opts2, p) => [
198
+ {
199
+ ...opts2,
200
+ path: `suite-${suite}/beforeEach/${opts2.path}`
201
+ },
202
+ p
203
+ ]
204
+ ],
205
+ [
206
+ "writeFileSync",
207
+ (fp, contents) => [`suite-${suite}/beforeEach/${fp}`, contents]
208
+ ],
209
+ [
210
+ "customScreenShot",
211
+ (opts2, p) => [
212
+ {
213
+ ...opts2,
214
+ path: `suite-${suite}/beforeEach/${opts2.path}`
215
+ },
216
+ p
217
+ ]
218
+ ],
219
+ ["createWriteStream", (fp) => [`suite-${suite}/beforeEach/${fp}`]]
220
+ ]);
221
+ var beforeAllProxy = (pm, suite) => baseProxy(pm, [
222
+ [
223
+ "writeFileSync",
224
+ (fp, contents) => [`suite-${suite}/beforeAll/${fp}`, contents]
225
+ ],
226
+ [
227
+ "customScreenShot",
228
+ (opts2, p) => [
229
+ {
230
+ ...opts2,
231
+ path: `suite-${suite}/beforeAll/${opts2.path}`
232
+ },
233
+ p
234
+ ]
235
+ ],
236
+ ["createWriteStream", (fp) => [`suite-${suite}/beforeAll/${fp}`]]
237
+ ]);
238
+ var afterAllProxy = (pm, suite) => baseProxy(pm, [
239
+ ["createWriteStream", (fp) => [`suite-${suite}/afterAll/${fp}`]],
240
+ [
241
+ "writeFileSync",
242
+ (fp, contents) => [`suite-${suite}/afterAll/${fp}`, contents]
243
+ ],
244
+ [
245
+ "customScreenShot",
246
+ (opts2, p) => [
247
+ {
248
+ ...opts2,
249
+ path: `suite-${suite}/afterAll/${opts2.path}`
250
+ },
251
+ p
252
+ ]
253
+ ]
254
+ ]);
255
+
256
+ // src/lib/BaseSuite.ts
257
+ var BaseSuite = class {
258
+ constructor(name, index, givens = {}, checks = []) {
259
+ this.name = name;
260
+ this.index = index;
261
+ this.givens = givens;
262
+ this.checks = checks;
263
+ this.fails = 0;
264
+ }
265
+ features() {
266
+ const features = Object.keys(this.givens).map((k) => this.givens[k].features).flat().filter((value, index, array) => {
267
+ return array.indexOf(value) === index;
268
+ });
269
+ return features || [];
270
+ }
271
+ toObj() {
272
+ const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
273
+ const checks = Object.keys(this.checks).map((k) => this.checks[k].toObj());
274
+ return {
275
+ name: this.name,
276
+ givens,
277
+ checks,
278
+ fails: this.fails,
279
+ failed: this.failed,
280
+ features: this.features()
281
+ };
282
+ }
283
+ setup(s, artifactory, tr, pm) {
284
+ return new Promise((res) => res(s));
285
+ }
286
+ assertThat(t) {
287
+ return !!t;
288
+ }
289
+ afterAll(store, artifactory, pm) {
290
+ return store;
291
+ }
292
+ async run(input, testResourceConfiguration, artifactory, tLog, pm) {
293
+ this.testResourceConfiguration = testResourceConfiguration;
294
+ const suiteArtifactory = (fPath, value) => artifactory(`suite-${this.index}-${this.name}/${fPath}`, value);
295
+ tLog("\nSuite:", this.index, this.name);
296
+ const sNdx = this.index;
297
+ const subject = await this.setup(
298
+ input,
299
+ suiteArtifactory,
300
+ testResourceConfiguration,
301
+ beforeAllProxy(pm, sNdx.toString())
302
+ );
303
+ for (const [gKey, g] of Object.entries(this.givens)) {
304
+ const giver = this.givens[gKey];
305
+ this.store = await giver.give(
306
+ subject,
307
+ gKey,
308
+ testResourceConfiguration,
309
+ this.assertThat,
310
+ suiteArtifactory,
311
+ tLog,
312
+ pm,
313
+ sNdx
314
+ ).catch((e) => {
315
+ this.failed = true;
316
+ this.fails = this.fails + 1;
317
+ console.error("Given error 1:", e);
318
+ throw e;
319
+ });
320
+ }
321
+ for (const [ndx, thater] of this.checks.entries()) {
322
+ await thater.check(
323
+ subject,
324
+ thater.name,
325
+ testResourceConfiguration,
326
+ this.assertThat,
327
+ suiteArtifactory,
328
+ tLog,
329
+ pm
330
+ );
331
+ }
332
+ try {
333
+ this.afterAll(
334
+ this.store,
335
+ artifactory,
336
+ afterAllProxy(pm, sNdx.toString())
337
+ );
338
+ } catch (e) {
339
+ console.error(e);
340
+ }
341
+ return this;
342
+ }
343
+ };
344
+
345
+ // src/PM/index.ts
346
+ var PM = class {
347
+ };
348
+
349
+ // src/PM/web.ts
350
+ var PM_Web = class extends PM {
351
+ constructor(t) {
352
+ super();
353
+ this.testResourceConfiguration = t;
354
+ }
355
+ start() {
356
+ return new Promise((r) => r());
357
+ }
358
+ stop() {
359
+ return new Promise((r) => r());
360
+ }
361
+ getInnerHtml(selector, page2) {
362
+ throw new Error("web.ts getInnHtml not implemented");
363
+ }
364
+ pages() {
365
+ throw new Error("Method not implemented.");
366
+ }
367
+ stopSideCar(n) {
368
+ return window["stopSideCar"](n, this.testResourceConfiguration.name);
369
+ }
370
+ launchSideCar(n) {
371
+ return window["launchSideCar"](n, this.testResourceConfiguration.name);
372
+ }
373
+ waitForSelector(p, s) {
374
+ return window["waitForSelector"](p, s);
375
+ }
376
+ screencast(o, p) {
377
+ return window["screencast"](
378
+ {
379
+ ...opts,
380
+ path: this.testResourceConfiguration.fs + "/" + opts.path
381
+ },
382
+ page.mainFrame()._id,
383
+ this.testResourceConfiguration.name
384
+ );
385
+ }
386
+ screencastStop(recorder) {
387
+ return window["screencastStop"](recorder);
388
+ }
389
+ closePage(p) {
390
+ return window["closePage"](p);
391
+ }
392
+ goto(p, url) {
393
+ return window["goto"](p, url);
394
+ }
395
+ newPage() {
396
+ return window["newPage"]();
397
+ }
398
+ $(selector) {
399
+ return window["$"](selector);
400
+ }
401
+ isDisabled(selector) {
402
+ return window["isDisabled"](selector);
403
+ }
404
+ getAttribute(selector, attribute) {
405
+ return window["getAttribute"](selector, attribute);
406
+ }
407
+ getValue(selector) {
408
+ return window["getValue"](selector);
409
+ }
410
+ focusOn(selector) {
411
+ return window["focusOn"](selector);
412
+ }
413
+ typeInto(value) {
414
+ return window["typeInto"](value);
415
+ }
416
+ async page(x) {
417
+ return window["page"](x);
418
+ }
419
+ click(selector) {
420
+ return window["click"](selector);
421
+ }
422
+ customScreenShot(x, y) {
423
+ const opts2 = x[0];
424
+ const page2 = x[1];
425
+ console.log("customScreenShot 2 opts", opts2);
426
+ console.log("customScreenShot 2 page", page2);
427
+ return window["customScreenShot"](
428
+ {
429
+ ...opts2,
430
+ path: this.testResourceConfiguration.fs + "/" + opts2.path
431
+ },
432
+ this.testResourceConfiguration.name,
433
+ page2
434
+ );
435
+ }
436
+ existsSync(destFolder) {
437
+ return window["existsSync"](destFolder);
438
+ }
439
+ mkdirSync(x) {
440
+ return window["mkdirSync"](this.testResourceConfiguration.fs + "/");
441
+ }
442
+ write(uid, contents) {
443
+ return window["write"](uid, contents);
444
+ }
445
+ writeFileSync(filepath, contents) {
446
+ return window["writeFileSync"](
447
+ this.testResourceConfiguration.fs + "/" + filepath,
448
+ contents,
449
+ this.testResourceConfiguration.name
450
+ );
451
+ }
452
+ createWriteStream(filepath) {
453
+ return window["createWriteStream"](
454
+ this.testResourceConfiguration.fs + "/" + filepath,
455
+ this.testResourceConfiguration.name
456
+ );
457
+ }
458
+ end(uid) {
459
+ return window["end"](uid);
460
+ }
461
+ customclose() {
462
+ window["customclose"](
463
+ this.testResourceConfiguration.fs,
464
+ this.testResourceConfiguration.name
465
+ );
466
+ }
467
+ testArtiFactoryfileWriter(tLog, callback) {
468
+ return (fPath, value) => {
469
+ callback(
470
+ new Promise((res, rej) => {
471
+ tLog("testArtiFactory =>", fPath);
472
+ })
473
+ );
474
+ };
475
+ }
476
+ };
477
+
478
+ // src/lib/index.ts
479
+ var BaseTestInterface = () => ({
480
+ beforeAll: async (s) => s,
481
+ beforeEach: async function(subject, initialValues, x, testResource, pm) {
482
+ return subject;
483
+ },
484
+ afterEach: async (s) => s,
485
+ afterAll: (store) => void 0,
486
+ butThen: async (store, thenCb) => {
487
+ return thenCb(store);
488
+ },
489
+ andWhen: async (store, whenCB, testResource, pm) => {
490
+ try {
491
+ await whenCB(store, testResource, pm);
492
+ } catch (error) {
493
+ console.error("Error in andWhen:", error);
494
+ throw error;
495
+ }
496
+ },
497
+ assertThis: (x) => x
498
+ });
499
+ var DefaultTestInterface = (p) => {
500
+ return {
501
+ ...BaseTestInterface,
502
+ ...p
503
+ };
504
+ };
505
+ var defaultTestResourceRequirement = {
506
+ ports: 0
507
+ };
508
+
509
+ // src/lib/abstractBase.ts
510
+ var BaseGiven = class {
511
+ constructor(name, features, whens, thens, givenCB, initialValues) {
512
+ this.name = name;
513
+ this.features = features;
514
+ this.whens = whens;
515
+ this.thens = thens;
516
+ this.givenCB = givenCB;
517
+ this.initialValues = initialValues;
518
+ }
519
+ beforeAll(store) {
520
+ return store;
521
+ }
522
+ toObj() {
523
+ return {
524
+ key: this.key,
525
+ name: this.name,
526
+ whens: this.whens.map((w) => {
527
+ if (w && w.toObj)
528
+ return w.toObj();
529
+ console.error("w is not as expected!", w);
530
+ return {};
531
+ }),
532
+ thens: this.thens.map((t) => t.toObj()),
533
+ error: this.error ? [this.error, this.error.stack] : null,
534
+ failed: this.failed,
535
+ features: this.features
536
+ };
537
+ }
538
+ async afterEach(store, key, artifactory, pm) {
539
+ return store;
540
+ }
541
+ async give(subject, key, testResourceConfiguration, tester, artifactory, tLog, pm, suiteNdx) {
542
+ this.key = key;
543
+ tLog(`
544
+ ${this.key}`);
545
+ tLog(`
546
+ Given: ${this.name}`);
547
+ const givenArtifactory = (fPath, value) => artifactory(`given-${key}/${fPath}`, value);
548
+ this.uberCatcher((e) => {
549
+ console.error(e);
550
+ this.error = e.error;
551
+ tLog(e.stack);
552
+ });
553
+ try {
554
+ this.store = await this.givenThat(
555
+ subject,
556
+ testResourceConfiguration,
557
+ givenArtifactory,
558
+ this.givenCB,
559
+ this.initialValues,
560
+ beforeEachProxy(pm, suiteNdx.toString())
561
+ );
562
+ } catch (e) {
563
+ console.error("failure 4 ", e);
564
+ this.error = e;
565
+ throw e;
566
+ }
567
+ try {
568
+ for (const [whenNdx, whenStep] of this.whens.entries()) {
569
+ await whenStep.test(
570
+ this.store,
571
+ testResourceConfiguration,
572
+ tLog,
573
+ pm,
574
+ `suite-${suiteNdx}/given-${key}/when/${whenNdx}`
575
+ );
576
+ }
577
+ for (const [thenNdx, thenStep] of this.thens.entries()) {
578
+ const t = await thenStep.test(
579
+ this.store,
580
+ testResourceConfiguration,
581
+ tLog,
582
+ pm,
583
+ `suite-${suiteNdx}/given-${key}/then-${thenNdx}`
584
+ );
585
+ tester(t);
586
+ }
587
+ } catch (e) {
588
+ this.failed = true;
589
+ tLog(e.stack);
590
+ throw e;
591
+ } finally {
592
+ try {
593
+ await this.afterEach(
594
+ this.store,
595
+ this.key,
596
+ givenArtifactory,
597
+ afterEachProxy(pm, suiteNdx.toString(), key)
598
+ );
599
+ } catch (e) {
600
+ console.error("afterEach failed!", e);
601
+ this.failed = e;
602
+ throw e;
603
+ }
604
+ }
605
+ return this.store;
606
+ }
607
+ };
608
+ var BaseWhen = class {
609
+ constructor(name, whenCB) {
610
+ this.name = name;
611
+ this.whenCB = whenCB;
612
+ }
613
+ toObj() {
614
+ console.log("toObj error", this.error);
615
+ return {
616
+ name: this.name,
617
+ error: this.error && this.error.name + this.error.stack
618
+ };
619
+ }
620
+ async test(store, testResourceConfiguration, tLog, pm, filepath) {
621
+ tLog(" When:", this.name);
622
+ return await this.andWhen(
623
+ store,
624
+ this.whenCB,
625
+ testResourceConfiguration,
626
+ andWhenProxy(pm, filepath)
627
+ ).catch((e) => {
628
+ this.error = e;
629
+ throw e;
630
+ });
631
+ }
632
+ };
633
+ var BaseThen = class {
634
+ constructor(name, thenCB) {
635
+ this.name = name;
636
+ this.thenCB = thenCB;
637
+ this.error = false;
638
+ }
639
+ toObj() {
640
+ return {
641
+ name: this.name,
642
+ error: this.error
643
+ };
644
+ }
645
+ async test(store, testResourceConfiguration, tLog, pm, filepath) {
646
+ return this.butThen(
647
+ store,
648
+ async (s) => {
649
+ tLog(" Then!!!:", this.name);
650
+ if (typeof this.thenCB === "function") {
651
+ return await this.thenCB(s);
652
+ } else {
653
+ return this.thenCB;
654
+ }
655
+ },
656
+ testResourceConfiguration,
657
+ butThenProxy(pm, filepath)
658
+ ).catch((e) => {
659
+ this.error = e;
660
+ throw e;
661
+ });
662
+ }
663
+ check() {
664
+ }
665
+ };
666
+ var BaseCheck = class {
667
+ constructor(name, features, checker, x, checkCB) {
668
+ this.name = name;
669
+ this.features = features;
670
+ this.checkCB = checkCB;
671
+ this.checker = checker;
672
+ }
673
+ toObj() {
674
+ return {
675
+ key: this.key,
676
+ name: this.name,
677
+ // functionAsString: this.checkCB.toString(),
678
+ features: this.features
679
+ };
680
+ }
681
+ async afterEach(store, key, artifactory, pm) {
682
+ return store;
683
+ }
684
+ beforeAll(store) {
685
+ return store;
686
+ }
687
+ async check(subject, key, testResourceConfiguration, tester, artifactory, tLog, pm) {
688
+ this.key = key;
689
+ tLog(`
690
+ Check: ${this.name}`);
691
+ this.store = await this.checkThat(
692
+ subject,
693
+ testResourceConfiguration,
694
+ artifactory,
695
+ this.checkCB,
696
+ this.initialValues,
697
+ pm
698
+ );
699
+ await this.checker(this.store, pm);
700
+ return;
701
+ }
702
+ };
703
+
704
+ // src/lib/classBuilder.ts
705
+ var ClassBuilder = class extends BaseBuilder {
706
+ constructor(testImplementation, testSpecification, input, suiteKlasser, givenKlasser, whenKlasser, thenKlasser, checkKlasser, testResourceRequirement) {
707
+ const classySuites = Object.entries(testImplementation.suites).reduce(
708
+ (a, [key], index) => {
709
+ a[key] = (somestring, givens, checks) => {
710
+ return new suiteKlasser.prototype.constructor(
711
+ somestring,
712
+ index,
713
+ givens,
714
+ checks
715
+ );
716
+ };
717
+ return a;
718
+ },
719
+ {}
720
+ );
721
+ const classyGivens = Object.entries(testImplementation.givens).reduce(
722
+ (a, [key, g]) => {
723
+ a[key] = (features, whens, thens, ...initialValues) => {
724
+ return new givenKlasser.prototype.constructor(
725
+ key,
726
+ features,
727
+ whens,
728
+ thens,
729
+ testImplementation.givens[key],
730
+ initialValues
731
+ );
732
+ };
733
+ return a;
734
+ },
735
+ {}
736
+ );
737
+ const classyWhens = Object.entries(testImplementation.whens).reduce(
738
+ (a, [key, whEn]) => {
739
+ a[key] = (...payload) => {
740
+ return new whenKlasser.prototype.constructor(
741
+ `${whEn.name}: ${payload && payload.toString()}`,
742
+ whEn(...payload)
743
+ );
744
+ };
745
+ return a;
746
+ },
747
+ {}
748
+ );
749
+ const classyThens = Object.entries(
750
+ testImplementation.thens
751
+ ).reduce(
752
+ (a, [key, thEn]) => {
753
+ a[key] = (expected, ...x) => {
754
+ return new thenKlasser.prototype.constructor(
755
+ `${thEn.name}: ${expected && expected.toString()}`,
756
+ thEn(expected, ...x)
757
+ );
758
+ };
759
+ return a;
760
+ },
761
+ {}
762
+ );
763
+ const classyChecks = Object.entries(testImplementation.checks).reduce(
764
+ (a, [key, chEck]) => {
765
+ a[key] = (name, features, checker) => {
766
+ return new checkKlasser.prototype.constructor(
767
+ key,
768
+ features,
769
+ chEck,
770
+ checker
771
+ );
772
+ };
773
+ return a;
774
+ },
775
+ {}
776
+ );
777
+ super(
778
+ input,
779
+ classySuites,
780
+ classyGivens,
781
+ classyWhens,
782
+ classyThens,
783
+ classyChecks,
784
+ testResourceRequirement,
785
+ testSpecification
786
+ );
787
+ }
788
+ };
789
+
790
+ // src/lib/core.ts
791
+ var TesterantoCore = class extends ClassBuilder {
792
+ constructor(input, testSpecification, testImplementation, testResourceRequirement = defaultTestResourceRequirement, testInterface, uberCatcher) {
793
+ const fullTestInterface = DefaultTestInterface(testInterface);
794
+ super(
795
+ testImplementation,
796
+ testSpecification,
797
+ input,
798
+ class extends BaseSuite {
799
+ afterAll(store, artifactory, pm) {
800
+ return fullTestInterface.afterAll(store, pm);
801
+ }
802
+ assertThat(t) {
803
+ return fullTestInterface.assertThis(t);
804
+ }
805
+ async setup(s, artifactory, tr, pm) {
806
+ return (fullTestInterface.beforeAll || (async (input2, artifactory2, tr2, pm2) => input2))(
807
+ s,
808
+ this.testResourceConfiguration,
809
+ // artifactory,
810
+ pm
811
+ );
812
+ }
813
+ },
814
+ class Given extends BaseGiven {
815
+ constructor() {
816
+ super(...arguments);
817
+ this.uberCatcher = uberCatcher;
818
+ }
819
+ async givenThat(subject, testResource, artifactory, initializer, initialValues, pm) {
820
+ return fullTestInterface.beforeEach(
821
+ subject,
822
+ initializer,
823
+ testResource,
824
+ initialValues,
825
+ pm
826
+ );
827
+ }
828
+ afterEach(store, key, artifactory, pm) {
829
+ return new Promise(
830
+ (res) => res(fullTestInterface.afterEach(store, key, pm))
831
+ );
832
+ }
833
+ },
834
+ class When extends BaseWhen {
835
+ async andWhen(store, whenCB, testResource, pm) {
836
+ return await fullTestInterface.andWhen(
837
+ store,
838
+ whenCB,
839
+ testResource,
840
+ pm
841
+ );
842
+ }
843
+ },
844
+ class Then extends BaseThen {
845
+ async butThen(store, thenCB, testResource, pm) {
846
+ return await fullTestInterface.butThen(
847
+ store,
848
+ thenCB,
849
+ testResource,
850
+ pm
851
+ );
852
+ }
853
+ },
854
+ class Check extends BaseCheck {
855
+ constructor(name, features, checkCallback, x, i, c) {
856
+ super(name, features, checkCallback, x, c);
857
+ this.initialValues = i;
858
+ }
859
+ async checkThat(subject, testResourceConfiguration, artifactory, initializer, initialValues, pm) {
860
+ return fullTestInterface.beforeEach(
861
+ subject,
862
+ initializer,
863
+ testResourceConfiguration,
864
+ initialValues,
865
+ pm
866
+ );
867
+ }
868
+ afterEach(store, key, artifactory, pm) {
869
+ return new Promise(
870
+ (res) => res(fullTestInterface.afterEach(store, key, pm))
871
+ );
872
+ }
873
+ },
874
+ testResourceRequirement
875
+ );
876
+ }
877
+ };
878
+
879
+ // src/Web.ts
880
+ var errorCallback = (e) => {
881
+ };
882
+ var unhandledrejectionCallback = (event) => {
883
+ console.log("window.addEventListener unhandledrejection", event);
884
+ };
885
+ var WebTesteranto = class extends TesterantoCore {
886
+ constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
887
+ super(
888
+ input,
889
+ testSpecification,
890
+ testImplementation,
891
+ testResourceRequirement,
892
+ testInterface,
893
+ (cb) => {
894
+ window.removeEventListener("error", errorCallback);
895
+ errorCallback = (e) => {
896
+ console.log("window.addEventListener error", e);
897
+ cb(e);
898
+ };
899
+ window.addEventListener("error", errorCallback);
900
+ window.removeEventListener(
901
+ "unhandledrejection",
902
+ unhandledrejectionCallback
903
+ );
904
+ window.removeEventListener(
905
+ "unhandledrejection",
906
+ unhandledrejectionCallback
907
+ );
908
+ unhandledrejectionCallback = (event) => {
909
+ console.log("window.addEventListener unhandledrejection", event);
910
+ cb({ error: event.reason.message });
911
+ };
912
+ window.addEventListener(
913
+ "unhandledrejection",
914
+ unhandledrejectionCallback
915
+ );
916
+ }
917
+ );
918
+ }
919
+ async receiveTestResourceConfig(partialTestResource) {
920
+ const t = partialTestResource;
921
+ const pm = new PM_Web(t);
922
+ return await this.testJobs[0].receiveTestResourceConfig(pm);
923
+ }
924
+ };
925
+ var Web_default = async (input, testSpecification, testImplementation, testInterface, testResourceRequirement = defaultTestResourceRequirement) => {
926
+ return new WebTesteranto(
927
+ input,
928
+ testSpecification,
929
+ testImplementation,
930
+ testResourceRequirement,
931
+ testInterface
932
+ );
933
+ };
934
+
935
+ export {
936
+ BaseGiven,
937
+ BaseWhen,
938
+ BaseThen,
939
+ BaseCheck,
940
+ BaseBuilder,
941
+ BaseSuite,
942
+ Web_default
943
+ };