testeranto 0.62.0 → 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 (151) hide show
  1. package/README.md +42 -21
  2. package/dist/cjs-shim.js +2 -2
  3. package/dist/common/Node.js +7 -24
  4. package/dist/common/NodeWriter.js +7 -9
  5. package/dist/common/Project.js +103 -266
  6. package/dist/common/SubPackages/puppeteer.js +1 -1
  7. package/dist/common/SubPackages/react-dom/component/web.js +1 -1
  8. package/dist/common/SubPackages/react-dom/jsx/web.js +15 -7
  9. package/dist/common/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  10. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -1
  11. package/dist/common/SubPackages/react-test-renderer/fc/web.js +1 -1
  12. package/dist/common/SubPackages/react-test-renderer/jsx/index.js +1 -2
  13. package/dist/common/SubPackages/react-test-renderer/jsx/web.js +1 -1
  14. package/dist/common/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  15. package/dist/common/Types.js +2 -32
  16. package/dist/common/Web.js +25 -18
  17. package/dist/common/electron.js +177 -107
  18. package/dist/common/esbuildConfigs/index.js +5 -5
  19. package/dist/common/esbuildConfigs/node.js +17 -15
  20. package/dist/common/esbuildConfigs/report.js +12 -47
  21. package/dist/common/esbuildConfigs/tests.js +0 -1
  22. package/dist/common/esbuildConfigs/web.js +14 -11
  23. package/dist/common/lib/abstractBase.js +13 -6
  24. package/dist/common/lib/basebuilder.js +11 -11
  25. package/dist/common/lib/classBuilder.js +2 -3
  26. package/dist/common/lib/core.js +37 -8
  27. package/dist/common/lib/index.js +10 -8
  28. package/dist/common/lib/types.js +2 -0
  29. package/dist/common/preload.js +15 -25
  30. package/dist/common/puppeteerConfiger.js +24 -0
  31. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  32. package/dist/module/Node.js +7 -24
  33. package/dist/module/NodeWriter.js +7 -9
  34. package/dist/module/Project.js +104 -267
  35. package/dist/module/SubPackages/puppeteer.js +1 -1
  36. package/dist/module/SubPackages/react/jsx/web.js +1 -1
  37. package/dist/module/SubPackages/react-dom/component/node.js +2 -2
  38. package/dist/module/SubPackages/react-dom/component/web.js +1 -1
  39. package/dist/module/SubPackages/react-dom/jsx/web.js +17 -9
  40. package/dist/module/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  41. package/dist/module/SubPackages/react-test-renderer/component/index.js +0 -1
  42. package/dist/module/SubPackages/react-test-renderer/fc/web.js +1 -1
  43. package/dist/module/SubPackages/react-test-renderer/jsx/index.js +1 -2
  44. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +1 -1
  45. package/dist/module/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  46. package/dist/module/Types.js +3 -30
  47. package/dist/module/Web.js +26 -19
  48. package/dist/module/electron.js +179 -109
  49. package/dist/module/esbuildConfigs/index.js +5 -5
  50. package/dist/module/esbuildConfigs/node.js +17 -15
  51. package/dist/module/esbuildConfigs/report.js +11 -48
  52. package/dist/module/esbuildConfigs/tests.js +0 -1
  53. package/dist/module/esbuildConfigs/web.js +14 -11
  54. package/dist/module/lib/abstractBase.js +13 -6
  55. package/dist/module/lib/basebuilder.js +11 -11
  56. package/dist/module/lib/classBuilder.js +2 -3
  57. package/dist/module/lib/core.js +39 -10
  58. package/dist/module/lib/index.js +10 -8
  59. package/dist/module/lib/types.js +1 -0
  60. package/dist/module/preload.js +12 -25
  61. package/dist/module/puppeteerConfiger.js +19 -0
  62. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  63. package/dist/types/Node.d.ts +3 -2
  64. package/dist/types/Project.d.ts +1 -2
  65. package/dist/types/SubPackages/puppeteer.d.ts +3 -3
  66. package/dist/types/SubPackages/react/component/node.d.ts +1 -1
  67. package/dist/types/SubPackages/react/component/web.d.ts +1 -1
  68. package/dist/types/SubPackages/react/jsx/index.d.ts +1 -1
  69. package/dist/types/SubPackages/react/jsx/node.d.ts +1 -1
  70. package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
  71. package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
  72. package/dist/types/SubPackages/react-dom/component/web.d.ts +1 -1
  73. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +1 -1
  74. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +1 -1
  75. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +1 -1
  76. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +1 -1
  77. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -1
  78. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -1
  79. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
  80. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
  81. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -1
  82. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +3 -3
  83. package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +1 -1
  84. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -1
  85. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -1
  86. package/dist/types/Types.d.ts +19 -100
  87. package/dist/types/Web.d.ts +3 -2
  88. package/dist/types/esbuildConfigs/features.d.ts +1 -1
  89. package/dist/types/esbuildConfigs/index.d.ts +1 -1
  90. package/dist/types/esbuildConfigs/node.d.ts +1 -1
  91. package/dist/types/esbuildConfigs/report.d.ts +4 -0
  92. package/dist/types/esbuildConfigs/tests.d.ts +1 -1
  93. package/dist/types/esbuildConfigs/web.d.ts +1 -1
  94. package/dist/types/lib/abstractBase.d.ts +25 -24
  95. package/dist/types/lib/basebuilder.d.ts +8 -7
  96. package/dist/types/lib/classBuilder.d.ts +3 -2
  97. package/dist/types/lib/core.d.ts +3 -2
  98. package/dist/types/lib/index.d.ts +4 -3
  99. package/dist/types/lib/types.d.ts +70 -0
  100. package/dist/types/puppeteerConfiger.d.ts +4 -0
  101. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  102. package/package.json +4 -3
  103. package/src/Node.ts +24 -54
  104. package/src/NodeWriter.ts +21 -18
  105. package/src/Project.ts +165 -620
  106. package/src/Report.tsx +1 -1
  107. package/src/SubPackages/puppeteer.ts +19 -14
  108. package/src/SubPackages/react/component/node.ts +20 -32
  109. package/src/SubPackages/react/component/web.ts +20 -30
  110. package/src/SubPackages/react/jsx/index.ts +13 -24
  111. package/src/SubPackages/react/jsx/web.ts +10 -8
  112. package/src/SubPackages/react-dom/component/node.ts +17 -23
  113. package/src/SubPackages/react-dom/component/web.ts +30 -50
  114. package/src/SubPackages/react-dom/jsx/web.ts +41 -48
  115. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +27 -37
  116. package/src/SubPackages/react-test-renderer/component/index.ts +16 -30
  117. package/src/SubPackages/react-test-renderer/component/node.ts +5 -11
  118. package/src/SubPackages/react-test-renderer/component/web.ts +5 -11
  119. package/src/SubPackages/react-test-renderer/fc/node.ts +36 -50
  120. package/src/SubPackages/react-test-renderer/fc/web.ts +37 -50
  121. package/src/SubPackages/react-test-renderer/jsx/index.ts +16 -21
  122. package/src/SubPackages/react-test-renderer/jsx/node.ts +6 -10
  123. package/src/SubPackages/react-test-renderer/jsx/web.ts +7 -7
  124. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +13 -16
  125. package/src/Types.ts +73 -307
  126. package/src/Web.ts +54 -53
  127. package/src/cjs-shim.js +2 -2
  128. package/src/electron.ts +258 -191
  129. package/src/esbuildConfigs/features.ts +3 -4
  130. package/src/esbuildConfigs/index.ts +8 -8
  131. package/src/esbuildConfigs/node.ts +21 -20
  132. package/src/esbuildConfigs/report.ts +15 -51
  133. package/src/esbuildConfigs/tests.ts +3 -9
  134. package/src/esbuildConfigs/web.ts +18 -18
  135. package/src/lib/abstractBase.ts +78 -125
  136. package/src/lib/basebuilder.ts +109 -134
  137. package/src/lib/classBuilder.ts +26 -45
  138. package/src/lib/core.ts +101 -69
  139. package/src/lib/index.ts +53 -52
  140. package/src/lib/types.ts +206 -0
  141. package/src/preload.ts +12 -28
  142. package/src/puppeteerConfiger.ts +26 -0
  143. package/src/web.html.ts +1 -1
  144. package/dist/common/lib/browser.js +0 -26
  145. package/dist/common/nodeWriterElectron.js +0 -55
  146. package/dist/module/lib/browser.js +0 -22
  147. package/dist/module/nodeWriterElectron.js +0 -52
  148. package/dist/types/lib/browser.d.ts +0 -6
  149. package/dist/types/nodeWriterElectron.d.ts +0 -2
  150. package/src/lib/browser.ts +0 -34
  151. package/src/nodeWriterElectron.ts +0 -71
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "testeranto",
3
3
  "description": "teeny tiny tightly-typed typescript tests",
4
- "version": "0.62.0",
4
+ "version": "0.70.0",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.mts",
7
7
  "module": "dist/module/index.js",
@@ -127,8 +127,8 @@
127
127
  "require": "./dist/common/Project.js"
128
128
  },
129
129
  "./src/Web": {
130
- "import": "./dist/module/Web.js",
131
- "require": "./dist/common/Web.js"
130
+ "import": "./src/Web.ts",
131
+ "require": "./src/Web.ts"
132
132
  },
133
133
  "./src/Node": {
134
134
  "import": "./src/Node.ts",
@@ -235,6 +235,7 @@
235
235
  "react-test-renderer": "18.2.0",
236
236
  "selenium-webdriver": "^4.25.0",
237
237
  "url": "^0.11.4",
238
+ "uuid": "^10.0.0",
238
239
  "ws": "^8.16.0"
239
240
  }
240
241
  }
package/src/Node.ts CHANGED
@@ -1,4 +1,3 @@
1
- import http from "http";
2
1
  import puppeteer from "puppeteer-core";
3
2
 
4
3
  import Testeranto from "./lib/core.js";
@@ -11,46 +10,22 @@ import {
11
10
  import { NodeWriter } from "./NodeWriter.js";
12
11
  import type {
13
12
  IBaseTest,
14
- INodeTestInterface,
15
13
  ITestImplementation,
16
- ITestInterface,
17
14
  ITestSpecification,
18
15
  } from "./Types.js";
16
+ import { ITestInterface, INodeTestInterface } from "./lib/types.js";
19
17
 
20
- import {
21
- TBrowser,
22
- } from "./Types.js";
23
-
24
-
25
- const readJson = async (port: string): Promise<any> => new Promise((resolve, reject) => {
26
- let json = "";
27
- const request = http.request(
28
- {
29
- host: "127.0.0.1",
30
- path: "/json/version",
31
- port,
32
- },
33
- (response) => {
34
- response.on("error", reject);
35
- response.on("data", (chunk: Buffer) => {
36
- json += chunk.toString();
37
- });
38
- response.on("end", () => {
39
- resolve(JSON.parse(json))
40
- });
41
- }
42
- );
43
- request.on("error", reject);
44
- request.end();
45
- });
18
+ import puppeteerConfiger from "./puppeteerConfiger.js";
46
19
 
47
- class NodeTesteranto<TestShape extends IBaseTest> extends Testeranto<TestShape> {
20
+ class NodeTesteranto<
21
+ TestShape extends IBaseTest
22
+ > extends Testeranto<TestShape> {
48
23
  constructor(
49
24
  input: TestShape["iinput"],
50
25
  testSpecification: ITestSpecification<TestShape>,
51
- testImplementation: ITestImplementation<TestShape, object>,
26
+ testImplementation: ITestImplementation<TestShape>,
52
27
  testResourceRequirement: ITTestResourceRequest,
53
- testInterface: Partial<ITestInterface<TestShape>>,
28
+ testInterface: Partial<ITestInterface<TestShape>>
54
29
  ) {
55
30
  super(
56
31
  input,
@@ -58,8 +33,7 @@ class NodeTesteranto<TestShape extends IBaseTest> extends Testeranto<TestShape>
58
33
  testImplementation,
59
34
  testResourceRequirement,
60
35
  NodeWriter,
61
- testInterface,
62
-
36
+ testInterface
63
37
  );
64
38
 
65
39
  if (process.argv[2]) {
@@ -71,7 +45,6 @@ class NodeTesteranto<TestShape extends IBaseTest> extends Testeranto<TestShape>
71
45
  ) as ITTestResourceConfiguration;
72
46
 
73
47
  this.receiveTestResourceConfig(this.testJobs[0], partialTestResource);
74
-
75
48
  } catch (e) {
76
49
  console.error(e);
77
50
  // process.exit(-1);
@@ -85,44 +58,41 @@ class NodeTesteranto<TestShape extends IBaseTest> extends Testeranto<TestShape>
85
58
  t: ITestJob,
86
59
  partialTestResource: ITTestResourceConfiguration
87
60
  ) {
88
-
89
- const browser = await readJson("2999").then(async (json) => {
61
+ const browser = await puppeteerConfiger("2999").then(async (json) => {
90
62
  const b = await puppeteer.connect({
91
63
  browserWSEndpoint: json.webSocketDebuggerUrl,
92
64
  defaultViewport: null,
93
65
  });
94
66
  console.log("connected!", b.isConnected());
95
- return b
96
- })
67
+ return b;
68
+ });
97
69
 
98
- const {
99
- failed,
100
- artifacts,
101
- logPromise
102
- } = await t.receiveTestResourceConfig(
70
+ const { failed, artifacts, logPromise } = await t.receiveTestResourceConfig(
103
71
  partialTestResource,
104
- new TBrowser(browser)
72
+ {
73
+ browser,
74
+ ipc: process.parentPort,
75
+ }
105
76
  );
106
77
 
107
78
  Promise.all([...artifacts, logPromise]).then(async () => {
108
- // process.exit(await failed ? 1 : 0);
109
- })
79
+ process.exit((await failed) ? 1 : 0);
80
+ });
110
81
  }
111
-
112
- };
82
+ }
113
83
 
114
84
  export default async <ITestShape extends IBaseTest>(
115
- input: ITestShape['iinput'],
85
+ input: ITestShape["iinput"],
116
86
  testSpecification: ITestSpecification<ITestShape>,
117
- testImplementation: ITestImplementation<ITestShape, object>,
87
+ testImplementation: ITestImplementation<ITestShape>,
118
88
  testInterface: Partial<INodeTestInterface<ITestShape>>,
119
- testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement,
89
+ testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement
120
90
  ): Promise<Testeranto<ITestShape>> => {
121
91
  return new NodeTesteranto<ITestShape>(
122
92
  input,
123
93
  testSpecification,
124
94
  testImplementation,
125
95
  testResourceRequirement,
126
- testInterface,
127
- )
96
+ testInterface
97
+ );
128
98
  };
package/src/NodeWriter.ts CHANGED
@@ -8,22 +8,22 @@ type IFPaths = string[];
8
8
  const fPaths: IFPaths = [];
9
9
 
10
10
  export const NodeWriter: ILogWriter = {
11
- createWriteStream: (filepath: string): fs.WriteStream => {
12
- return fs.createWriteStream(filepath);
13
- },
14
- writeFileSync: (fp: string, contents: string) => {
15
- fs.writeFileSync(
16
- fp,
17
- contents
18
- );
19
- },
20
- mkdirSync: async (fp: string) => {
21
- await fs.mkdirSync(fp, { recursive: true });
11
+ createWriteStream: (filepath: string): fs.WriteStream =>
12
+ fs.createWriteStream(filepath),
13
+
14
+ writeFileSync: (fp: string, contents: string) =>
15
+ fs.writeFileSync(fp, contents),
16
+
17
+ mkdirSync: async (destFolder: string) => {
18
+ if (!fs.existsSync(destFolder)) {
19
+ fs.mkdirSync(destFolder, { recursive: true });
20
+ }
22
21
  },
23
22
  testArtiFactoryfileWriter:
24
23
  (tLog: ITLog, callback: (Promise) => void) =>
25
- (fPath, value: string | Buffer | PassThrough) => {
26
- callback(new Promise<void>((res, rej) => {
24
+ (fPath, value: string | Buffer | PassThrough) => {
25
+ callback(
26
+ new Promise<void>((res, rej) => {
27
27
  tLog("testArtiFactory =>", fPath);
28
28
 
29
29
  const cleanPath = path.resolve(fPath);
@@ -37,7 +37,10 @@ export const NodeWriter: ILogWriter = {
37
37
  }
38
38
 
39
39
  fs.writeFileSync(
40
- path.resolve(targetDir.split("/").slice(0, -1).join("/"), "manifest"),
40
+ path.resolve(
41
+ targetDir.split("/").slice(0, -1).join("/"),
42
+ "manifest"
43
+ ),
41
44
  fPaths.join(`\n`),
42
45
  {
43
46
  encoding: "utf-8",
@@ -63,7 +66,7 @@ export const NodeWriter: ILogWriter = {
63
66
  });
64
67
  }
65
68
  });
66
- }))
67
-
68
- }
69
- }
69
+ })
70
+ );
71
+ },
72
+ };