testeranto 0.79.69 → 0.81.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.
- package/.aider.chat.history.md +980 -0
- package/.aider.input.history +87 -0
- package/.aider.tags.cache.v3/1c/30/af1de2ad7a137afeddb1b01e0c27.val +0 -0
- package/.aider.tags.cache.v3/1d/63/88318b65ce58b6bb0487e8ce2656.val +0 -0
- package/.aider.tags.cache.v3/2e/67/16ae65530b40038e48e00d666c63.val +0 -0
- package/.aider.tags.cache.v3/6f/94/80488a232866fcce7ee657da488b.val +0 -0
- package/.aider.tags.cache.v3/cache.db +0 -0
- package/.eslintrc.js +5 -2
- package/README.md +10 -107
- package/build-tests.ts +16 -0
- package/dist/common/build-tests.js +38 -0
- package/dist/common/init-docs.js +8 -0
- package/dist/common/run-tests.js +34 -0
- package/dist/common/src/Aider.js +143 -0
- package/dist/common/src/Init.js +10 -0
- package/dist/common/{PM → src/PM}/main.js +58 -49
- package/dist/common/{PM → src/PM}/node.js +1 -1
- package/dist/common/{Project.js → src/Project.js} +46 -38
- package/dist/common/{Puppeteer.js → src/Puppeteer.js} +51 -40
- package/dist/common/{SubPackages → src/SubPackages}/react-dom/jsx/web.js +37 -38
- package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/index.js +17 -2
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +79 -0
- package/dist/common/{esbuildConfigs → src/esbuildConfigs}/node.js +5 -3
- package/dist/common/{esbuildConfigs → src/esbuildConfigs}/web.js +4 -4
- package/dist/common/{lib → src/lib}/abstractBase.js +80 -24
- package/dist/common/{lib → src/lib}/basebuilder.js +14 -3
- package/dist/common/{lib → src/lib}/core.js +47 -3
- package/dist/common/testeranto.js +15 -0
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/build-tests.js +10 -0
- package/dist/module/init-docs.js +3 -0
- package/dist/module/run-tests.js +6 -0
- package/dist/module/src/Aider.js +136 -0
- package/dist/module/src/Init.js +5 -0
- package/dist/module/{PM → src/PM}/main.js +58 -49
- package/dist/module/{PM → src/PM}/node.js +1 -1
- package/dist/module/{Project.js → src/Project.js} +46 -38
- package/dist/module/{Puppeteer.js → src/Puppeteer.js} +51 -40
- package/dist/module/{SubPackages → src/SubPackages}/react-dom/jsx/web.js +37 -38
- package/dist/module/src/SubPackages/react-test-renderer/jsx/index.js +34 -0
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +74 -0
- package/dist/module/{esbuildConfigs → src/esbuildConfigs}/node.js +4 -2
- package/dist/module/{esbuildConfigs → src/esbuildConfigs}/web.js +4 -4
- package/dist/module/{lib → src/lib}/abstractBase.js +80 -24
- package/dist/module/{lib → src/lib}/basebuilder.js +14 -3
- package/dist/module/{lib → src/lib}/core.js +47 -3
- package/dist/module/testeranto.js +13 -0
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/build-tests.d.ts +3 -0
- package/dist/types/init-docs.d.ts +2 -0
- package/dist/types/run-tests.d.ts +2 -0
- package/dist/types/src/Aider.d.ts +1 -0
- package/dist/types/{PM → src/PM}/index.d.ts +1 -1
- package/dist/types/{PM → src/PM}/main.d.ts +7 -1
- package/dist/types/{Project.d.ts → src/Project.d.ts} +6 -1
- package/dist/types/{Types.d.ts → src/Types.d.ts} +3 -2
- package/dist/types/{lib → src/lib}/abstractBase.d.ts +1 -0
- package/dist/types/testeranto.d.ts +16 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/init-docs.ts +5 -0
- package/package.json +54 -29
- package/run-tests.ts +9 -0
- package/secret +1 -0
- package/secret.env +2 -0
- package/src/Aider.ts +168 -0
- package/src/Init.ts +0 -31
- package/src/PM/index.ts +1 -1
- package/src/PM/main.ts +71 -61
- package/src/PM/node.ts +1 -1
- package/src/Project.ts +55 -48
- package/src/Puppeteer.ts +66 -52
- package/src/SubPackages/react-dom/jsx/web.ts +46 -49
- package/src/SubPackages/react-test-renderer/jsx/index.ts +25 -2
- package/src/Types.ts +3 -1
- package/src/esbuildConfigs/inputFilesPlugin.ts +78 -31
- package/src/esbuildConfigs/node.ts +2 -2
- package/src/esbuildConfigs/web.ts +4 -4
- package/src/lib/abstractBase.ts +88 -30
- package/src/lib/basebuilder.ts +17 -3
- package/src/lib/core.ts +55 -13
- package/testeranto.ts +13 -0
- package/tsconfig.common.json +12 -4
- package/tsconfig.json +9 -2
- package/tsconfig.module.json +2 -2
- package/tsconfig.types.json +1 -1
- package/Report.Dockerfile +0 -44
- package/dist/common/Features.js +0 -51
- package/dist/common/Init.js +0 -30
- package/dist/common/Reporter.js +0 -112
- package/dist/common/Scheduler.js +0 -1
- package/dist/common/TaskManBackEnd.js +0 -167
- package/dist/common/esbuildConfigs/inputFilesPlugin.js +0 -49
- package/dist/common/mongooseSchemas.js +0 -56
- package/dist/common/preload.js +0 -15
- package/dist/common/report.html.js +0 -31
- package/dist/module/ExampleTab.js +0 -112
- package/dist/module/Features.js +0 -41
- package/dist/module/Init.js +0 -25
- package/dist/module/Reporter.js +0 -107
- package/dist/module/Scheduler.js +0 -1
- package/dist/module/SubPackages/react-test-renderer/jsx/index.js +0 -19
- package/dist/module/TaskManBackEnd.js +0 -162
- package/dist/module/TaskManFrontEnd.js +0 -605
- package/dist/module/esbuildConfigs/inputFilesPlugin.js +0 -44
- package/dist/module/mongooseSchemas.js +0 -50
- package/dist/module/preload.js +0 -15
- package/dist/module/report.html.js +0 -29
- package/dist/prebuild/TaskManBackEnd.mjs +0 -170
- package/dist/prebuild/TaskManFrontEnd.css +0 -12301
- package/dist/prebuild/TaskManFrontEnd.js +0 -81262
- package/dist/types/Features.d.ts +0 -35
- package/dist/types/Reporter.d.ts +0 -1
- package/dist/types/Scheduler.d.ts +0 -0
- package/dist/types/TaskManBackEnd.d.ts +0 -3
- package/dist/types/mongooseSchemas.d.ts +0 -124
- package/dist/types/preload.d.ts +0 -0
- package/dist/types/report.html.d.ts +0 -2
- package/src/ExampleTab.tsx +0 -219
- package/src/Features.ts +0 -64
- package/src/Reporter.ts +0 -126
- package/src/Scheduler.ts +0 -0
- package/src/TaskManBackEnd.ts +0 -226
- package/src/TaskManFrontEnd.tsx +0 -1254
- package/src/mongooseSchemas.ts +0 -105
- package/src/preload.ts +0 -17
- package/src/report.html.ts +0 -29
- package/tests/Rectangle.test.ts +0 -189
- package/trash/TaskMan.Dockerfile +0 -23
- package/trash/TaskMan1.Dockerfile +0 -43
- package/trash/devBot.dockerfile +0 -12
- package/trash/docker-compose-dev.yml +0 -9
- package/trash/docker-compose-prod.yml +0 -18
- package/trash/electronBuild.ts +0 -32
- /package/dist/common/{Node.js → src/Node.js} +0 -0
- /package/dist/common/{PM → src/PM}/index.js +0 -0
- /package/dist/common/{PM → src/PM}/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/puppeteer.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react/component/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react/component/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react/jsx/index.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react/jsx/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react/jsx/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-dom/component/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-dom/component/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-dom/jsx/index.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-dom/jsx/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/index.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/interface.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/component/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx/web.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.js +0 -0
- /package/dist/common/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
- /package/dist/common/{Types.js → src/Types.js} +0 -0
- /package/dist/common/{Web.js → src/Web.js} +0 -0
- /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/features.js +0 -0
- /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/index.js +0 -0
- /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/report.js +0 -0
- /package/dist/common/{esbuildConfigs → src/esbuildConfigs}/tests.js +0 -0
- /package/dist/common/{lib → src/lib}/classBuilder.js +0 -0
- /package/dist/common/{lib → src/lib}/index.js +0 -0
- /package/dist/common/{lib → src/lib}/types.js +0 -0
- /package/dist/common/{puppeteerConfiger.js → src/puppeteerConfiger.js} +0 -0
- /package/dist/common/{utils.js → src/utils.js} +0 -0
- /package/dist/common/{web.html.js → src/web.html.js} +0 -0
- /package/dist/module/{Node.js → src/Node.js} +0 -0
- /package/dist/module/{PM → src/PM}/index.js +0 -0
- /package/dist/module/{PM → src/PM}/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/puppeteer.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react/component/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react/component/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react/jsx/index.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react/jsx/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react/jsx/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-dom/component/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-dom/component/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-dom/jsx/index.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-dom/jsx/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/index.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/interface.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/component/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx/web.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.js +0 -0
- /package/dist/module/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
- /package/dist/module/{Types.js → src/Types.js} +0 -0
- /package/dist/module/{Web.js → src/Web.js} +0 -0
- /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/features.js +0 -0
- /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/index.js +0 -0
- /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/report.js +0 -0
- /package/dist/module/{esbuildConfigs → src/esbuildConfigs}/tests.js +0 -0
- /package/dist/module/{lib → src/lib}/classBuilder.js +0 -0
- /package/dist/module/{lib → src/lib}/index.js +0 -0
- /package/dist/module/{lib → src/lib}/types.js +0 -0
- /package/dist/module/{puppeteerConfiger.js → src/puppeteerConfiger.js} +0 -0
- /package/dist/module/{utils.js → src/utils.js} +0 -0
- /package/dist/module/{web.html.js → src/web.html.js} +0 -0
- /package/dist/types/{Init.d.ts → src/Init.d.ts} +0 -0
- /package/dist/types/{Node.d.ts → src/Node.d.ts} +0 -0
- /package/dist/types/{PM → src/PM}/node.d.ts +0 -0
- /package/dist/types/{PM → src/PM}/web.d.ts +0 -0
- /package/dist/types/{Puppeteer.d.ts → src/Puppeteer.d.ts} +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/puppeteer.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react/component/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react/component/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react/jsx/index.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react/jsx/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react/jsx/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-dom/component/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-dom/component/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-dom/jsx/index.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-dom/jsx/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-dom/jsx/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/MemoExoticComponent/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/component/index.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/component/interface.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/component/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/component/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/fc/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/fc/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx/index.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx/web.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/index.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/node.d.ts +0 -0
- /package/dist/types/{SubPackages → src/SubPackages}/react-test-renderer/jsx-promised/web.d.ts +0 -0
- /package/dist/types/{Web.d.ts → src/Web.d.ts} +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/features.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/index.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/node.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/report.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/tests.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/web.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/basebuilder.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/classBuilder.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/core.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/index.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/types.d.ts +0 -0
- /package/dist/types/{puppeteerConfiger.d.ts → src/puppeteerConfiger.d.ts} +0 -0
- /package/dist/types/{utils.d.ts → src/utils.d.ts} +0 -0
- /package/dist/types/{web.html.d.ts → src/web.html.d.ts} +0 -0
package/src/PM/main.ts
CHANGED
|
@@ -17,18 +17,18 @@ const files: Record<string, Set<string>> = {}; // = new Set<string>();
|
|
|
17
17
|
const screenshots: Record<string, Promise<Uint8Array>[]> = {};
|
|
18
18
|
|
|
19
19
|
export class PM_Main extends PM {
|
|
20
|
-
|
|
21
|
-
throw new Error("Method not implemented.");
|
|
22
|
-
}
|
|
20
|
+
shutdownMode = false;
|
|
23
21
|
configs: IBuiltConfig;
|
|
24
22
|
ports: Record<number, boolean>;
|
|
25
23
|
queue: any[];
|
|
24
|
+
registry: Record<string, boolean>;
|
|
26
25
|
|
|
27
26
|
constructor(configs: IBuiltConfig) {
|
|
28
27
|
super();
|
|
29
28
|
this.server = {};
|
|
30
29
|
this.configs = configs;
|
|
31
30
|
this.ports = {};
|
|
31
|
+
this.registry = {};
|
|
32
32
|
this.configs.ports.forEach((element) => {
|
|
33
33
|
this.ports[element] = "true"; // set ports as open
|
|
34
34
|
});
|
|
@@ -47,7 +47,7 @@ export class PM_Main extends PM {
|
|
|
47
47
|
contents: string,
|
|
48
48
|
testName: string
|
|
49
49
|
) => {
|
|
50
|
-
console.log("globalThis-writeFileSync", filepath);
|
|
50
|
+
// console.log("globalThis-writeFileSync", filepath);
|
|
51
51
|
|
|
52
52
|
// Create directories if they don't exist
|
|
53
53
|
const dir = path.dirname(filepath.split("/").slice(0, -1).join("/"));
|
|
@@ -88,18 +88,6 @@ export class PM_Main extends PM {
|
|
|
88
88
|
opts: { path: string },
|
|
89
89
|
page: Page
|
|
90
90
|
) => {
|
|
91
|
-
// // fileStreams3[uid].write(contents);
|
|
92
|
-
// // console.log("asd", opts.path.split("/").slice(0, -1).join("/"));
|
|
93
|
-
|
|
94
|
-
// // const dir = path.dirname(opts.path.split("/").slice(0, -1).join("/"));
|
|
95
|
-
// // console.log("dir", dir);
|
|
96
|
-
// fs.mkdirSync(opts.path.split("/").slice(0, -1).join("/"), {
|
|
97
|
-
// recursive: true,
|
|
98
|
-
// });
|
|
99
|
-
|
|
100
|
-
// return page.screenshot(opts);
|
|
101
|
-
|
|
102
|
-
console.log("main.ts node custom-screenshot", page);
|
|
103
91
|
const p = opts.path as string;
|
|
104
92
|
const dir = path.dirname(p);
|
|
105
93
|
fs.mkdirSync(dir, {
|
|
@@ -134,41 +122,53 @@ export class PM_Main extends PM {
|
|
|
134
122
|
JSON.stringify(Array.from(files[testName]))
|
|
135
123
|
);
|
|
136
124
|
delete files[testName];
|
|
137
|
-
// globalThis["writeFileSync"](
|
|
138
|
-
// p + "/manifest.json",
|
|
139
|
-
// // files.entries()
|
|
140
|
-
// JSON.stringify(Array.from(files[testName]))
|
|
141
|
-
// );
|
|
142
|
-
|
|
143
|
-
// fileStreams3[uid].end();
|
|
144
125
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// // });
|
|
156
|
-
// // setTimeout(() => {
|
|
157
|
-
// // console.log("Delayed for 1 second.");
|
|
158
|
-
// // page.close();
|
|
159
|
-
// // }, 5000);
|
|
160
|
-
|
|
161
|
-
// // return page.close();
|
|
162
|
-
// });
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
shutDown() {
|
|
129
|
+
console.log("shutting down...");
|
|
130
|
+
this.shutdownMode = true;
|
|
131
|
+
this.checkForShutdown();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
customScreenShot(opts: object) {
|
|
135
|
+
throw new Error("Method not implemented.");
|
|
163
136
|
}
|
|
164
137
|
|
|
165
138
|
async startPuppeteer(options: any, destfolder: string): Promise<any> {
|
|
166
|
-
this.browser = await puppeteer.launch(options);
|
|
139
|
+
this.browser = (await puppeteer.launch(options)) as any;
|
|
167
140
|
return this.browser;
|
|
168
141
|
}
|
|
169
142
|
|
|
143
|
+
checkForShutdown = () => {
|
|
144
|
+
const anyRunning: boolean =
|
|
145
|
+
Object.values(this.registry).filter((x) => x === false).length > 0;
|
|
146
|
+
if (anyRunning) {
|
|
147
|
+
} else {
|
|
148
|
+
this.browser.disconnect().then(() => {
|
|
149
|
+
console.log("Goodbye");
|
|
150
|
+
process.exit();
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
register = (src: string) => {
|
|
156
|
+
// console.log("register", src);
|
|
157
|
+
this.registry[src] = false;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
deregister = (src: string) => {
|
|
161
|
+
// console.log("deregister", src, this.shutdownMode);
|
|
162
|
+
this.registry[src] = true;
|
|
163
|
+
|
|
164
|
+
if (this.shutdownMode) {
|
|
165
|
+
this.checkForShutdown();
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
170
169
|
launchNode = async (src: string, dest: string) => {
|
|
171
170
|
console.log("launchNode", src);
|
|
171
|
+
this.register(src);
|
|
172
172
|
|
|
173
173
|
const destFolder = dest.replace(".mjs", "");
|
|
174
174
|
|
|
@@ -197,7 +197,7 @@ export class PM_Main extends PM {
|
|
|
197
197
|
const openPorts = Object.entries(this.ports).filter(
|
|
198
198
|
([portnumber, portopen]) => portopen
|
|
199
199
|
);
|
|
200
|
-
|
|
200
|
+
|
|
201
201
|
if (openPorts.length >= testConfigResource.ports) {
|
|
202
202
|
for (let i = 0; i < testConfigResource.ports; i++) {
|
|
203
203
|
portsToUse.push(openPorts[i][0]);
|
|
@@ -250,18 +250,16 @@ export class PM_Main extends PM {
|
|
|
250
250
|
return module.default.then((defaultModule) => {
|
|
251
251
|
defaultModule
|
|
252
252
|
.receiveTestResourceConfig(argz)
|
|
253
|
-
.then((x) => {
|
|
254
|
-
console.log("then", x);
|
|
255
|
-
|
|
256
|
-
return x;
|
|
257
|
-
})
|
|
258
253
|
.catch((e) => {
|
|
259
254
|
console.log("catch", e);
|
|
255
|
+
})
|
|
256
|
+
.finally(() => {
|
|
257
|
+
this.deregister(src);
|
|
260
258
|
});
|
|
261
259
|
});
|
|
262
260
|
});
|
|
263
261
|
|
|
264
|
-
console.log("portsToUse", portsToUse);
|
|
262
|
+
// console.log("portsToUse", portsToUse);
|
|
265
263
|
for (let i = 0; i <= portsToUse.length; i++) {
|
|
266
264
|
if (portsToUse[i]) {
|
|
267
265
|
this.ports[portsToUse[i]] = "true"; //port is open again
|
|
@@ -306,7 +304,7 @@ export class PM_Main extends PM {
|
|
|
306
304
|
page.exposeFunction(
|
|
307
305
|
"custom-screenshot",
|
|
308
306
|
async (ssOpts: ScreenshotOptions, testName: string) => {
|
|
309
|
-
console.log("main.ts browser custom-screenshot", testName);
|
|
307
|
+
// console.log("main.ts browser custom-screenshot", testName);
|
|
310
308
|
const p = ssOpts.path as string;
|
|
311
309
|
const dir = path.dirname(p);
|
|
312
310
|
fs.mkdirSync(dir, {
|
|
@@ -411,7 +409,7 @@ export class PM_Main extends PM {
|
|
|
411
409
|
|
|
412
410
|
Promise.all(screenshots[testName] || []).then(() => {
|
|
413
411
|
delete screenshots[testName];
|
|
414
|
-
page.close();
|
|
412
|
+
// page.close();
|
|
415
413
|
});
|
|
416
414
|
|
|
417
415
|
// globalThis["writeFileSync"](
|
|
@@ -455,7 +453,6 @@ export class PM_Main extends PM {
|
|
|
455
453
|
});
|
|
456
454
|
};
|
|
457
455
|
|
|
458
|
-
// launchNodeSideCar = async (src: string, dest: string) => {};
|
|
459
456
|
launchNodeSideCar = async (
|
|
460
457
|
src: string,
|
|
461
458
|
dest: string,
|
|
@@ -491,7 +488,7 @@ export class PM_Main extends PM {
|
|
|
491
488
|
const openPorts = Object.entries(this.ports).filter(
|
|
492
489
|
([portnumber, portopen]) => portopen
|
|
493
490
|
);
|
|
494
|
-
console.log("openPorts", openPorts);
|
|
491
|
+
// console.log("openPorts", openPorts);
|
|
495
492
|
if (openPorts.length >= testConfigResource.ports) {
|
|
496
493
|
for (let i = 0; i < testConfigResource.ports; i++) {
|
|
497
494
|
portsToUse.push(openPorts[i][0]);
|
|
@@ -526,7 +523,7 @@ export class PM_Main extends PM {
|
|
|
526
523
|
`${builtfile}?cacheBust=${Date.now()}`
|
|
527
524
|
).then((module) => {
|
|
528
525
|
return module.default.then((defaultModule) => {
|
|
529
|
-
console.log("defaultModule", defaultModule);
|
|
526
|
+
// console.log("defaultModule", defaultModule);
|
|
530
527
|
const s = new defaultModule();
|
|
531
528
|
s.receiveTestResourceConfig(argz);
|
|
532
529
|
// Object.create(defaultModule);
|
|
@@ -543,7 +540,7 @@ export class PM_Main extends PM {
|
|
|
543
540
|
});
|
|
544
541
|
});
|
|
545
542
|
|
|
546
|
-
console.log("portsToUse", portsToUse);
|
|
543
|
+
// console.log("portsToUse", portsToUse);
|
|
547
544
|
for (let i = 0; i <= portsToUse.length; i++) {
|
|
548
545
|
if (portsToUse[i]) {
|
|
549
546
|
this.ports[portsToUse[i]] = "true"; //port is open again
|
|
@@ -553,6 +550,7 @@ export class PM_Main extends PM {
|
|
|
553
550
|
|
|
554
551
|
launchWeb = (t: string, dest: string, sidecars: ITestTypes[]) => {
|
|
555
552
|
console.log("launchWeb", t, dest);
|
|
553
|
+
this.register(t);
|
|
556
554
|
|
|
557
555
|
sidecars.map((sidecar) => {
|
|
558
556
|
if (sidecar[1] === "node") {
|
|
@@ -599,7 +597,7 @@ export class PM_Main extends PM {
|
|
|
599
597
|
page.exposeFunction(
|
|
600
598
|
"customScreenShot",
|
|
601
599
|
async (ssOpts: ScreenshotOptions, testName: string) => {
|
|
602
|
-
console.log("main.ts browser custom-screenshot", testName);
|
|
600
|
+
// console.log("main.ts browser custom-screenshot", testName);
|
|
603
601
|
const p = ssOpts.path as string;
|
|
604
602
|
const dir = path.dirname(p);
|
|
605
603
|
fs.mkdirSync(dir, {
|
|
@@ -696,7 +694,7 @@ export class PM_Main extends PM {
|
|
|
696
694
|
});
|
|
697
695
|
|
|
698
696
|
page.exposeFunction("customclose", (p: string, testName: string) => {
|
|
699
|
-
console.log("
|
|
697
|
+
// console.log("closing", p);
|
|
700
698
|
|
|
701
699
|
fs.writeFileSync(
|
|
702
700
|
p + "/manifest.json",
|
|
@@ -704,9 +702,12 @@ export class PM_Main extends PM {
|
|
|
704
702
|
);
|
|
705
703
|
delete files[testName];
|
|
706
704
|
|
|
705
|
+
// console.log("screenshots[testName]", screenshots[testName]);
|
|
707
706
|
Promise.all(screenshots[testName] || []).then(() => {
|
|
708
707
|
delete screenshots[testName];
|
|
709
|
-
page.close();
|
|
708
|
+
// page.close();
|
|
709
|
+
// console.log("\t GOODBYE");
|
|
710
|
+
// whyIsNodeRunning();
|
|
710
711
|
});
|
|
711
712
|
|
|
712
713
|
// globalThis["writeFileSync"](
|
|
@@ -740,9 +741,18 @@ export class PM_Main extends PM {
|
|
|
740
741
|
);
|
|
741
742
|
await page.goto(`file://${`${dest}.html`}`, {});
|
|
742
743
|
|
|
743
|
-
page
|
|
744
|
-
|
|
745
|
-
|
|
744
|
+
page
|
|
745
|
+
.evaluate(evaluation)
|
|
746
|
+
.catch((e) => {
|
|
747
|
+
console.log("evaluation failed.", dest);
|
|
748
|
+
console.log(e);
|
|
749
|
+
})
|
|
750
|
+
.finally(() => {
|
|
751
|
+
console.log("evaluation complete.", dest);
|
|
752
|
+
// page.close();
|
|
753
|
+
this.deregister(t);
|
|
754
|
+
// whyIsNodeRunning();
|
|
755
|
+
});
|
|
746
756
|
|
|
747
757
|
return page;
|
|
748
758
|
});
|
package/src/PM/node.ts
CHANGED
|
@@ -42,7 +42,7 @@ export class PM_Node extends PM {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
writeFileSync(filepath: string, contents: string) {
|
|
45
|
-
console.log("pm_node-writeFileSync", this.testResourceConfiguration);
|
|
45
|
+
// console.log("pm_node-writeFileSync", this.testResourceConfiguration);
|
|
46
46
|
return globalThis["writeFileSync"](
|
|
47
47
|
this.testResourceConfiguration.fs + "/" + filepath,
|
|
48
48
|
contents,
|
package/src/Project.ts
CHANGED
|
@@ -9,58 +9,30 @@ import esbuildWebConfiger from "./esbuildConfigs/web.js";
|
|
|
9
9
|
import webHtmlFrame from "./web.html.js";
|
|
10
10
|
import { ITestTypes, IBaseConfig, IRunTime } from "./lib/types.js";
|
|
11
11
|
|
|
12
|
-
var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
12
|
+
// var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
13
13
|
|
|
14
14
|
readline.emitKeypressEvents(process.stdin);
|
|
15
15
|
if (process.stdin.isTTY) process.stdin.setRawMode(true);
|
|
16
16
|
|
|
17
|
-
process.stdin.on("keypress", (str, key) => {
|
|
18
|
-
if (key.name === "q") {
|
|
19
|
-
console.log("Testeranto-EsBuild is shutting down...");
|
|
20
|
-
mode = "PROD";
|
|
21
|
-
onDone();
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
let nodeDone,
|
|
26
|
-
webDone = false;
|
|
27
|
-
|
|
28
|
-
const onNodeDone = () => {
|
|
29
|
-
nodeDone = true;
|
|
30
|
-
onDone();
|
|
31
|
-
};
|
|
32
|
-
const onWebDone = () => {
|
|
33
|
-
webDone = true;
|
|
34
|
-
onDone();
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const onDone = () => {
|
|
38
|
-
console.log(
|
|
39
|
-
JSON.stringify(
|
|
40
|
-
{
|
|
41
|
-
nodeDone,
|
|
42
|
-
webDone,
|
|
43
|
-
mode,
|
|
44
|
-
},
|
|
45
|
-
null,
|
|
46
|
-
2
|
|
47
|
-
)
|
|
48
|
-
);
|
|
49
|
-
if (nodeDone && webDone && mode === "PROD") {
|
|
50
|
-
console.log("Testeranto-EsBuild is all done. Goodbye!");
|
|
51
|
-
process.exit();
|
|
52
|
-
} else {
|
|
53
|
-
console.log("Testeranto-EsBuild is still working...");
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
17
|
export class ITProject {
|
|
58
18
|
config: IBaseConfig;
|
|
59
|
-
mode: `
|
|
19
|
+
mode: `DEV` | `PROD`;
|
|
20
|
+
nodeDone: boolean = false;
|
|
21
|
+
webDone: boolean = false;
|
|
60
22
|
|
|
61
23
|
constructor(configs: IBaseConfig) {
|
|
62
24
|
this.config = configs;
|
|
63
25
|
|
|
26
|
+
this.mode = this.config.devMode ? "DEV" : "PROD";
|
|
27
|
+
|
|
28
|
+
process.stdin.on("keypress", (str, key) => {
|
|
29
|
+
if (key.name === "q") {
|
|
30
|
+
console.log("Testeranto-EsBuild is shutting down...");
|
|
31
|
+
this.mode = "PROD";
|
|
32
|
+
this.onDone();
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
64
36
|
fs.writeFileSync(
|
|
65
37
|
`${this.config.outdir}/testeranto.json`,
|
|
66
38
|
JSON.stringify(
|
|
@@ -124,13 +96,13 @@ export class ITProject {
|
|
|
124
96
|
esbuild
|
|
125
97
|
.context(esbuildNodeConfiger(this.config, nodeEntryPoints))
|
|
126
98
|
.then(async (nodeContext) => {
|
|
127
|
-
if (
|
|
99
|
+
if (this.config.devMode) {
|
|
128
100
|
await nodeContext.watch().then((v) => {
|
|
129
|
-
onNodeDone();
|
|
101
|
+
this.onNodeDone();
|
|
130
102
|
});
|
|
131
103
|
} else {
|
|
132
104
|
nodeContext.rebuild().then((v) => {
|
|
133
|
-
onNodeDone();
|
|
105
|
+
this.onNodeDone();
|
|
134
106
|
});
|
|
135
107
|
}
|
|
136
108
|
|
|
@@ -139,13 +111,13 @@ export class ITProject {
|
|
|
139
111
|
esbuild
|
|
140
112
|
.context(esbuildWebConfiger(this.config, webEntryPoints))
|
|
141
113
|
.then(async (webContext) => {
|
|
142
|
-
if (
|
|
114
|
+
if (this.config.devMode) {
|
|
143
115
|
await webContext.watch().then((v) => {
|
|
144
|
-
onWebDone();
|
|
116
|
+
this.onWebDone();
|
|
145
117
|
});
|
|
146
118
|
} else {
|
|
147
119
|
webContext.rebuild().then((v) => {
|
|
148
|
-
onWebDone();
|
|
120
|
+
this.onWebDone();
|
|
149
121
|
});
|
|
150
122
|
}
|
|
151
123
|
return webContext;
|
|
@@ -153,6 +125,41 @@ export class ITProject {
|
|
|
153
125
|
]);
|
|
154
126
|
}
|
|
155
127
|
|
|
128
|
+
onNodeDone = () => {
|
|
129
|
+
this.nodeDone = true;
|
|
130
|
+
this.onDone();
|
|
131
|
+
};
|
|
132
|
+
onWebDone = () => {
|
|
133
|
+
this.webDone = true;
|
|
134
|
+
this.onDone();
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
onDone = () => {
|
|
138
|
+
// console.log(this.nodeDone && this.webDone && this.mode === "PROD");
|
|
139
|
+
if (this.nodeDone && this.webDone && this.mode === "PROD") {
|
|
140
|
+
console.log("Testeranto-EsBuild is all done. Goodbye!");
|
|
141
|
+
process.exit();
|
|
142
|
+
} else {
|
|
143
|
+
if (this.mode === "PROD") {
|
|
144
|
+
console.log("waiting for tests to finish");
|
|
145
|
+
console.log(
|
|
146
|
+
JSON.stringify(
|
|
147
|
+
{
|
|
148
|
+
nodeDone: this.nodeDone,
|
|
149
|
+
webDone: this.webDone,
|
|
150
|
+
mode: this.mode,
|
|
151
|
+
},
|
|
152
|
+
null,
|
|
153
|
+
2
|
|
154
|
+
)
|
|
155
|
+
);
|
|
156
|
+
} else {
|
|
157
|
+
console.log("waiting for tests to change");
|
|
158
|
+
}
|
|
159
|
+
console.log("press 'q' to quit");
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
156
163
|
public getSecondaryEndpointsPoints(runtime?: IRunTime): string[] {
|
|
157
164
|
const meta = (ts: ITestTypes[], st: Set<string>): Set<string> => {
|
|
158
165
|
ts.forEach((t) => {
|
package/src/Puppeteer.ts
CHANGED
|
@@ -4,27 +4,22 @@ import watch from "recursive-watch";
|
|
|
4
4
|
|
|
5
5
|
import { PM_Main } from "./PM/main.js";
|
|
6
6
|
import { destinationOfRuntime } from "./utils.js";
|
|
7
|
+
import { timeout } from "puppeteer-core/lib/esm/puppeteer/index.js";
|
|
8
|
+
import { IBaseConfig, IBuiltConfig } from "./lib/types.js";
|
|
7
9
|
|
|
8
|
-
var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
10
|
+
// var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
9
11
|
|
|
10
|
-
const node2web: Record<string, string[]> = {};
|
|
11
|
-
const web2node: Record<string, string[]> = {};
|
|
12
|
-
const childProcesses: Record<string, "loaded" | "running" | "done"> = {};
|
|
12
|
+
// const node2web: Record<string, string[]> = {};
|
|
13
|
+
// const web2node: Record<string, string[]> = {};
|
|
14
|
+
// const childProcesses: Record<string, "loaded" | "running" | "done"> = {};
|
|
13
15
|
|
|
14
16
|
readline.emitKeypressEvents(process.stdin);
|
|
15
17
|
if (process.stdin.isTTY) process.stdin.setRawMode(true);
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
console.log("\n Puppeteer is running. Press 'q' to quit\n");
|
|
20
|
-
process.stdin.on("keypress", (str, key) => {
|
|
21
|
-
if (key.name === "q") {
|
|
22
|
-
process.exit();
|
|
23
|
-
}
|
|
24
|
-
});
|
|
19
|
+
// let shutDownMode = false;
|
|
25
20
|
|
|
26
21
|
export default async (partialConfig) => {
|
|
27
|
-
const config = {
|
|
22
|
+
const config: IBuiltConfig = {
|
|
28
23
|
...partialConfig,
|
|
29
24
|
buildDir: process.cwd() + "/" + partialConfig.outdir,
|
|
30
25
|
};
|
|
@@ -45,17 +40,23 @@ export default async (partialConfig) => {
|
|
|
45
40
|
|
|
46
41
|
await pm.startPuppeteer(
|
|
47
42
|
{
|
|
43
|
+
// timeout: 1,
|
|
48
44
|
waitForInitialPage: false,
|
|
49
|
-
executablePath:
|
|
45
|
+
executablePath:
|
|
46
|
+
// process.env.CHROMIUM_PATH || "/opt/homebrew/bin/chromium",
|
|
47
|
+
"/opt/homebrew/bin/chromium",
|
|
50
48
|
headless: true,
|
|
51
|
-
|
|
49
|
+
dumpio: true,
|
|
50
|
+
// timeout: 0,
|
|
52
51
|
args: [
|
|
52
|
+
// "--auto-open-devtools-for-tabs",
|
|
53
|
+
|
|
53
54
|
"--disable-features=IsolateOrigins,site-per-process",
|
|
54
55
|
"--disable-site-isolation-trials",
|
|
55
56
|
"--allow-insecure-localhost",
|
|
56
57
|
"--allow-file-access-from-files",
|
|
57
58
|
"--allow-running-insecure-content",
|
|
58
|
-
|
|
59
|
+
|
|
59
60
|
"--disable-dev-shm-usage",
|
|
60
61
|
"--disable-extensions",
|
|
61
62
|
"--disable-gpu",
|
|
@@ -84,6 +85,14 @@ export default async (partialConfig) => {
|
|
|
84
85
|
"."
|
|
85
86
|
);
|
|
86
87
|
|
|
88
|
+
console.log("\n Puppeteer is running. Press 'q' to quit\n");
|
|
89
|
+
process.stdin.on("keypress", (str, key) => {
|
|
90
|
+
if (key.name === "q") {
|
|
91
|
+
pm.shutDown();
|
|
92
|
+
// process.exit();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
|
|
87
96
|
config.tests.forEach(([test, runtime, tr, sidecars]) => {
|
|
88
97
|
if (runtime === "node") {
|
|
89
98
|
pm.launchNode(test, destinationOfRuntime(test, "node", config));
|
|
@@ -94,43 +103,48 @@ export default async (partialConfig) => {
|
|
|
94
103
|
}
|
|
95
104
|
});
|
|
96
105
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
106
|
+
if (config.devMode) {
|
|
107
|
+
console.log("ready and watching for changes...", config.buildDir);
|
|
108
|
+
|
|
109
|
+
watch(config.buildDir, (eventType, changedFile) => {
|
|
110
|
+
if (changedFile) {
|
|
111
|
+
config.tests.forEach(([test, runtime, tr, sidecars]) => {
|
|
112
|
+
if (eventType === "change" || eventType === "rename") {
|
|
113
|
+
if (
|
|
114
|
+
changedFile ===
|
|
115
|
+
test
|
|
116
|
+
.replace("./", "node/")
|
|
117
|
+
.split(".")
|
|
118
|
+
.slice(0, -1)
|
|
119
|
+
.concat("mjs")
|
|
120
|
+
.join(".")
|
|
121
|
+
) {
|
|
122
|
+
pm.launchNode(test, destinationOfRuntime(test, "node", config));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (
|
|
126
|
+
changedFile ===
|
|
127
|
+
test
|
|
128
|
+
.replace("./", "web/")
|
|
129
|
+
.split(".")
|
|
130
|
+
.slice(0, -1)
|
|
131
|
+
.concat("mjs")
|
|
132
|
+
.join(".")
|
|
133
|
+
) {
|
|
134
|
+
pm.launchWeb(
|
|
135
|
+
test,
|
|
136
|
+
destinationOfRuntime(test, "web", config),
|
|
137
|
+
sidecars
|
|
138
|
+
);
|
|
139
|
+
}
|
|
129
140
|
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
} else {
|
|
145
|
+
pm.shutDown();
|
|
146
|
+
}
|
|
147
|
+
// pm.browser.close();
|
|
134
148
|
|
|
135
149
|
// does not work on linux
|
|
136
150
|
// fs.watch(
|