testeranto 0.62.0 → 0.73.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 (186) hide show
  1. package/README.md +38 -26
  2. package/dist/cjs-shim.js +2 -2
  3. package/dist/common/Node.js +14 -51
  4. package/dist/common/PM/index.js +71 -0
  5. package/dist/common/PM/main.js +361 -0
  6. package/dist/common/PM/node.js +176 -0
  7. package/dist/common/PM/web.js +174 -0
  8. package/dist/common/Project.js +121 -266
  9. package/dist/common/Puppeteer.js +109 -0
  10. package/dist/common/Reporter.js +119 -0
  11. package/dist/common/Scheduler.js +1 -0
  12. package/dist/common/SubPackages/puppeteer.js +3 -1
  13. package/dist/common/SubPackages/react-dom/component/web.js +98 -45
  14. package/dist/common/SubPackages/react-dom/jsx/web.js +15 -7
  15. package/dist/common/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  16. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -1
  17. package/dist/common/SubPackages/react-test-renderer/fc/web.js +1 -1
  18. package/dist/common/SubPackages/react-test-renderer/jsx/index.js +1 -3
  19. package/dist/common/SubPackages/react-test-renderer/jsx/web.js +1 -1
  20. package/dist/common/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  21. package/dist/common/Types.js +2 -32
  22. package/dist/common/Web.js +25 -37
  23. package/dist/common/esbuildConfigs/index.js +5 -5
  24. package/dist/common/esbuildConfigs/node.js +17 -15
  25. package/dist/common/esbuildConfigs/report.js +12 -47
  26. package/dist/common/esbuildConfigs/tests.js +0 -1
  27. package/dist/common/esbuildConfigs/web.js +17 -12
  28. package/dist/common/lib/abstractBase.js +190 -35
  29. package/dist/common/lib/basebuilder.js +56 -29
  30. package/dist/common/lib/classBuilder.js +8 -5
  31. package/dist/common/lib/core.js +42 -17
  32. package/dist/common/lib/index.js +11 -8
  33. package/dist/common/lib/types.js +2 -0
  34. package/dist/common/preload.js +14 -28
  35. package/dist/common/puppeteerConfiger.js +24 -0
  36. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  37. package/dist/module/Node.js +14 -51
  38. package/dist/module/PM/index.js +67 -0
  39. package/dist/module/PM/main.js +331 -0
  40. package/dist/module/PM/node.js +168 -0
  41. package/dist/module/PM/web.js +167 -0
  42. package/dist/module/Project.js +122 -267
  43. package/dist/module/Puppeteer.js +104 -0
  44. package/dist/module/Reporter.js +114 -0
  45. package/dist/module/Scheduler.js +1 -0
  46. package/dist/module/SubPackages/puppeteer.js +3 -1
  47. package/dist/module/SubPackages/react/jsx/node.js +1 -1
  48. package/dist/module/SubPackages/react/jsx/web.js +1 -1
  49. package/dist/module/SubPackages/react-dom/component/node.js +2 -2
  50. package/dist/module/SubPackages/react-dom/component/web.js +98 -45
  51. package/dist/module/SubPackages/react-dom/jsx/web.js +17 -9
  52. package/dist/module/SubPackages/react-test-renderer/MemoExoticComponent/node.js +1 -1
  53. package/dist/module/SubPackages/react-test-renderer/component/index.js +0 -1
  54. package/dist/module/SubPackages/react-test-renderer/fc/web.js +1 -1
  55. package/dist/module/SubPackages/react-test-renderer/jsx/index.js +1 -3
  56. package/dist/module/SubPackages/react-test-renderer/jsx/web.js +1 -1
  57. package/dist/module/SubPackages/react-test-renderer/jsx-promised/index.js +1 -1
  58. package/dist/module/Types.js +3 -30
  59. package/dist/module/Web.js +26 -38
  60. package/dist/module/esbuildConfigs/index.js +5 -5
  61. package/dist/module/esbuildConfigs/node.js +17 -15
  62. package/dist/module/esbuildConfigs/report.js +11 -48
  63. package/dist/module/esbuildConfigs/tests.js +0 -1
  64. package/dist/module/esbuildConfigs/web.js +17 -12
  65. package/dist/module/lib/abstractBase.js +190 -35
  66. package/dist/module/lib/basebuilder.js +56 -29
  67. package/dist/module/lib/classBuilder.js +8 -5
  68. package/dist/module/lib/core.js +44 -19
  69. package/dist/module/lib/index.js +11 -8
  70. package/dist/module/preload.js +15 -27
  71. package/dist/module/puppeteerConfiger.js +19 -0
  72. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  73. package/dist/prebuild/Report.css +1616 -584
  74. package/dist/prebuild/Report.js +2635 -2506
  75. package/dist/types/Node.d.ts +3 -2
  76. package/dist/types/PM/index.d.ts +19 -0
  77. package/dist/types/PM/main.d.ts +28 -0
  78. package/dist/types/PM/node.d.ts +26 -0
  79. package/dist/types/PM/web.d.ts +24 -0
  80. package/dist/types/Project.d.ts +1 -2
  81. package/dist/types/Puppeteer.d.ts +1 -0
  82. package/dist/types/Reporter.d.ts +1 -0
  83. package/dist/types/Scheduler.d.ts +0 -0
  84. package/dist/types/SubPackages/puppeteer.d.ts +3 -3
  85. package/dist/types/SubPackages/react/component/node.d.ts +1 -1
  86. package/dist/types/SubPackages/react/component/web.d.ts +1 -1
  87. package/dist/types/SubPackages/react/jsx/index.d.ts +1 -1
  88. package/dist/types/SubPackages/react/jsx/node.d.ts +1 -1
  89. package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
  90. package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
  91. package/dist/types/SubPackages/react-dom/component/web.d.ts +1 -1
  92. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +1 -1
  93. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +1 -1
  94. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +1 -1
  95. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +1 -1
  96. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -1
  97. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -1
  98. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
  99. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
  100. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -1
  101. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +3 -3
  102. package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +1 -1
  103. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -1
  104. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -1
  105. package/dist/types/Types.d.ts +19 -100
  106. package/dist/types/Web.d.ts +3 -2
  107. package/dist/types/esbuildConfigs/features.d.ts +1 -1
  108. package/dist/types/esbuildConfigs/index.d.ts +1 -1
  109. package/dist/types/esbuildConfigs/node.d.ts +1 -1
  110. package/dist/types/esbuildConfigs/report.d.ts +4 -0
  111. package/dist/types/esbuildConfigs/tests.d.ts +1 -1
  112. package/dist/types/esbuildConfigs/web.d.ts +1 -1
  113. package/dist/types/lib/abstractBase.d.ts +26 -24
  114. package/dist/types/lib/basebuilder.d.ts +10 -7
  115. package/dist/types/lib/classBuilder.d.ts +4 -3
  116. package/dist/types/lib/core.d.ts +5 -4
  117. package/dist/types/lib/index.d.ts +7 -5
  118. package/dist/types/lib/types.d.ts +62 -0
  119. package/dist/types/preload.d.ts +0 -1
  120. package/dist/types/puppeteerConfiger.d.ts +4 -0
  121. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  122. package/package.json +6 -7
  123. package/src/Node.ts +30 -85
  124. package/src/PM/index.ts +102 -0
  125. package/src/PM/main.ts +420 -0
  126. package/src/PM/node.ts +515 -0
  127. package/src/PM/web.ts +497 -0
  128. package/src/Project.ts +183 -619
  129. package/src/Puppeteer.ts +131 -0
  130. package/src/Report.tsx +158 -44
  131. package/src/Reporter.ts +134 -0
  132. package/src/Scheduler.ts +0 -0
  133. package/src/SubPackages/puppeteer.ts +19 -14
  134. package/src/SubPackages/react/component/node.ts +20 -32
  135. package/src/SubPackages/react/component/web.ts +20 -30
  136. package/src/SubPackages/react/jsx/index.ts +13 -24
  137. package/src/SubPackages/react/jsx/node.ts +5 -8
  138. package/src/SubPackages/react/jsx/web.ts +10 -8
  139. package/src/SubPackages/react-dom/component/node.ts +17 -23
  140. package/src/SubPackages/react-dom/component/web.ts +134 -95
  141. package/src/SubPackages/react-dom/jsx/web.ts +41 -48
  142. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +27 -37
  143. package/src/SubPackages/react-test-renderer/component/index.ts +16 -30
  144. package/src/SubPackages/react-test-renderer/component/node.ts +5 -11
  145. package/src/SubPackages/react-test-renderer/component/web.ts +5 -11
  146. package/src/SubPackages/react-test-renderer/fc/node.ts +36 -50
  147. package/src/SubPackages/react-test-renderer/fc/web.ts +37 -50
  148. package/src/SubPackages/react-test-renderer/jsx/index.ts +15 -21
  149. package/src/SubPackages/react-test-renderer/jsx/node.ts +6 -10
  150. package/src/SubPackages/react-test-renderer/jsx/web.ts +7 -7
  151. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +13 -16
  152. package/src/Types.ts +73 -307
  153. package/src/Web.ts +40 -81
  154. package/src/cjs-shim.js +2 -2
  155. package/src/esbuildConfigs/features.ts +3 -4
  156. package/src/esbuildConfigs/index.ts +8 -8
  157. package/src/esbuildConfigs/node.ts +21 -20
  158. package/src/esbuildConfigs/report.ts +15 -51
  159. package/src/esbuildConfigs/tests.ts +3 -9
  160. package/src/esbuildConfigs/web.ts +22 -20
  161. package/src/lib/abstractBase.ts +312 -164
  162. package/src/lib/basebuilder.ts +123 -127
  163. package/src/lib/classBuilder.ts +30 -48
  164. package/src/lib/core.ts +115 -84
  165. package/src/lib/index.ts +58 -56
  166. package/src/lib/types.ts +197 -0
  167. package/src/preload.ts +14 -30
  168. package/src/puppeteerConfiger.ts +26 -0
  169. package/src/web.html.ts +1 -1
  170. package/dist/common/NodeWriter.js +0 -56
  171. package/dist/common/electron.js +0 -196
  172. package/dist/common/lib/browser.js +0 -26
  173. package/dist/common/nodeWriterElectron.js +0 -55
  174. package/dist/module/NodeWriter.js +0 -50
  175. package/dist/module/electron.js +0 -191
  176. package/dist/module/lib/browser.js +0 -22
  177. package/dist/module/nodeWriterElectron.js +0 -52
  178. package/dist/types/NodeWriter.d.ts +0 -2
  179. package/dist/types/lib/browser.d.ts +0 -6
  180. package/dist/types/nodeWriterElectron.d.ts +0 -2
  181. package/src/NodeWriter.ts +0 -69
  182. package/src/electron.ts +0 -250
  183. package/src/lib/browser.ts +0 -34
  184. package/src/nodeWriterElectron.ts +0 -71
  185. package/yarn-error.log +0 -3144
  186. /package/dist/{types/electron.d.ts → module/lib/types.js} +0 -0
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.73.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",
@@ -227,14 +227,13 @@
227
227
  "ipc": "^0.0.1",
228
228
  "jsonc": "^2.0.0",
229
229
  "npm-watch": "^0.11.0",
230
- "puppeteer": "19.2.2",
231
- "puppeteer-core": "19.2.2",
232
- "puppeteer-in-electron": "^3.0.5",
233
- "react-bootstrap": "^2.7.0",
230
+ "puppeteer-core": "^23.6.0",
231
+ "react-bootstrap": "2.10.6",
234
232
  "react-sigma": "^1.2.35",
235
233
  "react-test-renderer": "18.2.0",
236
234
  "selenium-webdriver": "^4.25.0",
237
235
  "url": "^0.11.4",
236
+ "uuid": "^10.0.0",
238
237
  "ws": "^8.16.0"
239
238
  }
240
239
  }
package/src/Node.ts CHANGED
@@ -1,128 +1,73 @@
1
- import http from "http";
2
- import puppeteer from "puppeteer-core";
3
-
4
1
  import Testeranto from "./lib/core.js";
5
2
  import {
6
3
  defaultTestResourceRequirement,
7
- ITestJob,
8
4
  ITTestResourceConfiguration,
9
5
  ITTestResourceRequest,
10
6
  } from "./lib/index.js";
11
- import { NodeWriter } from "./NodeWriter.js";
7
+
12
8
  import type {
13
9
  IBaseTest,
14
- INodeTestInterface,
15
10
  ITestImplementation,
16
- ITestInterface,
17
11
  ITestSpecification,
18
12
  } from "./Types.js";
13
+ import { ITestInterface, INodeTestInterface } from "./lib/types.js";
19
14
 
20
- import {
21
- TBrowser,
22
- } from "./Types.js";
23
-
15
+ import { PM_Node } from "./PM/node.js";
24
16
 
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
- });
46
-
47
- class NodeTesteranto<TestShape extends IBaseTest> extends Testeranto<TestShape> {
17
+ class NodeTesteranto<
18
+ TestShape extends IBaseTest
19
+ > extends Testeranto<TestShape> {
48
20
  constructor(
49
21
  input: TestShape["iinput"],
50
22
  testSpecification: ITestSpecification<TestShape>,
51
- testImplementation: ITestImplementation<TestShape, object>,
23
+ testImplementation: ITestImplementation<TestShape>,
52
24
  testResourceRequirement: ITTestResourceRequest,
53
- testInterface: Partial<ITestInterface<TestShape>>,
25
+ testInterface: Partial<ITestInterface<TestShape>>
54
26
  ) {
55
27
  super(
56
28
  input,
57
29
  testSpecification,
58
30
  testImplementation,
59
31
  testResourceRequirement,
60
- NodeWriter,
61
- testInterface,
62
-
32
+ testInterface
63
33
  );
64
-
65
- if (process.argv[2]) {
66
- const testResourceArg = process.argv[2];
67
-
68
- try {
69
- const partialTestResource = JSON.parse(
70
- testResourceArg
71
- ) as ITTestResourceConfiguration;
72
-
73
- this.receiveTestResourceConfig(this.testJobs[0], partialTestResource);
74
-
75
- } catch (e) {
76
- console.error(e);
77
- // process.exit(-1);
78
- }
79
- } else {
80
- // no-op
81
- }
82
34
  }
83
35
 
84
36
  async receiveTestResourceConfig(
85
- t: ITestJob,
86
- partialTestResource: ITTestResourceConfiguration
37
+ // t: ITestJob,
38
+ partialTestResource: string
87
39
  ) {
40
+ console.log(
41
+ "receiveTestResourceConfig!!",
42
+ this.testJobs[0].receiveTestResourceConfig
43
+ );
88
44
 
89
- const browser = await readJson("2999").then(async (json) => {
90
- const b = await puppeteer.connect({
91
- browserWSEndpoint: json.webSocketDebuggerUrl,
92
- defaultViewport: null,
93
- });
94
- console.log("connected!", b.isConnected());
95
- return b
96
- })
45
+ const t: ITTestResourceConfiguration = JSON.parse(partialTestResource);
46
+ const pm = new PM_Node(t);
47
+ const { failed, artifacts, logPromise } =
48
+ await this.testJobs[0].receiveTestResourceConfig(pm);
97
49
 
98
- const {
99
- failed,
100
- artifacts,
101
- logPromise
102
- } = await t.receiveTestResourceConfig(
103
- partialTestResource,
104
- new TBrowser(browser)
105
- );
50
+ console.log("test is done, awaiting test result write to fs");
51
+ pm.customclose();
106
52
 
107
- Promise.all([...artifacts, logPromise]).then(async () => {
108
- // process.exit(await failed ? 1 : 0);
109
- })
53
+ // Promise.all([...artifacts, logPromise]).then(async () => {
54
+ // // process.exit((await failed) ? 1 : 0);
55
+ // });
110
56
  }
111
-
112
- };
57
+ }
113
58
 
114
59
  export default async <ITestShape extends IBaseTest>(
115
- input: ITestShape['iinput'],
60
+ input: ITestShape["iinput"],
116
61
  testSpecification: ITestSpecification<ITestShape>,
117
- testImplementation: ITestImplementation<ITestShape, object>,
62
+ testImplementation: ITestImplementation<ITestShape>,
118
63
  testInterface: Partial<INodeTestInterface<ITestShape>>,
119
- testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement,
64
+ testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement
120
65
  ): Promise<Testeranto<ITestShape>> => {
121
66
  return new NodeTesteranto<ITestShape>(
122
67
  input,
123
68
  testSpecification,
124
69
  testImplementation,
125
70
  testResourceRequirement,
126
- testInterface,
127
- )
71
+ testInterface
72
+ );
128
73
  };
@@ -0,0 +1,102 @@
1
+ // import {
2
+ // Browser,
3
+ // BrowserContext,
4
+ // BrowserContextOptions,
5
+ // DebugInfo,
6
+ // Page,
7
+ // PuppeteerNode,
8
+ // Target,
9
+ // } from "puppeteer-core";
10
+
11
+ import { Browser } from "puppeteer-core/lib/esm/puppeteer/puppeteer-core-browser";
12
+ import { ITLog, ITTestResourceConfiguration } from "../lib";
13
+ import { ChildProcess } from "child_process";
14
+ import { PuppeteerLaunchOptions } from "puppeteer-core/lib/esm/puppeteer";
15
+ // import { ILogWriter, ITLog } from "./lib";
16
+
17
+ type IFPaths = string[];
18
+ const fPaths: IFPaths = [];
19
+
20
+ export abstract class PM {
21
+ server: any;
22
+ browser: Browser;
23
+ testResourceConfiguration: ITTestResourceConfiguration;
24
+
25
+ // constructor(testResourceConfiguration: ITTestResourceConfiguration) {
26
+ // this.testResourceConfiguration = testResourceConfiguration;
27
+ // console.log("mkdirsync2", this.testResourceConfiguration);
28
+ // }
29
+
30
+ abstract startPuppeteer(options: any, destfolder: string): Promise<Browser>;
31
+
32
+ abstract testArtiFactoryfileWriter(tLog: ITLog, callback: (Promise) => void);
33
+ abstract createWriteStream(filepath: string): any;
34
+ abstract writeFileSync(fp: string, contents: string);
35
+ abstract mkdirSync();
36
+ abstract existsSync(fp: string): boolean;
37
+ abstract write(accessObject: { uid: number }, contents: string): boolean;
38
+ abstract end(accessObject: { uid: number }): boolean;
39
+
40
+ // pages(): Promise<Page[]>;
41
+ // pages(): Promise<Page[]> {
42
+ // return new Promise<Page[]>((res, rej) => {
43
+ // res(super.pages());
44
+ // });
45
+ // }
46
+ }
47
+
48
+ // export class PuppetMasterBrowser extends Browser {
49
+ // process(): ChildProcess | null {
50
+ // return super.process();
51
+ // }
52
+ // createBrowserContext(
53
+ // options?: BrowserContextOptions
54
+ // ): Promise<BrowserContext> {
55
+ // throw new Error("Method not implemented.");
56
+ // }
57
+ // browserContexts(): BrowserContext[] {
58
+ // throw new Error("Method not implemented.");
59
+ // }
60
+ // defaultBrowserContext(): BrowserContext {
61
+ // throw new Error("Method not implemented.");
62
+ // }
63
+ // wsEndpoint(): string {
64
+ // throw new Error("Method not implemented.");
65
+ // }
66
+ // newPage(): Promise<Page> {
67
+ // throw new Error("Method not implemented.");
68
+ // }
69
+ // targets(): Target[] {
70
+ // throw new Error("Method not implemented.");
71
+ // }
72
+ // target(): Target {
73
+ // throw new Error("Method not implemented.");
74
+ // }
75
+ // version(): Promise<string> {
76
+ // throw new Error("Method not implemented.");
77
+ // }
78
+ // userAgent(): Promise<string> {
79
+ // throw new Error("Method not implemented.");
80
+ // }
81
+ // close(): Promise<void> {
82
+ // throw new Error("Method not implemented.");
83
+ // }
84
+ // disconnect(): Promise<void> {
85
+ // throw new Error("Method not implemented.");
86
+ // }
87
+ // get connected(): boolean {
88
+ // throw new Error("Method not implemented.");
89
+ // }
90
+ // get debugInfo(): DebugInfo {
91
+ // throw new Error("Method not implemented.");
92
+ // }
93
+ // constructor(...z: []) {
94
+ // super(...z);
95
+ // }
96
+ // // pages(): Promise<Page[]>;
97
+ // pages(): Promise<Page[]> {
98
+ // return new Promise<Page[]>((res, rej) => {
99
+ // res(super.pages());
100
+ // });
101
+ // }
102
+ // }