testeranto 0.49.9 → 0.62.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 (241) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +71 -9
  3. package/dist/cjs-shim.js +12 -0
  4. package/dist/common/Features.js +2 -3
  5. package/dist/common/Node.js +53 -61
  6. package/dist/common/Project.js +272 -606
  7. package/dist/common/SubPackages/puppeteer.js +19 -0
  8. package/dist/common/{subPackages → SubPackages}/react/component/node.js +4 -4
  9. package/dist/common/{subPackages → SubPackages}/react/component/web.js +4 -4
  10. package/dist/common/SubPackages/react/jsx/index.js +13 -0
  11. package/dist/common/SubPackages/react/jsx/node.js +10 -0
  12. package/dist/common/SubPackages/react/jsx/web.js +10 -0
  13. package/dist/common/{subPackages → SubPackages}/react-dom/component/node.js +6 -6
  14. package/dist/common/{subPackages → SubPackages}/react-dom/component/web.js +11 -12
  15. package/dist/common/SubPackages/react-dom/jsx/node.js +39 -0
  16. package/dist/common/{subPackages → SubPackages}/react-dom/jsx/web.js +6 -27
  17. package/dist/common/{subPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +2 -2
  18. package/dist/common/{subPackages → SubPackages}/react-test-renderer/component/index.js +26 -15
  19. package/dist/common/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/component}/node.js +3 -5
  20. package/dist/common/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/component}/web.js +3 -5
  21. package/dist/common/{subPackages → SubPackages}/react-test-renderer/fc/node.js +4 -4
  22. package/dist/common/{subPackages → SubPackages}/react-test-renderer/fc/web.js +4 -4
  23. package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx/index.js +8 -2
  24. package/dist/common/{subPackages/react-test-renderer/jsx-promised → SubPackages/react-test-renderer/jsx}/node.js +4 -4
  25. package/dist/common/{subPackages/react → SubPackages/react-test-renderer}/jsx/web.js +4 -4
  26. package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +2 -2
  27. package/dist/common/{subPackages/react/jsx → SubPackages/react-test-renderer/jsx-promised}/node.js +2 -2
  28. package/dist/common/Types.js +32 -0
  29. package/dist/common/Web.js +41 -112
  30. package/dist/common/electron.js +188 -44
  31. package/dist/common/esbuildConfigs/features.js +14 -0
  32. package/dist/common/esbuildConfigs/index.js +20 -0
  33. package/dist/common/esbuildConfigs/node.js +35 -0
  34. package/dist/common/esbuildConfigs/report.js +48 -0
  35. package/dist/common/esbuildConfigs/tests.js +14 -0
  36. package/dist/common/esbuildConfigs/web.js +50 -0
  37. package/dist/common/lib/abstractBase.js +193 -0
  38. package/dist/common/lib/basebuilder.js +86 -0
  39. package/dist/common/lib/browser.js +26 -0
  40. package/dist/common/lib/classBuilder.js +41 -0
  41. package/dist/common/lib/core.js +52 -0
  42. package/dist/common/lib/index.js +19 -0
  43. package/dist/common/nodeWriterElectron.js +55 -0
  44. package/dist/common/preload.js +22 -21
  45. package/dist/common/report.html.js +31 -0
  46. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  47. package/dist/common/web.html.js +22 -0
  48. package/dist/module/Features.js +2 -3
  49. package/dist/module/Node.js +53 -61
  50. package/dist/module/Project.js +272 -583
  51. package/dist/module/SubPackages/puppeteer.js +14 -0
  52. package/dist/module/{subPackages → SubPackages}/react/component/node.js +3 -3
  53. package/dist/module/{subPackages → SubPackages}/react/component/web.js +3 -3
  54. package/dist/module/SubPackages/react/jsx/index.js +10 -0
  55. package/dist/module/SubPackages/react/jsx/node.js +5 -0
  56. package/dist/module/SubPackages/react/jsx/web.js +5 -0
  57. package/dist/module/{subPackages → SubPackages}/react-dom/component/node.js +5 -5
  58. package/dist/module/{subPackages → SubPackages}/react-dom/component/web.js +10 -11
  59. package/dist/module/SubPackages/react-dom/jsx/node.js +31 -0
  60. package/dist/module/{subPackages → SubPackages}/react-dom/jsx/web.js +5 -26
  61. package/dist/module/{subPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +2 -2
  62. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/index.js +23 -15
  63. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/node.js +2 -2
  64. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/web.js +2 -2
  65. package/dist/module/{subPackages → SubPackages}/react-test-renderer/fc/node.js +3 -3
  66. package/dist/module/{subPackages → SubPackages}/react-test-renderer/fc/web.js +3 -3
  67. package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx/index.js +8 -2
  68. package/dist/module/SubPackages/react-test-renderer/jsx/node.js +5 -0
  69. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +5 -0
  70. package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +2 -2
  71. package/dist/module/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/jsx-promised}/node.js +1 -1
  72. package/dist/module/Types.js +30 -1
  73. package/dist/module/Web.js +41 -112
  74. package/dist/module/electron.js +189 -45
  75. package/dist/module/esbuildConfigs/features.js +12 -0
  76. package/dist/module/esbuildConfigs/index.js +18 -0
  77. package/dist/module/esbuildConfigs/node.js +30 -0
  78. package/dist/module/esbuildConfigs/report.js +48 -0
  79. package/dist/module/esbuildConfigs/tests.js +12 -0
  80. package/dist/module/esbuildConfigs/web.js +45 -0
  81. package/dist/module/lib/abstractBase.js +185 -0
  82. package/dist/module/lib/basebuilder.js +82 -0
  83. package/dist/module/lib/browser.js +22 -0
  84. package/dist/module/lib/classBuilder.js +37 -0
  85. package/dist/module/lib/core.js +49 -0
  86. package/dist/module/lib/index.js +15 -0
  87. package/dist/module/nodeWriterElectron.js +52 -0
  88. package/dist/module/preload.js +22 -21
  89. package/dist/module/report.html.js +29 -0
  90. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  91. package/dist/module/web.html.js +20 -0
  92. package/dist/prebuild/Report.css +10326 -0
  93. package/dist/prebuild/Report.js +37456 -0
  94. package/dist/types/Features.d.ts +5 -5
  95. package/dist/types/Node.d.ts +4 -11
  96. package/dist/types/NodeWriter.d.ts +1 -1
  97. package/dist/types/Project.d.ts +2 -27
  98. package/dist/types/SubPackages/puppeteer.d.ts +6 -0
  99. package/dist/types/SubPackages/react/component/node.d.ts +7 -0
  100. package/dist/types/SubPackages/react/component/web.d.ts +7 -0
  101. package/dist/types/SubPackages/react/jsx/index.d.ts +15 -0
  102. package/dist/types/SubPackages/react/jsx/node.d.ts +4 -0
  103. package/dist/types/SubPackages/react/jsx/web.d.ts +4 -0
  104. package/dist/types/{subPackages → SubPackages}/react-dom/component/node.d.ts +2 -4
  105. package/dist/types/SubPackages/react-dom/component/web.d.ts +5 -0
  106. package/dist/types/{subPackages → SubPackages}/react-dom/jsx/index.d.ts +3 -3
  107. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +6 -0
  108. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +5 -0
  109. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +5 -0
  110. package/dist/types/{subPackages → SubPackages}/react-test-renderer/component/index.d.ts +6 -6
  111. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +9 -0
  112. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +4 -0
  113. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +8 -0
  114. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +8 -0
  115. package/dist/types/{subPackages → SubPackages}/react-test-renderer/jsx/index.d.ts +5 -4
  116. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +9 -0
  117. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +9 -0
  118. package/dist/types/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.d.ts +4 -4
  119. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +5 -0
  120. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +5 -0
  121. package/dist/types/Types.d.ts +116 -3
  122. package/dist/types/Web.d.ts +4 -11
  123. package/dist/types/esbuildConfigs/features.d.ts +4 -0
  124. package/dist/types/esbuildConfigs/index.d.ts +4 -0
  125. package/dist/types/esbuildConfigs/node.d.ts +4 -0
  126. package/dist/types/esbuildConfigs/report.d.ts +0 -0
  127. package/dist/types/esbuildConfigs/tests.d.ts +4 -0
  128. package/dist/types/esbuildConfigs/web.d.ts +4 -0
  129. package/dist/types/lib/abstractBase.d.ts +102 -0
  130. package/dist/types/lib/basebuilder.d.ts +24 -0
  131. package/dist/types/lib/browser.d.ts +6 -0
  132. package/dist/types/lib/classBuilder.d.ts +6 -0
  133. package/dist/types/lib/core.d.ts +7 -0
  134. package/dist/types/lib/index.d.ts +57 -0
  135. package/dist/types/nodeWriterElectron.d.ts +2 -0
  136. package/dist/types/report.html.d.ts +2 -0
  137. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  138. package/dist/types/web.html.d.ts +2 -0
  139. package/electronBuild.ts +32 -0
  140. package/index.html +30 -0
  141. package/package.json +120 -85
  142. package/src/Features.ts +2 -4
  143. package/src/Node.ts +114 -160
  144. package/src/NodeWriter.ts +1 -4
  145. package/src/Project.ts +610 -753
  146. package/src/Report.tsx +30 -15
  147. package/src/SubPackages/puppeteer.ts +46 -0
  148. package/src/{subPackages → SubPackages}/react/component/node.ts +12 -32
  149. package/src/SubPackages/react/component/web.ts +53 -0
  150. package/src/SubPackages/react/jsx/index.ts +43 -0
  151. package/src/SubPackages/react/jsx/node.ts +29 -0
  152. package/src/SubPackages/react/jsx/web.ts +28 -0
  153. package/src/{subPackages → SubPackages}/react-dom/component/node.ts +11 -25
  154. package/src/{subPackages → SubPackages}/react-dom/component/web.ts +27 -32
  155. package/src/{subPackages → SubPackages}/react-dom/jsx/index.ts +3 -5
  156. package/src/SubPackages/react-dom/jsx/node.ts +68 -0
  157. package/src/{subPackages → SubPackages}/react-dom/jsx/web.ts +19 -62
  158. package/src/{subPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.ts +9 -28
  159. package/src/{subPackages → SubPackages}/react-test-renderer/component/index.ts +31 -29
  160. package/src/SubPackages/react-test-renderer/component/node.ts +22 -0
  161. package/src/SubPackages/react-test-renderer/component/web.ts +22 -0
  162. package/src/{subPackages → SubPackages}/react-test-renderer/fc/node.ts +14 -28
  163. package/src/{subPackages → SubPackages}/react-test-renderer/fc/web.ts +9 -25
  164. package/src/{subPackages → SubPackages}/react-test-renderer/jsx/index.ts +19 -16
  165. package/src/SubPackages/react-test-renderer/jsx/node.ts +24 -0
  166. package/src/SubPackages/react-test-renderer/jsx/web.ts +20 -0
  167. package/src/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.ts +7 -15
  168. package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +19 -0
  169. package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +22 -0
  170. package/src/Types.ts +334 -3
  171. package/src/Web.ts +104 -230
  172. package/src/cjs-shim.js +12 -0
  173. package/src/electron.ts +237 -46
  174. package/src/esbuildConfigs/features.ts +18 -0
  175. package/src/esbuildConfigs/index.ts +22 -0
  176. package/src/esbuildConfigs/node.ts +59 -0
  177. package/src/esbuildConfigs/report.ts +51 -0
  178. package/src/esbuildConfigs/tests.ts +20 -0
  179. package/src/esbuildConfigs/web.ts +73 -0
  180. package/src/lib/abstractBase.ts +459 -0
  181. package/src/lib/basebuilder.ts +253 -0
  182. package/src/lib/browser.ts +34 -0
  183. package/src/lib/classBuilder.ts +137 -0
  184. package/src/lib/core.ts +182 -0
  185. package/src/lib/index.ts +116 -0
  186. package/src/nodeWriterElectron.ts +71 -0
  187. package/src/preload.ts +23 -21
  188. package/src/report.html.ts +29 -0
  189. package/src/web.html.ts +20 -0
  190. package/tests/Rectangle.test.ts +189 -0
  191. package/tsconfig.json +19 -6
  192. package/tsconfig.module.json +15 -4
  193. package/tsconfig.types.json +14 -4
  194. package/yarn-error.log +3144 -0
  195. package/dist/common/core.js +0 -397
  196. package/dist/common/subPackages/react/jsx/index.js +0 -26
  197. package/dist/common/subPackages/react-dom/jsx/node.js +0 -95
  198. package/dist/common/subPackages/react-test-renderer/component/node.js +0 -8
  199. package/dist/common/subPackages/react-test-renderer/component/web.js +0 -8
  200. package/dist/module/Report.js +0 -186
  201. package/dist/module/core.js +0 -388
  202. package/dist/module/subPackages/react/jsx/index.js +0 -22
  203. package/dist/module/subPackages/react/jsx/node.js +0 -5
  204. package/dist/module/subPackages/react/jsx/web.js +0 -5
  205. package/dist/module/subPackages/react-dom/jsx/node.js +0 -87
  206. package/dist/module/subPackages/react-test-renderer/jsx/web.js +0 -5
  207. package/dist/module/subPackages/react-test-renderer/jsx-promised/node.js +0 -5
  208. package/dist/types/core.d.ts +0 -220
  209. package/dist/types/subPackages/react/component/node.d.ts +0 -12
  210. package/dist/types/subPackages/react/component/web.d.ts +0 -12
  211. package/dist/types/subPackages/react/jsx/index.d.ts +0 -15
  212. package/dist/types/subPackages/react/jsx/node.d.ts +0 -4
  213. package/dist/types/subPackages/react/jsx/web.d.ts +0 -4
  214. package/dist/types/subPackages/react-dom/component/web.d.ts +0 -19
  215. package/dist/types/subPackages/react-dom/jsx/node.d.ts +0 -8
  216. package/dist/types/subPackages/react-dom/jsx/web.d.ts +0 -5
  217. package/dist/types/subPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -8
  218. package/dist/types/subPackages/react-test-renderer/component/node.d.ts +0 -9
  219. package/dist/types/subPackages/react-test-renderer/component/web.d.ts +0 -9
  220. package/dist/types/subPackages/react-test-renderer/fc/node.d.ts +0 -9
  221. package/dist/types/subPackages/react-test-renderer/fc/web.d.ts +0 -9
  222. package/dist/types/subPackages/react-test-renderer/jsx/node.d.ts +0 -4
  223. package/dist/types/subPackages/react-test-renderer/jsx/web.d.ts +0 -4
  224. package/dist/types/subPackages/react-test-renderer/jsx-promised/node.d.ts +0 -4
  225. package/dist/types/subPackages/react-test-renderer/jsx-promised/web.d.ts +0 -4
  226. package/src/core.ts +0 -1399
  227. package/src/subPackages/react/component/web.ts +0 -80
  228. package/src/subPackages/react/jsx/index.ts +0 -64
  229. package/src/subPackages/react/jsx/node.ts +0 -29
  230. package/src/subPackages/react/jsx/web.ts +0 -29
  231. package/src/subPackages/react-dom/jsx/node.ts +0 -146
  232. package/src/subPackages/react-test-renderer/component/node.ts +0 -30
  233. package/src/subPackages/react-test-renderer/component/web.ts +0 -30
  234. package/src/subPackages/react-test-renderer/jsx/node.ts +0 -31
  235. package/src/subPackages/react-test-renderer/jsx/web.ts +0 -31
  236. package/src/subPackages/react-test-renderer/jsx-promised/node.ts +0 -31
  237. package/src/subPackages/react-test-renderer/jsx-promised/web.ts +0 -31
  238. /package/dist/common/{subPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  239. /package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  240. /package/dist/module/{subPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  241. /package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
@@ -1,397 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseCheck = exports.BaseThen = exports.BaseWhen = exports.BaseGiven = exports.BaseSuite = exports.defaultTestResourceRequirement = void 0;
4
- const defaultTestResource = {
5
- name: "",
6
- fs: ".",
7
- ports: [],
8
- scheduled: false
9
- };
10
- exports.defaultTestResourceRequirement = {
11
- ports: 0
12
- };
13
- class BaseSuite {
14
- constructor(name, index, givens = {}, checks = []) {
15
- this.name = name;
16
- this.index = index;
17
- this.givens = givens;
18
- this.checks = checks;
19
- this.fails = [];
20
- }
21
- toObj() {
22
- return {
23
- name: this.name,
24
- givens: Object.keys(this.givens).map((k) => this.givens[k].toObj()),
25
- fails: this.fails,
26
- };
27
- }
28
- setup(s, artifactory) {
29
- return new Promise((res) => res(s));
30
- }
31
- test(t) {
32
- return t;
33
- }
34
- async run(input, testResourceConfiguration, artifactory, tLog) {
35
- this.testResourceConfiguration = testResourceConfiguration;
36
- const suiteArtifactory = (fPath, value) => artifactory(`suite-${this.index}-${this.name}/${fPath}`, value);
37
- const subject = await this.setup(input, suiteArtifactory);
38
- tLog("\nSuite:", this.index, this.name);
39
- for (const k of Object.keys(this.givens)) {
40
- const giver = this.givens[k];
41
- try {
42
- this.store = await giver.give(subject, k, testResourceConfiguration, this.test, suiteArtifactory, tLog);
43
- }
44
- catch (e) {
45
- console.error(e);
46
- this.fails.push(giver);
47
- return this;
48
- }
49
- }
50
- for (const [ndx, thater] of this.checks.entries()) {
51
- await thater.check(subject, thater.name, testResourceConfiguration, this.test, suiteArtifactory, tLog);
52
- }
53
- // @TODO fix me
54
- for (const k of Object.keys(this.givens)) {
55
- const giver = this.givens[k];
56
- giver.afterAll(this.store, artifactory);
57
- }
58
- ////////////////
59
- return this;
60
- }
61
- }
62
- exports.BaseSuite = BaseSuite;
63
- class BaseGiven {
64
- constructor(name, features, whens, thens) {
65
- this.name = name;
66
- this.features = features;
67
- this.whens = whens;
68
- this.thens = thens;
69
- }
70
- beforeAll(store, artifactory) {
71
- return store;
72
- }
73
- afterAll(store, artifactory) {
74
- return store;
75
- }
76
- toObj() {
77
- return {
78
- name: this.name,
79
- whens: this.whens.map((w) => w.toObj()),
80
- thens: this.thens.map((t) => t.toObj()),
81
- error: this.error ? [this.error, this.error.stack] : null,
82
- features: this.features,
83
- };
84
- }
85
- async afterEach(store, key, artifactory) {
86
- return store;
87
- }
88
- async give(subject, key, testResourceConfiguration, tester, artifactory, tLog) {
89
- tLog(`\n Given: ${this.name}`);
90
- const givenArtifactory = (fPath, value) => artifactory(`given-${key}/${fPath}`, value);
91
- try {
92
- this.store = await this.givenThat(subject, testResourceConfiguration, givenArtifactory);
93
- // tLog(`\n Given this.store`, this.store);
94
- for (const whenStep of this.whens) {
95
- await whenStep.test(this.store, testResourceConfiguration, tLog);
96
- }
97
- for (const thenStep of this.thens) {
98
- const t = await thenStep.test(this.store, testResourceConfiguration, tLog);
99
- tester(t);
100
- }
101
- }
102
- catch (e) {
103
- this.error = e;
104
- tLog(e);
105
- tLog("\u0007"); // bell
106
- // throw e;
107
- }
108
- finally {
109
- try {
110
- await this.afterEach(this.store, key, givenArtifactory);
111
- }
112
- catch (e) {
113
- console.error("afterEach failed! no error will be recorded!", e);
114
- }
115
- }
116
- return this.store;
117
- }
118
- }
119
- exports.BaseGiven = BaseGiven;
120
- class BaseWhen {
121
- constructor(name, actioner) {
122
- this.name = name;
123
- this.actioner = actioner;
124
- }
125
- toObj() {
126
- return {
127
- name: this.name,
128
- error: this.error,
129
- };
130
- }
131
- async test(store, testResourceConfiguration, tLog) {
132
- tLog(" When:", this.name);
133
- try {
134
- return await this.andWhen(store, this.actioner, testResourceConfiguration);
135
- }
136
- catch (e) {
137
- this.error = true;
138
- throw e;
139
- }
140
- }
141
- }
142
- exports.BaseWhen = BaseWhen;
143
- class BaseThen {
144
- constructor(name, thenCB) {
145
- this.name = name;
146
- this.thenCB = thenCB;
147
- }
148
- toObj() {
149
- return {
150
- name: this.name,
151
- error: this.error,
152
- };
153
- }
154
- async test(store, testResourceConfiguration, tLog) {
155
- tLog(" Then:", this.name);
156
- try {
157
- return this.thenCB(await this.butThen(store, testResourceConfiguration));
158
- }
159
- catch (e) {
160
- console.log("test failed", e);
161
- this.error = true;
162
- throw e;
163
- }
164
- // try {
165
- // return await (this.thenCB(
166
- // await (async () => {
167
- // try {
168
- // return await (
169
- // (() => {
170
- // try {
171
- // return this.butThen(store, testResourceConfiguration)
172
- // } catch (e) {
173
- // this.error = true;
174
- // throw e
175
- // }
176
- // })()
177
- // );
178
- // } catch (e) {
179
- // this.error = true;
180
- // throw e
181
- // }
182
- // })()
183
- // ));
184
- // } catch (e) {
185
- // this.error = true;
186
- // throw e
187
- // }
188
- }
189
- }
190
- exports.BaseThen = BaseThen;
191
- class BaseCheck {
192
- constructor(name, features, checkCB, whens, thens) {
193
- this.name = name;
194
- this.features = features;
195
- this.checkCB = checkCB;
196
- this.whens = whens;
197
- this.thens = thens;
198
- }
199
- async afterEach(store, key, cb) {
200
- return;
201
- }
202
- async check(subject, key, testResourceConfiguration, tester, artifactory, tLog) {
203
- tLog(`\n Check: ${this.name}`);
204
- const store = await this.checkThat(subject, testResourceConfiguration, artifactory);
205
- await this.checkCB(Object.entries(this.whens).reduce((a, [key, when]) => {
206
- a[key] = async (payload) => {
207
- return await when(payload, testResourceConfiguration).test(store, testResourceConfiguration, tLog);
208
- };
209
- return a;
210
- }, {}), Object.entries(this.thens).reduce((a, [key, then]) => {
211
- a[key] = async (payload) => {
212
- const t = await then(payload, testResourceConfiguration).test(store, testResourceConfiguration, tLog);
213
- tester(t);
214
- };
215
- return a;
216
- }, {}));
217
- await this.afterEach(store, key);
218
- return;
219
- }
220
- }
221
- exports.BaseCheck = BaseCheck;
222
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////
223
- class TesterantoLevelZero {
224
- constructor(cc, suitesOverrides, givenOverides, whenOverides, thenOverides, checkOverides) {
225
- this.cc = cc;
226
- this.constructorator = cc;
227
- this.suitesOverrides = suitesOverrides;
228
- this.givenOverides = givenOverides;
229
- this.whenOverides = whenOverides;
230
- this.thenOverides = thenOverides;
231
- this.checkOverides = checkOverides;
232
- }
233
- Suites() {
234
- return this.suitesOverrides;
235
- }
236
- Given() {
237
- return this.givenOverides;
238
- }
239
- When() {
240
- return this.whenOverides;
241
- }
242
- Then() {
243
- return this.thenOverides;
244
- }
245
- Check() {
246
- return this.checkOverides;
247
- }
248
- }
249
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////
250
- class TesterantoLevelOne {
251
- constructor(testImplementation, testSpecification, input, suiteKlasser, givenKlasser, whenKlasser, thenKlasser, checkKlasser, testResourceRequirement, logWriter) {
252
- this.artifacts = [];
253
- console.log("core TesterantoLevelOne logWriter", logWriter);
254
- const classySuites = Object.entries(testImplementation.Suites).reduce((a, [key], index) => {
255
- a[key] = (somestring, givens, checks) => {
256
- return new suiteKlasser.prototype.constructor(somestring, index, givens, checks);
257
- };
258
- return a;
259
- }, {});
260
- const classyGivens = Object.keys(testImplementation.Givens)
261
- .reduce((a, key) => {
262
- a[key] = (features, whens, thens, ...xtrasW) => {
263
- return new givenKlasser.prototype.constructor(key, features, whens, thens, testImplementation.Givens[key](...xtrasW));
264
- };
265
- return a;
266
- }, {});
267
- const classyWhens = Object.entries(testImplementation.Whens).reduce((a, [key, whEn]) => {
268
- a[key] = (payload) => {
269
- return new whenKlasser.prototype.constructor(`${whEn.name}: ${payload && payload.toString()}`, whEn(payload));
270
- };
271
- return a;
272
- }, {});
273
- const classyThens = Object.entries(testImplementation.Thens).reduce((a, [key, thEn]) => {
274
- a[key] = (expected, x) => {
275
- return new thenKlasser.prototype.constructor(`${thEn.name}: ${expected && expected.toString()}`, thEn(expected));
276
- };
277
- return a;
278
- }, {});
279
- const classyChecks = Object.entries(testImplementation.Checks).reduce((a, [key, z]) => {
280
- a[key] = (somestring, features, callback) => {
281
- return new checkKlasser.prototype.constructor(somestring, features, callback, classyWhens, classyThens);
282
- };
283
- return a;
284
- }, {});
285
- const classyTesteranto = new (class extends TesterantoLevelZero {
286
- })(input, classySuites, classyGivens, classyWhens, classyThens, classyChecks);
287
- const suites = testSpecification(
288
- /* @ts-ignore:next-line */
289
- classyTesteranto.Suites(), classyTesteranto.Given(), classyTesteranto.When(), classyTesteranto.Then(), classyTesteranto.Check(), logWriter);
290
- const suiteRunner = (suite) => async (testResourceConfiguration, tLog) => {
291
- return await suite.run(input, testResourceConfiguration, (fPath, value) => logWriter.testArtiFactoryfileWriter(tLog, (p) => {
292
- artifacts.push(p);
293
- })(testResourceConfiguration.fs + "/" + fPath, value), tLog);
294
- };
295
- const artifacts = this.artifacts;
296
- this.testJobs = suites.map((suite) => {
297
- const runner = suiteRunner(suite);
298
- return {
299
- test: suite,
300
- testResourceRequirement,
301
- toObj: () => {
302
- return suite.toObj();
303
- },
304
- runner,
305
- receiveTestResourceConfig: async function (testResourceConfiguration = defaultTestResource) {
306
- console.log(`testResourceConfiguration ${JSON.stringify(testResourceConfiguration, null, 2)}`);
307
- await logWriter.mkdirSync(testResourceConfiguration.fs);
308
- const logFilePath = (`${testResourceConfiguration.fs}/log.txt`);
309
- const access = await logWriter.createWriteStream(logFilePath);
310
- const tLog = (...l) => {
311
- console.log(...l);
312
- access.write(`${l.toString()}\n`);
313
- };
314
- const suiteDone = await runner(testResourceConfiguration, tLog);
315
- const resultsFilePath = (`${testResourceConfiguration.fs}/results.json`);
316
- logWriter.writeFileSync(resultsFilePath, JSON.stringify(suiteDone.toObj(), null, 2));
317
- const logPromise = new Promise((res, rej) => {
318
- access.on("finish", () => { res(true); });
319
- });
320
- access.end();
321
- const numberOfFailures = Object.keys(suiteDone.givens).filter((k) => {
322
- // console.log(`suiteDone.givens[k].error`, suiteDone.givens[k].error);
323
- return suiteDone.givens[k].error;
324
- }).length;
325
- console.log(`exiting gracefully with ${numberOfFailures} failures.`);
326
- return {
327
- failed: numberOfFailures,
328
- artifacts,
329
- logPromise
330
- };
331
- },
332
- };
333
- });
334
- }
335
- }
336
- ////////////////////////////////////////////////////////////////////////////////////////////////
337
- class TesterantoLevelTwo extends TesterantoLevelOne {
338
- constructor(input, testSpecification, testImplementation, testInterface, testResourceRequirement = exports.defaultTestResourceRequirement, assertioner, beforeEach, afterEach, afterAll, butThen, andWhen, actionHandler, logWriter) {
339
- super(testImplementation, testSpecification, input, class extends BaseSuite {
340
- async setup(s, artifactory) {
341
- return (testInterface.beforeAll || (async (input, artificer) => input))(s, artifactory, this.testResourceConfiguration);
342
- }
343
- test(t) {
344
- return assertioner(t);
345
- }
346
- }, class Given extends BaseGiven {
347
- constructor(name, features, whens, thens, initialValues) {
348
- super(name, features, whens, thens);
349
- this.initialValues = initialValues;
350
- }
351
- async givenThat(subject, testResource, artifactory) {
352
- return beforeEach(subject, this.initialValues, testResource, (fPath, value) =>
353
- // TODO does not work?
354
- artifactory(`beforeEach/${fPath}`, value));
355
- }
356
- afterEach(store, key, artifactory) {
357
- return new Promise((res) => res(afterEach(store, key, (fPath, value) => artifactory(`after/${fPath}`, value))));
358
- }
359
- afterAll(store, artifactory) {
360
- return afterAll(store, (fPath, value) =>
361
- // TODO does not work?
362
- artifactory(`afterAll4-${this.name}/${fPath}`, value));
363
- }
364
- }, class When extends BaseWhen {
365
- constructor(name, actioner, payload) {
366
- super(name, (store) => {
367
- return actionHandler(actioner);
368
- });
369
- this.payload = payload;
370
- }
371
- async andWhen(store, actioner, testResource) {
372
- return await andWhen(store, actioner, testResource);
373
- }
374
- }, class Then extends BaseThen {
375
- constructor(name, callback) {
376
- super(name, callback);
377
- }
378
- async butThen(store, testResourceConfiguration) {
379
- return await butThen(store, this.thenCB, testResourceConfiguration);
380
- }
381
- }, class Check extends BaseCheck {
382
- constructor(name, features, checkCallback, whens, thens, initialValues) {
383
- super(name, features, checkCallback, whens, thens);
384
- this.initialValues = initialValues;
385
- }
386
- async checkThat(subject, testResourceConfiguration, artifactory) {
387
- return beforeEach(subject, this.initialValues, testResourceConfiguration, (fPath, value) => artifactory(`before/${fPath}`, value));
388
- }
389
- afterEach(store, key, artifactory) {
390
- return new Promise((res) => res(afterEach(store, key, (fPath, value) =>
391
- // TODO does not work?
392
- artifactory(`afterEach2-${this.name}/${fPath}`, value))));
393
- }
394
- }, testResourceRequirement, logWriter);
395
- }
396
- }
397
- exports.default = TesterantoLevelTwo;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.testInterface = void 0;
4
- // const TesterantoComponent = (testInput) => (props) => {
5
- // const myContainer = useRef(null);
6
- // useEffect(() => {
7
- // console.log(
8
- // "useeffectCalled"
9
- // );
10
- // props.done(myContainer.current);
11
- // }, []);
12
- // return React.createElement('div', { ref: myContainer }, testInput()); //testInput();
13
- // };
14
- const testInterface = (testInput) => {
15
- return {
16
- beforeEach: async (x, ndx, testRsource, artificer) => {
17
- return new Promise((resolve, rej) => {
18
- resolve(testInput());
19
- });
20
- },
21
- andWhen: function (s, actioner) {
22
- return actioner()(s);
23
- },
24
- };
25
- };
26
- exports.testInterface = testInterface;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Stream = exports.renderToStaticNodeStream = exports.renderToStaticMarkup = void 0;
7
- const Node_1 = __importDefault(require("../../../Node"));
8
- const react_1 = require("react");
9
- const server_1 = require("react-dom/server");
10
- Object.defineProperty(exports, "renderToStaticMarkup", { enumerable: true, get: function () { return server_1.renderToStaticMarkup; } });
11
- Object.defineProperty(exports, "renderToStaticNodeStream", { enumerable: true, get: function () { return server_1.renderToStaticNodeStream; } });
12
- const stream_1 = __importDefault(require("stream"));
13
- exports.Stream = stream_1.default;
14
- exports.default = (testImplementations, testSpecifications, testInput) => {
15
- return (0, Node_1.default)(testInput, testSpecifications, testImplementations, {
16
- beforeAll: async (prototype, artificer) => {
17
- return await new Promise((resolve, rej) => {
18
- resolve();
19
- });
20
- },
21
- beforeEach: async (reactComponent, ndx, testRsource, artificer) => {
22
- return new Promise((resolve, rej) => {
23
- // Ignore these type errors
24
- resolve((0, react_1.createElement)(testInput));
25
- });
26
- },
27
- andWhen: async function (s, actioner) {
28
- // return actioner()(s);
29
- return s;
30
- },
31
- butThen: async function (s) {
32
- return s;
33
- },
34
- afterEach: async function (store, ndx, artificer) {
35
- return {};
36
- },
37
- afterAll: (store, artificer) => {
38
- return;
39
- },
40
- });
41
- };
42
- // type IInput = typeof React.Component;
43
- // type InitialState = unknown;
44
- // type IWhenShape = any;
45
- // type IThenShape = any;
46
- // type ISelection = string;
47
- // type IStore = string;
48
- // type ISubject = string
49
- // export default <ITestShape extends ITTestShape>(
50
- // testImplementations: ITestImplementation<
51
- // InitialState,
52
- // ISelection,
53
- // IWhenShape,
54
- // IThenShape,
55
- // ITestShape
56
- // >,
57
- // testSpecifications: ITestSpecification<
58
- // ITestShape,
59
- // ISubject,
60
- // IStore,
61
- // ISelection,
62
- // IThenShape
63
- // >,
64
- // testInput: IInput
65
- // ) => {
66
- // return Testeranto<
67
- // ITestShape,
68
- // IInput,
69
- // ISubject,
70
- // IStore,
71
- // ISelection,
72
- // IThenShape,
73
- // IWhenShape,
74
- // InitialState
75
- // >(
76
- // testInput,
77
- // testSpecifications,
78
- // testImplementations,
79
- // {
80
- // beforeEach: async (
81
- // element,
82
- // ndx,
83
- // testResource,
84
- // artificer
85
- // ): Promise<IStore> => {
86
- // return new Promise((resolve, rej) => {
87
- // resolve(ReactDOMServer.renderToStaticMarkup(element));
88
- // });
89
- // },
90
- // andWhen: function (s: IStore, actioner): Promise<ISelection> {
91
- // throw new Error(`"andWhens" are not permitted`);
92
- // }
93
- // },
94
- // )
95
- // };
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const Node_1 = __importDefault(require("../../../Node"));
7
- const _1 = require(".");
8
- exports.default = (testImplementations, testSpecifications, testInput) => (0, Node_1.default)(testInput, testSpecifications, testImplementations, _1.testInterface);
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const Web_1 = __importDefault(require("../../../Web"));
7
- const _1 = require(".");
8
- exports.default = (testImplementations, testSpecifications, testInput) => (0, Web_1.default)(testInput, testSpecifications, testImplementations, _1.testInterface);