testeranto 0.143.0 → 0.146.1

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