testeranto 0.49.10 → 0.70.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 (250) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +92 -9
  3. package/dist/cjs-shim.js +12 -0
  4. package/dist/common/Features.js +2 -3
  5. package/dist/common/Node.js +37 -62
  6. package/dist/common/NodeWriter.js +7 -9
  7. package/dist/common/Project.js +130 -627
  8. package/dist/common/SubPackages/puppeteer.js +19 -0
  9. package/dist/common/{subPackages → SubPackages}/react/component/node.js +4 -4
  10. package/dist/common/{subPackages → SubPackages}/react/component/web.js +4 -4
  11. package/dist/common/SubPackages/react/jsx/index.js +13 -0
  12. package/dist/common/SubPackages/react/jsx/node.js +10 -0
  13. package/dist/common/SubPackages/react/jsx/web.js +10 -0
  14. package/dist/common/{subPackages → SubPackages}/react-dom/component/node.js +6 -6
  15. package/dist/common/{subPackages → SubPackages}/react-dom/component/web.js +11 -12
  16. package/dist/common/SubPackages/react-dom/jsx/node.js +39 -0
  17. package/dist/common/{subPackages → SubPackages}/react-dom/jsx/web.js +19 -20
  18. package/dist/common/{subPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +3 -3
  19. package/dist/common/{subPackages → SubPackages}/react-test-renderer/component/index.js +25 -15
  20. package/dist/common/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/component}/node.js +3 -5
  21. package/dist/common/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/component}/web.js +3 -5
  22. package/dist/common/{subPackages → SubPackages}/react-test-renderer/fc/node.js +4 -4
  23. package/dist/common/{subPackages → SubPackages}/react-test-renderer/fc/web.js +4 -4
  24. package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx/index.js +8 -3
  25. package/dist/common/{subPackages/react-test-renderer/jsx-promised → SubPackages/react-test-renderer/jsx}/node.js +4 -4
  26. package/dist/common/{subPackages/react → SubPackages/react-test-renderer}/jsx/web.js +4 -4
  27. package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +3 -3
  28. package/dist/common/{subPackages/react/jsx → SubPackages/react-test-renderer/jsx-promised}/node.js +2 -2
  29. package/dist/common/Types.js +2 -0
  30. package/dist/common/Web.js +49 -113
  31. package/dist/common/electron.js +256 -42
  32. package/dist/common/esbuildConfigs/features.js +14 -0
  33. package/dist/common/esbuildConfigs/index.js +20 -0
  34. package/dist/common/esbuildConfigs/node.js +37 -0
  35. package/dist/common/esbuildConfigs/report.js +13 -0
  36. package/dist/common/esbuildConfigs/tests.js +13 -0
  37. package/dist/common/esbuildConfigs/web.js +53 -0
  38. package/dist/common/lib/abstractBase.js +200 -0
  39. package/dist/common/lib/basebuilder.js +86 -0
  40. package/dist/common/lib/classBuilder.js +40 -0
  41. package/dist/common/lib/core.js +81 -0
  42. package/dist/common/lib/index.js +21 -0
  43. package/dist/common/lib/types.js +2 -0
  44. package/dist/common/preload.js +15 -24
  45. package/dist/common/puppeteerConfiger.js +24 -0
  46. package/dist/common/report.html.js +31 -0
  47. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  48. package/dist/common/web.html.js +22 -0
  49. package/dist/module/Features.js +2 -3
  50. package/dist/module/Node.js +37 -62
  51. package/dist/module/NodeWriter.js +7 -9
  52. package/dist/module/Project.js +131 -605
  53. package/dist/module/SubPackages/puppeteer.js +14 -0
  54. package/dist/module/{subPackages → SubPackages}/react/component/node.js +3 -3
  55. package/dist/module/{subPackages → SubPackages}/react/component/web.js +3 -3
  56. package/dist/module/SubPackages/react/jsx/index.js +10 -0
  57. package/dist/module/SubPackages/react/jsx/node.js +5 -0
  58. package/dist/module/SubPackages/react/jsx/web.js +5 -0
  59. package/dist/module/{subPackages → SubPackages}/react-dom/component/node.js +7 -7
  60. package/dist/module/{subPackages → SubPackages}/react-dom/component/web.js +10 -11
  61. package/dist/module/SubPackages/react-dom/jsx/node.js +31 -0
  62. package/dist/module/{subPackages → SubPackages}/react-dom/jsx/web.js +20 -21
  63. package/dist/module/{subPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +3 -3
  64. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/index.js +22 -15
  65. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/node.js +2 -2
  66. package/dist/module/{subPackages → SubPackages}/react-test-renderer/component/web.js +2 -2
  67. package/dist/module/{subPackages → SubPackages}/react-test-renderer/fc/node.js +3 -3
  68. package/dist/module/{subPackages → SubPackages}/react-test-renderer/fc/web.js +3 -3
  69. package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx/index.js +8 -3
  70. package/dist/module/SubPackages/react-test-renderer/jsx/node.js +5 -0
  71. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +5 -0
  72. package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +3 -3
  73. package/dist/module/{subPackages/react-test-renderer/jsx → SubPackages/react-test-renderer/jsx-promised}/node.js +1 -1
  74. package/dist/module/Types.js +2 -0
  75. package/dist/module/Web.js +49 -113
  76. package/dist/module/electron.js +257 -43
  77. package/dist/module/esbuildConfigs/features.js +12 -0
  78. package/dist/module/esbuildConfigs/index.js +18 -0
  79. package/dist/module/esbuildConfigs/node.js +32 -0
  80. package/dist/module/esbuildConfigs/report.js +11 -0
  81. package/dist/module/esbuildConfigs/tests.js +11 -0
  82. package/dist/module/esbuildConfigs/web.js +48 -0
  83. package/dist/module/lib/abstractBase.js +192 -0
  84. package/dist/module/lib/basebuilder.js +82 -0
  85. package/dist/module/lib/classBuilder.js +36 -0
  86. package/dist/module/lib/core.js +78 -0
  87. package/dist/module/lib/index.js +17 -0
  88. package/dist/module/lib/types.js +1 -0
  89. package/dist/module/preload.js +12 -24
  90. package/dist/module/puppeteerConfiger.js +19 -0
  91. package/dist/module/report.html.js +29 -0
  92. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  93. package/dist/module/web.html.js +20 -0
  94. package/dist/prebuild/Report.css +10326 -0
  95. package/dist/prebuild/Report.js +37456 -0
  96. package/dist/types/Features.d.ts +5 -5
  97. package/dist/types/Node.d.ts +5 -11
  98. package/dist/types/NodeWriter.d.ts +1 -1
  99. package/dist/types/Project.d.ts +2 -28
  100. package/dist/types/SubPackages/puppeteer.d.ts +6 -0
  101. package/dist/types/SubPackages/react/component/node.d.ts +7 -0
  102. package/dist/types/SubPackages/react/component/web.d.ts +7 -0
  103. package/dist/types/SubPackages/react/jsx/index.d.ts +15 -0
  104. package/dist/types/SubPackages/react/jsx/node.d.ts +4 -0
  105. package/dist/types/SubPackages/react/jsx/web.d.ts +4 -0
  106. package/dist/types/SubPackages/react-dom/component/node.d.ts +12 -0
  107. package/dist/types/SubPackages/react-dom/component/web.d.ts +5 -0
  108. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +6 -0
  109. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +5 -0
  110. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +5 -0
  111. package/dist/types/{subPackages → SubPackages}/react-test-renderer/component/index.d.ts +6 -6
  112. package/dist/types/{subPackages → SubPackages}/react-test-renderer/component/node.d.ts +4 -4
  113. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +4 -0
  114. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +8 -0
  115. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +8 -0
  116. package/dist/types/{subPackages → SubPackages}/react-test-renderer/jsx/index.d.ts +5 -4
  117. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +9 -0
  118. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +9 -0
  119. package/dist/types/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.d.ts +4 -4
  120. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +5 -0
  121. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +5 -0
  122. package/dist/types/Types.d.ts +49 -17
  123. package/dist/types/Web.d.ts +5 -11
  124. package/dist/types/esbuildConfigs/features.d.ts +4 -0
  125. package/dist/types/esbuildConfigs/index.d.ts +4 -0
  126. package/dist/types/esbuildConfigs/node.d.ts +4 -0
  127. package/dist/types/esbuildConfigs/report.d.ts +4 -0
  128. package/dist/types/esbuildConfigs/tests.d.ts +4 -0
  129. package/dist/types/esbuildConfigs/web.d.ts +4 -0
  130. package/dist/types/lib/abstractBase.d.ts +103 -0
  131. package/dist/types/lib/basebuilder.d.ts +25 -0
  132. package/dist/types/lib/classBuilder.d.ts +7 -0
  133. package/dist/types/lib/core.d.ts +8 -0
  134. package/dist/types/lib/index.d.ts +58 -0
  135. package/dist/types/lib/types.d.ts +70 -0
  136. package/dist/types/puppeteerConfiger.d.ts +4 -0
  137. package/dist/types/report.html.d.ts +2 -0
  138. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  139. package/dist/types/web.html.d.ts +2 -0
  140. package/electronBuild.ts +32 -0
  141. package/index.html +30 -0
  142. package/package.json +123 -87
  143. package/src/Features.ts +2 -4
  144. package/src/Node.ts +79 -155
  145. package/src/NodeWriter.ts +22 -22
  146. package/src/Project.ts +185 -783
  147. package/src/Report.tsx +30 -15
  148. package/src/SubPackages/puppeteer.ts +51 -0
  149. package/src/SubPackages/react/component/node.ts +43 -0
  150. package/src/SubPackages/react/component/web.ts +43 -0
  151. package/src/SubPackages/react/jsx/index.ts +32 -0
  152. package/src/SubPackages/react/jsx/node.ts +29 -0
  153. package/src/SubPackages/react/jsx/web.ts +30 -0
  154. package/src/{subPackages → SubPackages}/react-dom/component/node.ts +24 -44
  155. package/src/SubPackages/react-dom/component/web.ts +104 -0
  156. package/src/{subPackages → SubPackages}/react-dom/jsx/index.ts +0 -1
  157. package/src/SubPackages/react-dom/jsx/node.ts +68 -0
  158. package/src/SubPackages/react-dom/jsx/web.ts +102 -0
  159. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +38 -0
  160. package/src/{subPackages → SubPackages}/react-test-renderer/component/index.ts +37 -49
  161. package/src/SubPackages/react-test-renderer/component/node.ts +16 -0
  162. package/src/SubPackages/react-test-renderer/component/web.ts +16 -0
  163. package/src/SubPackages/react-test-renderer/fc/node.ts +49 -0
  164. package/src/SubPackages/react-test-renderer/fc/web.ts +48 -0
  165. package/src/SubPackages/react-test-renderer/jsx/index.ts +49 -0
  166. package/src/SubPackages/react-test-renderer/jsx/node.ts +20 -0
  167. package/src/SubPackages/react-test-renderer/jsx/web.ts +20 -0
  168. package/src/{subPackages → SubPackages}/react-test-renderer/jsx-promised/index.ts +15 -26
  169. package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +19 -0
  170. package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +22 -0
  171. package/src/Types.ts +114 -17
  172. package/src/Web.ts +100 -225
  173. package/src/cjs-shim.js +12 -0
  174. package/src/electron.ts +303 -45
  175. package/src/esbuildConfigs/features.ts +17 -0
  176. package/src/esbuildConfigs/index.ts +22 -0
  177. package/src/esbuildConfigs/node.ts +60 -0
  178. package/src/esbuildConfigs/report.ts +15 -0
  179. package/src/esbuildConfigs/tests.ts +14 -0
  180. package/src/esbuildConfigs/web.ts +73 -0
  181. package/src/lib/abstractBase.ts +412 -0
  182. package/src/lib/basebuilder.ts +228 -0
  183. package/src/lib/classBuilder.ts +118 -0
  184. package/src/lib/core.ts +214 -0
  185. package/src/lib/index.ts +117 -0
  186. package/src/lib/types.ts +206 -0
  187. package/src/preload.ts +13 -27
  188. package/src/puppeteerConfiger.ts +26 -0
  189. package/src/report.html.ts +29 -0
  190. package/src/web.html.ts +20 -0
  191. package/tests/Rectangle.test.ts +189 -0
  192. package/tsconfig.json +19 -6
  193. package/tsconfig.module.json +15 -4
  194. package/tsconfig.types.json +14 -4
  195. package/yarn-error.log +3144 -0
  196. package/dist/common/core.js +0 -397
  197. package/dist/common/subPackages/react/jsx/index.js +0 -26
  198. package/dist/common/subPackages/react-dom/jsx/node.js +0 -95
  199. package/dist/common/subPackages/react-test-renderer/component/node.js +0 -8
  200. package/dist/common/subPackages/react-test-renderer/component/web.js +0 -8
  201. package/dist/module/Report.js +0 -186
  202. package/dist/module/core.js +0 -388
  203. package/dist/module/subPackages/react/jsx/index.js +0 -22
  204. package/dist/module/subPackages/react/jsx/node.js +0 -5
  205. package/dist/module/subPackages/react/jsx/web.js +0 -5
  206. package/dist/module/subPackages/react-dom/jsx/node.js +0 -87
  207. package/dist/module/subPackages/react-test-renderer/jsx/web.js +0 -5
  208. package/dist/module/subPackages/react-test-renderer/jsx-promised/node.js +0 -5
  209. package/dist/types/core.d.ts +0 -220
  210. package/dist/types/subPackages/react/component/node.d.ts +0 -12
  211. package/dist/types/subPackages/react/component/web.d.ts +0 -12
  212. package/dist/types/subPackages/react/jsx/index.d.ts +0 -15
  213. package/dist/types/subPackages/react/jsx/node.d.ts +0 -4
  214. package/dist/types/subPackages/react/jsx/web.d.ts +0 -4
  215. package/dist/types/subPackages/react-dom/component/node.d.ts +0 -14
  216. package/dist/types/subPackages/react-dom/component/web.d.ts +0 -19
  217. package/dist/types/subPackages/react-dom/jsx/node.d.ts +0 -8
  218. package/dist/types/subPackages/react-dom/jsx/web.d.ts +0 -5
  219. package/dist/types/subPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -8
  220. package/dist/types/subPackages/react-test-renderer/component/web.d.ts +0 -9
  221. package/dist/types/subPackages/react-test-renderer/fc/node.d.ts +0 -9
  222. package/dist/types/subPackages/react-test-renderer/fc/web.d.ts +0 -9
  223. package/dist/types/subPackages/react-test-renderer/jsx/node.d.ts +0 -4
  224. package/dist/types/subPackages/react-test-renderer/jsx/web.d.ts +0 -4
  225. package/dist/types/subPackages/react-test-renderer/jsx-promised/node.d.ts +0 -4
  226. package/dist/types/subPackages/react-test-renderer/jsx-promised/web.d.ts +0 -4
  227. package/src/core.ts +0 -1399
  228. package/src/subPackages/react/component/node.ts +0 -75
  229. package/src/subPackages/react/component/web.ts +0 -80
  230. package/src/subPackages/react/jsx/index.ts +0 -64
  231. package/src/subPackages/react/jsx/node.ts +0 -29
  232. package/src/subPackages/react/jsx/web.ts +0 -29
  233. package/src/subPackages/react-dom/component/web.ts +0 -129
  234. package/src/subPackages/react-dom/jsx/node.ts +0 -145
  235. package/src/subPackages/react-dom/jsx/web.ts +0 -145
  236. package/src/subPackages/react-test-renderer/MemoExoticComponent/node.ts +0 -67
  237. package/src/subPackages/react-test-renderer/component/node.ts +0 -30
  238. package/src/subPackages/react-test-renderer/component/web.ts +0 -30
  239. package/src/subPackages/react-test-renderer/fc/node.ts +0 -77
  240. package/src/subPackages/react-test-renderer/fc/web.ts +0 -77
  241. package/src/subPackages/react-test-renderer/jsx/index.ts +0 -51
  242. package/src/subPackages/react-test-renderer/jsx/node.ts +0 -31
  243. package/src/subPackages/react-test-renderer/jsx/web.ts +0 -31
  244. package/src/subPackages/react-test-renderer/jsx-promised/node.ts +0 -31
  245. package/src/subPackages/react-test-renderer/jsx-promised/web.ts +0 -31
  246. /package/dist/common/{subPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  247. /package/dist/common/{subPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  248. /package/dist/module/{subPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  249. /package/dist/module/{subPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  250. /package/dist/types/{subPackages → SubPackages}/react-dom/jsx/index.d.ts +0 -0
@@ -0,0 +1,102 @@
1
+ import React, { useEffect, useRef } from "react";
2
+ import { createPortal } from "react-dom";
3
+
4
+ import Testeranto from "../../../Web.js";
5
+ import {
6
+ IBaseTest,
7
+ ITestImplementation,
8
+ ITestSpecification,
9
+ } from "../../../Types";
10
+
11
+ import type { IInput, ISelection, IStore } from "./index";
12
+
13
+ export type ISubject = HTMLElement;
14
+
15
+ export default <ITestShape extends IBaseTest>(
16
+ testImplementations: ITestImplementation<ITestShape>,
17
+ testSpecifications: ITestSpecification<ITestShape>,
18
+ testInput: IInput
19
+ ) => {
20
+ document.addEventListener("DOMContentLoaded", function () {
21
+ const rootElement = document.getElementById("root");
22
+ if (rootElement) {
23
+ const TesterantoComponent = function ({
24
+ done,
25
+ innerComp,
26
+ }: {
27
+ done: (ref: React.MutableRefObject<any>) => any;
28
+ innerComp: IInput;
29
+ }) {
30
+ const myContainer = useRef<any>(null);
31
+ useEffect(() => {
32
+ console.log("useEffect called", myContainer.current);
33
+ done(myContainer.current);
34
+ }, []);
35
+
36
+ return React.createElement("div", { ref: myContainer }, innerComp());
37
+ };
38
+
39
+ Testeranto<ITestShape>(
40
+ testInput,
41
+ testSpecifications,
42
+ testImplementations,
43
+ {
44
+ beforeAll: async (input, artificer): Promise<HTMLElement> => {
45
+ return await new Promise((resolve, rej) => {
46
+ resolve(rootElement);
47
+ });
48
+ },
49
+
50
+ beforeEach: async (
51
+ subject,
52
+ ndx,
53
+ testRsource,
54
+ artificer
55
+ ): Promise<IStore> => {
56
+ return new Promise((resolve, rej) => {
57
+ createPortal(
58
+ TesterantoComponent({
59
+ innerComp: testInput,
60
+ done: (reactElement: any) => {
61
+ process.nextTick(() => {
62
+ resolve(reactElement);
63
+ });
64
+ },
65
+ }),
66
+ rootElement
67
+ );
68
+ });
69
+ },
70
+ andWhen: function (s: IStore, whenCB): Promise<ISelection> {
71
+ return new Promise((resolve, rej) => {
72
+ process.nextTick(() => {
73
+ resolve(whenCB()(s));
74
+ });
75
+ });
76
+ },
77
+ butThen: async function (s: IStore): Promise<ISelection> {
78
+ return new Promise((resolve, rej) => {
79
+ process.nextTick(() => {
80
+ resolve(s);
81
+ });
82
+ });
83
+ },
84
+ afterEach: async function (store: IStore, ndx, artificer) {
85
+ return new Promise((resolve, rej) => {
86
+ process.nextTick(() => {
87
+ resolve({});
88
+ });
89
+ });
90
+ },
91
+ afterAll: (store: IStore, artificer) => {
92
+ return new Promise((resolve, rej) => {
93
+ process.nextTick(() => {
94
+ resolve({});
95
+ });
96
+ });
97
+ },
98
+ }
99
+ );
100
+ }
101
+ });
102
+ };
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import renderer, { act } from "react-test-renderer";
3
+
4
+ import {
5
+ IBaseTest,
6
+ ITestImplementation,
7
+ ITestSpecification,
8
+ } from "../../../Types";
9
+ import test from "../../../Node";
10
+
11
+ type IInput = React.MemoExoticComponent<() => JSX.Element>;
12
+ type WhenShape = unknown;
13
+ type ThenShape = unknown;
14
+
15
+ export default <ITestShape extends IBaseTest, PropShape>(
16
+ testImplementations: ITestImplementation<ITestShape>,
17
+ testSpecifications: ITestSpecification<ITestShape>,
18
+ testInput: IInput
19
+ ) =>
20
+ test<ITestShape>(testInput, testSpecifications, testImplementations, {
21
+ beforeEach: function (
22
+ CComponent,
23
+ props
24
+ ): Promise<renderer.ReactTestRenderer> {
25
+ let component;
26
+ act(() => {
27
+ component = renderer.create(React.createElement(CComponent, props, []));
28
+ });
29
+ return component;
30
+ },
31
+ andWhen: async function (
32
+ renderer: renderer.ReactTestRenderer,
33
+ whenCB: () => (a: any) => any
34
+ ): Promise<renderer.ReactTestRenderer> {
35
+ await act(() => whenCB()(renderer));
36
+ return renderer;
37
+ },
38
+ });
@@ -1,11 +1,14 @@
1
1
  import React from "react";
2
2
  import renderer, { act } from "react-test-renderer";
3
3
 
4
- import { ITTestShape, ITestImplementation, ITestSpecification } from "../../../core";
4
+ import type {
5
+ IBaseTest,
6
+ ITestImplementation,
7
+ ITestSpecification,
8
+ } from "../../../Types";
5
9
 
6
10
  export type ISuper<T> = T extends infer U ? U : object;
7
11
 
8
- // export type IInput<P, S> = React.Component<P, S>
9
12
  export type IInput<P, S> = typeof React.Component<P, S>;
10
13
  export type InitialState = unknown;
11
14
  export type IWhenShape = any;
@@ -14,25 +17,10 @@ export type ISelection = renderer.ReactTestRenderer;
14
17
  export type IStore = renderer.ReactTestRenderer;
15
18
  export type ISubject = renderer.ReactTestRenderer;
16
19
 
17
- export type IImpl<
18
- ITestShape extends ITTestShape,
19
- IProps
20
- > = ITestImplementation<
21
- IProps,
22
- renderer.ReactTestRenderer,
23
- IWhenShape,
24
- IThenShape,
25
- ITestShape
26
- >
27
- export type ISpec<
28
- ITestShape extends ITTestShape
29
- > = ITestSpecification<
30
- ITestShape,
31
- ISubject,
32
- IStore,
33
- ISelection,
34
- IThenShape
35
- >
20
+ export type IImpl<ITestShape extends IBaseTest> =
21
+ ITestImplementation<ITestShape>;
22
+ export type ISpec<ITestShape extends IBaseTest> =
23
+ ITestSpecification<ITestShape>;
36
24
 
37
25
  // export const testInterface = {
38
26
  // beforeEach: function (CComponent, props): Promise<renderer.ReactTestRenderer> {
@@ -48,54 +36,54 @@ export type ISpec<
48
36
  // },
49
37
  // andWhen: async function (
50
38
  // renderer: renderer.ReactTestRenderer,
51
- // actioner: () => (any) => any
39
+ // whenCB: () => (any) => any
52
40
  // ): Promise<renderer.ReactTestRenderer> {
53
- // await act(() => actioner()(renderer));
41
+ // await act(() => whenCB()(renderer));
54
42
  // return renderer
55
43
  // }
56
44
  // }
57
45
 
58
46
  export const testInterface = {
59
- beforeEach: function (CComponent, props): Promise<renderer.ReactTestRenderer> {
60
-
47
+ beforeEach: function (
48
+ CComponent,
49
+ propsAndChildren
50
+ ): Promise<renderer.ReactTestRenderer> {
51
+ function Link(props) {
52
+ const p = props.props;
53
+ const c = props.children;
54
+ return React.createElement(CComponent, p, c);
55
+ }
61
56
  return new Promise((res, rej) => {
62
- act(() => {
63
- const x = renderer.create(new CComponent(props));
64
- console.log("beforeEach", x.getInstance())
65
- res(x);
57
+ act(async () => {
58
+ const p = propsAndChildren;
59
+ const y = new CComponent(p.props);
60
+ const testRenderer = await renderer.create(Link(propsAndChildren));
61
+ res(testRenderer);
66
62
  });
67
63
  });
68
64
  },
69
65
  andWhen: async function (
70
66
  renderer: renderer.ReactTestRenderer,
71
- actioner: any
67
+ whenCB: any
72
68
  ): Promise<renderer.ReactTestRenderer> {
73
- // console.log("andWhen", renderer)
74
- await act(() => actioner()(renderer));
75
- return renderer
69
+ // console.log("andWhen", whenCB)
70
+ await act(() => whenCB(renderer));
71
+ return renderer;
76
72
  },
77
73
 
78
- // andWhen: function (s: Store, actioner): Promise<Selection> {
79
- // return actioner()(s);
74
+ // andWhen: function (s: Store, whenCB): Promise<Selection> {
75
+ // return whenCB()(s);
80
76
  // },
81
- butThen: async function (s: IStore): Promise<ISelection> {
82
-
83
- // console.log("butThen", s)
84
- return s;
77
+ butThen: async function (s: IStore, thenCB, tr): Promise<ISelection> {
78
+ console.log("butThen", thenCB.toString());
79
+ return thenCB(s);
85
80
  },
86
- afterEach: async function (
87
- store: IStore,
88
- ndx,
89
- artificer
90
- ) {
81
+ afterEach: async function (store: IStore, ndx, artificer) {
91
82
  // console.log("afterEach", store);
92
- return {
93
-
94
- };
83
+ return {};
95
84
  },
96
85
  afterAll: (store: IStore, artificer) => {
97
86
  // console.log("afterAll", store);
98
87
  return;
99
88
  },
100
-
101
- }
89
+ };
@@ -0,0 +1,16 @@
1
+ import Testeranto from "../../../Node.js";
2
+ import type { IBaseTest } from "../../../Types";
3
+
4
+ import { IImpl, ISpec, IInput, testInterface } from "./index.js";
5
+
6
+ export default <ITestShape extends IBaseTest, IProps, IState>(
7
+ testImplementations: IImpl<ITestShape>,
8
+ testSpecifications: ISpec<ITestShape>,
9
+ testInput: IInput<IProps, IState>
10
+ ) =>
11
+ Testeranto<ITestShape>(
12
+ testInput,
13
+ testSpecifications,
14
+ testImplementations,
15
+ testInterface
16
+ );
@@ -0,0 +1,16 @@
1
+ import { IBaseTest } from "../../../Types";
2
+ import Testeranto from "../../../Web.js";
3
+
4
+ import { IImpl, ISpec, IInput, testInterface } from "./index.js";
5
+
6
+ export default <ITestShape extends IBaseTest, IProps, IState>(
7
+ testImplementations: IImpl<ITestShape>,
8
+ testSpecifications: ISpec<ITestShape>,
9
+ testInput: IInput<any, any>
10
+ ) =>
11
+ Testeranto<ITestShape>(
12
+ testInput,
13
+ testSpecifications,
14
+ testImplementations,
15
+ testInterface
16
+ );
@@ -0,0 +1,49 @@
1
+ import React from "react";
2
+ import renderer, { act } from "react-test-renderer";
3
+
4
+ import test from "../../../Node.js";
5
+
6
+ import {
7
+ ITestSpecification,
8
+ ITestImplementation,
9
+ IBaseTest,
10
+ } from "../../../Types";
11
+
12
+ export type IInput = React.FC;
13
+ export type IWhenShape = unknown;
14
+ export type IThenShape = unknown;
15
+
16
+ export type ISpec<ITestShape extends IBaseTest> =
17
+ ITestSpecification<ITestShape>;
18
+ export default <ITestShape extends IBaseTest>(
19
+ testImplementations: ITestImplementation<ITestShape>,
20
+ testSpecifications: ISpec<ITestShape>,
21
+ testInput: IInput
22
+ ) =>
23
+ test<ITestShape>(testInput, testSpecifications, testImplementations, {
24
+ beforeEach: function (
25
+ CComponent,
26
+ props
27
+ ): Promise<renderer.ReactTestRenderer> {
28
+ return new Promise((res, rej) => {
29
+ let component: renderer.ReactTestRenderer;
30
+ act(() => {
31
+ component = renderer.create(
32
+ React.createElement(CComponent, props, [])
33
+ );
34
+ res(component);
35
+ });
36
+ });
37
+ },
38
+ andWhen: async function (
39
+ renderer: renderer.ReactTestRenderer,
40
+ whenCB: () => (a: any) => any
41
+ ): Promise<renderer.ReactTestRenderer> {
42
+ await act(() => whenCB()(renderer));
43
+ return renderer;
44
+ },
45
+ afterEach: async (store, key, artificer) => {
46
+ console.log("afterall");
47
+ store.unmount();
48
+ },
49
+ });
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import renderer, { act } from "react-test-renderer";
3
+
4
+ import {
5
+ ITestSpecification,
6
+ ITestImplementation,
7
+ IBaseTest,
8
+ } from "../../../Types";
9
+ import test from "../../../Web.js";
10
+
11
+ export type IInput = React.FC;
12
+ export type IWhenShape = unknown;
13
+ export type IThenShape = unknown;
14
+
15
+ export type ISpec<ITestShape extends IBaseTest> =
16
+ ITestSpecification<ITestShape>;
17
+ export default <ITestShape extends IBaseTest, IPropShape>(
18
+ testImplementations: ITestImplementation<ITestShape>,
19
+ testSpecifications: ISpec<ITestShape>,
20
+ testInput: IInput
21
+ ) =>
22
+ test<ITestShape>(testInput, testSpecifications, testImplementations, {
23
+ beforeEach: function (
24
+ CComponent,
25
+ props
26
+ ): Promise<renderer.ReactTestRenderer> {
27
+ return new Promise((res, rej) => {
28
+ let component: renderer.ReactTestRenderer;
29
+ act(() => {
30
+ component = renderer.create(
31
+ React.createElement(CComponent, props, [])
32
+ );
33
+ res(component);
34
+ });
35
+ });
36
+ },
37
+ andWhen: async function (
38
+ renderer: renderer.ReactTestRenderer,
39
+ whenCB: () => (a: any) => any
40
+ ): Promise<renderer.ReactTestRenderer> {
41
+ await act(() => whenCB()(renderer));
42
+ return renderer;
43
+ },
44
+ afterEach: async (store, key, artificer) => {
45
+ console.log("afterall");
46
+ store.unmount();
47
+ },
48
+ });
@@ -0,0 +1,49 @@
1
+ import React from "react";
2
+ import renderer, { act } from "react-test-renderer";
3
+
4
+ import {
5
+ IBaseTest,
6
+ ITestImplementation,
7
+ ITestSpecification,
8
+ } from "../../../Types";
9
+
10
+ export type IWhenShape = any;
11
+ export type IThenShape = any;
12
+ export type InitialState = unknown;
13
+ export type IInput = (props?) => JSX.Element;
14
+ export type ISelection = renderer.ReactTestRenderer;
15
+ export type IStore = renderer.ReactTestRenderer;
16
+ export type ISubject = renderer.ReactTestRenderer;
17
+
18
+ export type ITestImpl<ITestShape extends IBaseTest> = ITestImplementation<
19
+ ITestShape,
20
+ object
21
+ >;
22
+
23
+ export type ITestSpec<ITestShape extends IBaseTest> =
24
+ ITestSpecification<ITestShape>;
25
+
26
+ export const testInterface = {
27
+ butThen: async function (s: IStore, thenCB, tr): Promise<ISelection> {
28
+ console.log("butThen", thenCB.toString());
29
+ return thenCB(s);
30
+ },
31
+ beforeEach: function (
32
+ CComponent,
33
+ props
34
+ ): Promise<renderer.ReactTestRenderer> {
35
+ console.log("ASDASDx");
36
+ let component;
37
+ act(() => {
38
+ component = renderer.create(React.createElement(CComponent, props, []));
39
+ });
40
+ return component;
41
+ },
42
+ andWhen: async function (
43
+ renderer: renderer.ReactTestRenderer,
44
+ whenCB: (any) => any
45
+ ): Promise<renderer.ReactTestRenderer> {
46
+ await act(() => whenCB(renderer));
47
+ return renderer;
48
+ },
49
+ };
@@ -0,0 +1,20 @@
1
+ import test from "../../../Node.js";
2
+ import { IBaseTest } from "../../../Types";
3
+
4
+ import type { ITestImpl, ITestSpec } from "../jsx-promised";
5
+
6
+ import { IInput, testInterface } from "./index.js";
7
+
8
+ export default <ITestShape extends IBaseTest>(
9
+ testImplementations: ITestImpl<ITestShape>,
10
+ testSpecifications: ITestSpec<ITestShape>,
11
+ testInput: IInput,
12
+ testInterface2 = testInterface
13
+ ) => {
14
+ return test<ITestShape>(
15
+ testInput,
16
+ testSpecifications,
17
+ testImplementations,
18
+ testInterface2
19
+ );
20
+ };
@@ -0,0 +1,20 @@
1
+ import { IBaseTest } from "../../../Types";
2
+ import test from "../../../Web.js";
3
+
4
+ import { ITestImpl, ITestSpec } from "../jsx-promised";
5
+
6
+ import { IInput, testInterface } from "./index.js";
7
+
8
+ export default <ITestShape extends IBaseTest>(
9
+ testImplementations: ITestImpl<ITestShape>,
10
+ testSpecifications: ITestSpec<ITestShape>,
11
+ testInput: IInput,
12
+ testInterface2 = testInterface
13
+ ) => {
14
+ return test<ITestShape>(
15
+ testInput,
16
+ testSpecifications,
17
+ testImplementations,
18
+ testInterface2
19
+ );
20
+ };
@@ -1,6 +1,10 @@
1
1
  import renderer, { act } from "react-test-renderer";
2
2
 
3
- import { ITTestShape, ITestImplementation, ITestSpecification } from "../../../core";
3
+ import {
4
+ IBaseTest,
5
+ ITestImplementation,
6
+ ITestSpecification,
7
+ } from "../../../Types";
4
8
 
5
9
  export type IWhenShape = any;
6
10
  export type IThenShape = any;
@@ -10,25 +14,11 @@ export type ISelection = renderer.ReactTestRenderer;
10
14
  export type IStore = renderer.ReactTestRenderer;
11
15
  export type ISubject = renderer.ReactTestRenderer;
12
16
 
13
- export type ITestImpl<
14
- ITestShape extends ITTestShape
15
- > = ITestImplementation<
16
- InitialState,
17
- ISelection,
18
- IWhenShape,
19
- IThenShape,
20
- ITestShape
21
- >
17
+ export type ITestImpl<ITestShape extends IBaseTest> =
18
+ ITestImplementation<ITestShape>;
22
19
 
23
- export type ITestSpec<
24
- ITestShape extends ITTestShape
25
- > = ITestSpecification<
26
- ITestShape,
27
- ISubject,
28
- IStore,
29
- ISelection,
30
- IThenShape
31
- >
20
+ export type ITestSpec<ITestShape extends IBaseTest> =
21
+ ITestSpecification<ITestShape>;
32
22
 
33
23
  export const testInterface = {
34
24
  beforeEach: async (CComponent): Promise<renderer.ReactTestRenderer> => {
@@ -38,14 +28,13 @@ export const testInterface = {
38
28
  component = renderer.create(CComponent);
39
29
  });
40
30
  res(component);
41
- })
42
-
31
+ });
43
32
  },
44
33
  andWhen: async function (
45
34
  renderer: renderer.ReactTestRenderer,
46
- actioner: () => (any) => any
35
+ whenCB: () => (any) => any
47
36
  ): Promise<renderer.ReactTestRenderer> {
48
- await act(() => actioner()(renderer));
49
- return renderer
50
- }
51
- }
37
+ await act(() => whenCB()(renderer));
38
+ return renderer;
39
+ },
40
+ };
@@ -0,0 +1,19 @@
1
+ import { IInput, testInterface } from ".";
2
+ import test from "../../../Node";
3
+ import { IBaseTest } from "../../../Types";
4
+ import { ITestImpl, ITestSpec } from "../../react/jsx";
5
+
6
+ export default <ITestShape extends IBaseTest>(
7
+ testImplementations: ITestImpl<ITestShape>,
8
+ testSpecifications: ITestSpec<ITestShape>,
9
+ testInput: IInput
10
+ ) => {
11
+ return test<
12
+ ITestShape
13
+ >(
14
+ testInput,
15
+ testSpecifications,
16
+ testImplementations,
17
+ testInterface,
18
+ )
19
+ };
@@ -0,0 +1,22 @@
1
+ import { IBaseTest } from "../../../Types";
2
+ import test from "../../../Web";
3
+ import { ITestImpl, ITestSpec } from "../../react/jsx";
4
+
5
+ import {
6
+ testInterface, IInput
7
+ } from "./index";
8
+
9
+ export default <ITestShape extends IBaseTest>(
10
+ testImplementations: ITestImpl<ITestShape>,
11
+ testSpecifications: ITestSpec<ITestShape>,
12
+ testInput: IInput
13
+ ) => {
14
+ return test<
15
+ ITestShape
16
+ >(
17
+ testInput,
18
+ testSpecifications,
19
+ testImplementations,
20
+ testInterface,
21
+ )
22
+ };