testeranto 0.173.0 → 0.177.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/dist/common/src/PM/base.js +5 -5
- package/dist/common/src/PM/main.js +48 -52
- package/dist/common/src/PM/node.js +4 -1
- package/dist/common/src/PM/pure.js +4 -1
- package/dist/common/src/PM/web.js +4 -1
- package/dist/common/src/Pure.js +0 -4
- package/dist/common/src/Pure.test.js +1 -1
- package/dist/common/src/ReportServerLib.js +11 -5
- package/dist/common/src/esbuildConfigs/node.js +1 -3
- package/dist/common/src/lib/BaseSuite.js +13 -11
- package/dist/common/src/lib/abstractBase.js +39 -42
- package/dist/common/src/lib/basebuilder.js +5 -0
- package/dist/common/src/lib/core.js +1 -0
- package/dist/common/src/lib/pmProxy.js +210 -100
- package/dist/common/src/lib/pmProxy.test/adapter.js +2 -2
- package/dist/common/src/lib/pmProxy.test/implementation.js +1 -1
- package/dist/common/testeranto.config.js +39 -39
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/PM/base.js +5 -5
- package/dist/module/src/PM/main.js +13 -17
- package/dist/module/src/PM/node.js +4 -1
- package/dist/module/src/PM/pure.js +4 -1
- package/dist/module/src/PM/web.js +4 -1
- package/dist/module/src/Pure.js +0 -4
- package/dist/module/src/Pure.test.js +1 -1
- package/dist/module/src/ReportServerLib.js +11 -5
- package/dist/module/src/esbuildConfigs/node.js +1 -3
- package/dist/module/src/lib/BaseSuite.js +13 -11
- package/dist/module/src/lib/abstractBase.js +39 -42
- package/dist/module/src/lib/basebuilder.js +5 -0
- package/dist/module/src/lib/core.js +1 -0
- package/dist/module/src/lib/pmProxy.js +210 -100
- package/dist/module/src/lib/pmProxy.test/adapter.js +2 -2
- package/dist/module/src/lib/pmProxy.test/implementation.js +1 -1
- package/dist/module/testeranto.config.js +39 -39
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/ReportServer.mjs +10 -4
- package/dist/prebuild/build.mjs +1 -1
- package/dist/prebuild/run.mjs +19 -22
- package/dist/types/src/PM/base.d.ts +1 -1
- package/dist/types/src/PM/node.d.ts +1 -1
- package/dist/types/src/PM/pure.d.ts +1 -1
- package/dist/types/src/PM/web.d.ts +1 -1
- package/dist/types/src/ReportServerLib.d.ts +1 -2
- package/dist/types/src/lib/BaseSuite.d.ts +2 -0
- package/dist/types/src/lib/abstractBase.d.ts +4 -6
- package/dist/types/src/lib/pmProxy.d.ts +3 -3
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/PM/base.ts +6 -9
- package/src/PM/main.ts +17 -20
- package/src/PM/node.ts +6 -1
- package/src/PM/pure.ts +6 -1
- package/src/PM/web.ts +5 -1
- package/src/Pure.test.ts +6 -6
- package/src/Pure.ts +0 -8
- package/src/ReportServerLib.ts +10 -7
- package/src/esbuildConfigs/node.ts +1 -1
- package/src/lib/BaseSuite.ts +16 -21
- package/src/lib/abstractBase.ts +57 -49
- package/src/lib/basebuilder.ts +6 -0
- package/src/lib/core.ts +1 -0
- package/src/lib/pmProxy.test/adapter.ts +2 -2
- package/src/lib/pmProxy.test/implementation.ts +3 -3
- package/src/lib/pmProxy.test/types.ts +0 -2
- package/src/lib/pmProxy.ts +224 -92
- package/testeranto/bundles/node/core/metafile.json +2 -480
- package/testeranto/bundles/pure/core/metafile.json +3 -621
- package/testeranto/bundles/web/core/metafile.json +14384 -78
- package/testeranto/bundles/web/core/src/{lib/baseBuilder.test/baseBuilder.test.web.html → components/pure/ProjectPageView.test/index.html} +2 -2
- package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +39991 -0
- package/testeranto/projects.json +0 -1
- package/testeranto/reports/core/config.json +5 -5
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +18 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +59 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +2 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +27 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
- package/testeranto/reports/{staticSite/src/ReportServer.test.ts/index/node → core/src/components/pure/ProjectPageView.test/index/web}/type_errors.txt +20 -22
- package/testeranto/reports/core/summary.json +5 -19
- package/testeranto.config.ts +39 -39
- package/tsc.log +78 -92
- package/testeranto/bundles/node/allTests/metafile.json +0 -486
- package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -1182
- package/testeranto/bundles/node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -1182
- package/testeranto/bundles/node/staticSite/metafile.json +0 -593
- package/testeranto/bundles/node/staticSite/src/ReportServer.test.ts/index.mjs +0 -1594
- package/testeranto/bundles/pure/allTests/metafile.json +0 -626
- package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -1094
- package/testeranto/bundles/pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -1094
- package/testeranto/bundles/pure/staticSite/metafile.json +0 -8
- package/testeranto/bundles/web/allTests/metafile.json +0 -780
- package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +0 -19
- package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -1092
- package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -1092
- package/testeranto/bundles/web/staticSite/metafile.json +0 -8
- package/testeranto/reports/allTests/config.json +0 -40
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -33
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -26
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -69
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -74
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -26
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -74
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -63
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -26
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -69
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -74
- package/testeranto/reports/allTests/summary.json +0 -23
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -32
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -26
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -69
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -74
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -26
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -74
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -61
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -26
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -69
- package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -74
- package/testeranto/reports/staticSite/config.json +0 -24
- package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/lint_errors.txt +0 -5
- package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/logs.txt +0 -44
- package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/message.txt +0 -2
- package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/prompt.txt +0 -23
- package/testeranto/reports/staticSite/summary.json +0 -9
- package/testeranto/reportsnode_build_errors +0 -17
|
@@ -118,11 +118,11 @@ class PM_Base {
|
|
|
118
118
|
}
|
|
119
119
|
return false;
|
|
120
120
|
}
|
|
121
|
-
async writeFileSync(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
console.log("
|
|
121
|
+
async writeFileSync(...x) {
|
|
122
|
+
const filepath = x[0];
|
|
123
|
+
const contents = x[1];
|
|
124
|
+
const testName = x[2];
|
|
125
|
+
console.log("writing file", filepath);
|
|
126
126
|
return new Promise(async (res) => {
|
|
127
127
|
fs_1.default.mkdirSync(path_1.default.dirname(filepath), {
|
|
128
128
|
recursive: true,
|
|
@@ -42,16 +42,16 @@ exports.PM_Main = void 0;
|
|
|
42
42
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
43
43
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
44
44
|
const node_child_process_1 = require("node:child_process");
|
|
45
|
+
const ansi_colors_1 = __importDefault(require("ansi-colors"));
|
|
45
46
|
const net_1 = __importDefault(require("net"));
|
|
46
47
|
const fs_1 = __importStar(require("fs"));
|
|
47
48
|
const path_1 = __importDefault(require("path"));
|
|
48
49
|
const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
|
|
49
|
-
const
|
|
50
|
+
const ansi_colors_2 = __importDefault(require("ansi-colors"));
|
|
50
51
|
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
51
52
|
const utils_1 = require("../utils");
|
|
52
53
|
const queue_js_1 = require("../utils/queue.js");
|
|
53
54
|
const PM_WithEslintAndTsc_js_1 = require("./PM_WithEslintAndTsc.js");
|
|
54
|
-
const ansi_colors_2 = __importDefault(require("ansi-colors"));
|
|
55
55
|
const changes = {};
|
|
56
56
|
const fileHashes = {};
|
|
57
57
|
const files = {};
|
|
@@ -74,10 +74,10 @@ async function fileHash(filePath, algorithm = "md5") {
|
|
|
74
74
|
}
|
|
75
75
|
const statusMessagePretty = (failures, test, runtime) => {
|
|
76
76
|
if (failures === 0) {
|
|
77
|
-
console.log(
|
|
77
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`${runtime} > ${test} completed successfully`)));
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
|
-
console.log(
|
|
80
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${runtime} > ${test} failed ${failures} times`)));
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
async function writeFileAndCreateDir(filePath, data) {
|
|
@@ -108,12 +108,10 @@ function isValidUrl(string) {
|
|
|
108
108
|
}
|
|
109
109
|
// Wait for file to exist, checks every 2 seconds by default
|
|
110
110
|
async function pollForFile(path, timeout = 2000) {
|
|
111
|
-
console.log(`pollForFile: ${path}...`);
|
|
112
111
|
const intervalObj = setInterval(function () {
|
|
113
112
|
const file = path;
|
|
114
113
|
const fileExists = fs_1.default.existsSync(file);
|
|
115
114
|
if (fileExists) {
|
|
116
|
-
console.log(`metafile found: ${path}!`);
|
|
117
115
|
clearInterval(intervalObj);
|
|
118
116
|
}
|
|
119
117
|
}, timeout);
|
|
@@ -132,7 +130,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
132
130
|
return (0, utils_1.getRunnables)(tests, testName, payload);
|
|
133
131
|
};
|
|
134
132
|
this.launchPure = async (src, dest) => {
|
|
135
|
-
console.log(
|
|
133
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`pure < ${src}`)));
|
|
136
134
|
this.bddTestIsRunning(src);
|
|
137
135
|
const reportDest = `testeranto/reports/${this.name}/${src
|
|
138
136
|
.split(".")
|
|
@@ -147,7 +145,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
147
145
|
return t[0] === src;
|
|
148
146
|
});
|
|
149
147
|
if (!testConfig) {
|
|
150
|
-
console.log(
|
|
148
|
+
console.log(ansi_colors_2.default.inverse("missing test config! Exiting ungracefully!"));
|
|
151
149
|
process.exit(-1);
|
|
152
150
|
}
|
|
153
151
|
const testConfigResource = testConfig[2];
|
|
@@ -224,7 +222,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
224
222
|
this.bddTestIsNowDone(src, results.fails);
|
|
225
223
|
})
|
|
226
224
|
.catch((e1) => {
|
|
227
|
-
console.log(
|
|
225
|
+
console.log(ansi_colors_2.default.red(`launchPure - ${src} errored with: ${e1}`));
|
|
228
226
|
this.bddTestIsNowDone(src, -1);
|
|
229
227
|
statusMessagePretty(-1, src, "pure");
|
|
230
228
|
});
|
|
@@ -233,7 +231,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
233
231
|
// });
|
|
234
232
|
})
|
|
235
233
|
.catch((e2) => {
|
|
236
|
-
console.log(
|
|
234
|
+
console.log(ansi_colors_1.default.red(`pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
|
|
237
235
|
this.writeFileSync(`${reportDest}/logs.txt`, e2.stack, src);
|
|
238
236
|
this.bddTestIsNowDone(src, -1);
|
|
239
237
|
statusMessagePretty(-1, src, "pure");
|
|
@@ -249,7 +247,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
249
247
|
});
|
|
250
248
|
}
|
|
251
249
|
catch (e3) {
|
|
252
|
-
console.log(
|
|
250
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`)));
|
|
253
251
|
this.writeFileSync(`${reportDest}/logs.txt`, e3.stack, src);
|
|
254
252
|
this.bddTestIsNowDone(src, -1);
|
|
255
253
|
statusMessagePretty(-1, src, "pure");
|
|
@@ -262,7 +260,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
262
260
|
}
|
|
263
261
|
};
|
|
264
262
|
this.launchNode = async (src, dest) => {
|
|
265
|
-
console.log(
|
|
263
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`node < ${src}`)));
|
|
266
264
|
this.bddTestIsRunning(src);
|
|
267
265
|
const reportDest = `testeranto/reports/${this.name}/${src
|
|
268
266
|
.split(".")
|
|
@@ -277,7 +275,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
277
275
|
return t[0] === src;
|
|
278
276
|
});
|
|
279
277
|
if (!testConfig) {
|
|
280
|
-
console.log(
|
|
278
|
+
console.log(ansi_colors_2.default.inverse(`missing test config! Exiting ungracefully for '${src}'`));
|
|
281
279
|
process.exit(-1);
|
|
282
280
|
}
|
|
283
281
|
const testConfigResource = testConfig[2];
|
|
@@ -308,7 +306,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
308
306
|
});
|
|
309
307
|
}
|
|
310
308
|
else {
|
|
311
|
-
console.log(
|
|
309
|
+
console.log(ansi_colors_2.default.red(`node: cannot run ${src} because there are no open ports ATM. This job will be enqueued and run again run a port is available`));
|
|
312
310
|
this.queue.push(src);
|
|
313
311
|
return;
|
|
314
312
|
}
|
|
@@ -394,7 +392,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
394
392
|
// JSON.stringify(Array.from(files[src]))
|
|
395
393
|
// );
|
|
396
394
|
if (code === 255) {
|
|
397
|
-
console.log(
|
|
395
|
+
console.log(ansi_colors_1.default.red(`node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
|
|
398
396
|
this.bddTestIsNowDone(src, -1);
|
|
399
397
|
statusMessagePretty(-1, src, "node");
|
|
400
398
|
oStream.close();
|
|
@@ -421,7 +419,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
421
419
|
child.on("error", (e) => {
|
|
422
420
|
console.log("error");
|
|
423
421
|
haltReturns = true;
|
|
424
|
-
console.log(
|
|
422
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${src} errored with: ${e.name}. Check ${errFile} for more info`)));
|
|
425
423
|
this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
|
|
426
424
|
this.bddTestIsNowDone(src, -1);
|
|
427
425
|
statusMessagePretty(-1, src, "node");
|
|
@@ -433,7 +431,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
433
431
|
const dest = src.split(".").slice(0, -1).join(".");
|
|
434
432
|
// const d = dest + ".mjs";
|
|
435
433
|
const destFolder = dest.replace(".mjs", "");
|
|
436
|
-
console.log(
|
|
434
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchWebSideCar ${src}`)));
|
|
437
435
|
const fileStreams2 = [];
|
|
438
436
|
const doneFileStream2 = [];
|
|
439
437
|
const oStream = fs_1.default.createWriteStream(`${destFolder}/logs.txt`);
|
|
@@ -512,7 +510,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
512
510
|
this.bddTestIsNowDone(src, fails);
|
|
513
511
|
})
|
|
514
512
|
.catch((e) => {
|
|
515
|
-
console.log(
|
|
513
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`launchWebSidecar - ${src} errored with: ${e}`)));
|
|
516
514
|
})
|
|
517
515
|
.finally(() => {
|
|
518
516
|
this.bddTestIsNowDone(src, -1);
|
|
@@ -532,7 +530,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
532
530
|
const src = sidecar[0];
|
|
533
531
|
const dest = process.cwd() + `/testeranto/bundles/node/${this.name}/${sidecar[0]}`;
|
|
534
532
|
const d = dest + ".mjs";
|
|
535
|
-
console.log(
|
|
533
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchNodeSideCar ${sidecar[0]}`)));
|
|
536
534
|
const destFolder = dest.replace(".ts", "");
|
|
537
535
|
const reportDest = `testeranto/reports/${this.name}/${src
|
|
538
536
|
.split(".")
|
|
@@ -631,7 +629,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
631
629
|
fs_1.default.rmSync(p);
|
|
632
630
|
}
|
|
633
631
|
haltReturns = true;
|
|
634
|
-
console.log(
|
|
632
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`)));
|
|
635
633
|
this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
|
|
636
634
|
// this.bddTestIsNowDone(src, -1);
|
|
637
635
|
// statusMessagePretty(-1, src);
|
|
@@ -643,7 +641,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
643
641
|
return [r, argz];
|
|
644
642
|
}
|
|
645
643
|
else {
|
|
646
|
-
console.log(
|
|
644
|
+
console.log(ansi_colors_2.default.red(`cannot ${src} because there are no open ports. the job will be unqueued`));
|
|
647
645
|
this.queue.push(sidecar[0]);
|
|
648
646
|
return [Math.random(), argz];
|
|
649
647
|
}
|
|
@@ -654,12 +652,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
654
652
|
}
|
|
655
653
|
};
|
|
656
654
|
this.stopPureSideCar = async (uid) => {
|
|
657
|
-
console.log(
|
|
655
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`stopPureSideCar ${uid}`)));
|
|
658
656
|
await this.sidecars[uid].shutdown();
|
|
659
657
|
return;
|
|
660
658
|
};
|
|
661
659
|
this.launchPureSideCar = async (sidecar) => {
|
|
662
|
-
console.log(
|
|
660
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchPureSideCar ${sidecar[0]}`)));
|
|
663
661
|
const r = Math.random();
|
|
664
662
|
const dest = process.cwd() + `/testeranto/bundles/pure/${this.name}/${sidecar[0]}`;
|
|
665
663
|
const builtfile = dest.split(".").slice(0, -1).concat("mjs").join(".");
|
|
@@ -716,7 +714,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
716
714
|
// }
|
|
717
715
|
};
|
|
718
716
|
this.launchWeb = async (src, dest) => {
|
|
719
|
-
console.log(
|
|
717
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`web < ${src}`)));
|
|
720
718
|
this.bddTestIsRunning(src);
|
|
721
719
|
const reportDest = `testeranto/reports/${this.name}/${src
|
|
722
720
|
.split(".")
|
|
@@ -733,16 +731,6 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
733
731
|
browserWSEndpoint: this.browser.wsEndpoint(),
|
|
734
732
|
});
|
|
735
733
|
const d = `${dest}?cacheBust=${Date.now()}`;
|
|
736
|
-
const evaluation = `
|
|
737
|
-
|
|
738
|
-
import('${d}').then(async (x) => {
|
|
739
|
-
|
|
740
|
-
try {
|
|
741
|
-
return await (await x.default).receiveTestResourceConfig(${webArgz})
|
|
742
|
-
} catch (e) {
|
|
743
|
-
console.log("web run failure", e.toString())
|
|
744
|
-
}
|
|
745
|
-
})`;
|
|
746
734
|
const ofile = `${reportDest}/logs.txt`;
|
|
747
735
|
const oStream = fs_1.default.createWriteStream(ofile);
|
|
748
736
|
this.browser
|
|
@@ -781,11 +769,10 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
781
769
|
page.close();
|
|
782
770
|
oStream.close();
|
|
783
771
|
});
|
|
784
|
-
console.log("ostream is closed");
|
|
785
772
|
return;
|
|
786
773
|
};
|
|
787
774
|
page.on("pageerror", (err) => {
|
|
788
|
-
console.log(
|
|
775
|
+
console.log(ansi_colors_1.default.red(`web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
|
|
789
776
|
oStream.write(err.name);
|
|
790
777
|
oStream.write("\n");
|
|
791
778
|
if (err.cause) {
|
|
@@ -820,19 +807,28 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
820
807
|
});
|
|
821
808
|
await page.goto(`file://${`${destFolder}.html`}`, {});
|
|
822
809
|
await page
|
|
823
|
-
.evaluate(
|
|
810
|
+
.evaluate(`
|
|
811
|
+
import('${d}').then(async (x) => {
|
|
812
|
+
try {
|
|
813
|
+
return await (await x.default).receiveTestResourceConfig(${webArgz})
|
|
814
|
+
} catch (e) {
|
|
815
|
+
console.log("web run failure", e.toString())
|
|
816
|
+
}
|
|
817
|
+
})
|
|
818
|
+
`)
|
|
824
819
|
.then(async ({ fails, failed, features }) => {
|
|
825
820
|
statusMessagePretty(fails, src, "web");
|
|
826
821
|
this.bddTestIsNowDone(src, fails);
|
|
827
|
-
close();
|
|
822
|
+
// close();
|
|
828
823
|
})
|
|
829
824
|
.catch((e) => {
|
|
830
|
-
console.log(
|
|
831
|
-
console.log(
|
|
825
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(e.stack)));
|
|
826
|
+
console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`)));
|
|
832
827
|
this.bddTestIsNowDone(src, -1);
|
|
833
828
|
})
|
|
834
829
|
.finally(() => {
|
|
835
830
|
// process.exit(-1);
|
|
831
|
+
close();
|
|
836
832
|
});
|
|
837
833
|
return page;
|
|
838
834
|
});
|
|
@@ -904,40 +900,40 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
904
900
|
this.checkForShutdown = () => {
|
|
905
901
|
// console.log(ansiC.inverse(JSON.stringify(this.summary, null, 2)));
|
|
906
902
|
this.checkQueue();
|
|
907
|
-
console.log(
|
|
908
|
-
console.log(
|
|
903
|
+
console.log(ansi_colors_2.default.inverse(`The following jobs are awaiting resources: ${JSON.stringify(this.queue)}`));
|
|
904
|
+
console.log(ansi_colors_2.default.inverse(`The status of ports: ${JSON.stringify(this.ports)}`));
|
|
909
905
|
this.writeBigBoard();
|
|
910
906
|
if (this.mode === "dev")
|
|
911
907
|
return;
|
|
912
908
|
let inflight = false;
|
|
913
909
|
Object.keys(this.summary).forEach((k) => {
|
|
914
910
|
if (this.summary[k].prompt === "?") {
|
|
915
|
-
console.log(
|
|
911
|
+
console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 prompt ${k}`)));
|
|
916
912
|
inflight = true;
|
|
917
913
|
}
|
|
918
914
|
});
|
|
919
915
|
Object.keys(this.summary).forEach((k) => {
|
|
920
916
|
if (this.summary[k].runTimeErrors === "?") {
|
|
921
|
-
console.log(
|
|
917
|
+
console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 runTimeError ${k}`)));
|
|
922
918
|
inflight = true;
|
|
923
919
|
}
|
|
924
920
|
});
|
|
925
921
|
Object.keys(this.summary).forEach((k) => {
|
|
926
922
|
if (this.summary[k].staticErrors === "?") {
|
|
927
|
-
console.log(
|
|
923
|
+
console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 staticErrors ${k}`)));
|
|
928
924
|
inflight = true;
|
|
929
925
|
}
|
|
930
926
|
});
|
|
931
927
|
Object.keys(this.summary).forEach((k) => {
|
|
932
928
|
if (this.summary[k].typeErrors === "?") {
|
|
933
|
-
console.log(
|
|
929
|
+
console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 typeErrors ${k}`)));
|
|
934
930
|
inflight = true;
|
|
935
931
|
}
|
|
936
932
|
});
|
|
937
933
|
this.writeBigBoard();
|
|
938
934
|
if (!inflight) {
|
|
939
935
|
this.browser.disconnect().then(() => {
|
|
940
|
-
console.log(
|
|
936
|
+
console.log(ansi_colors_2.default.inverse(`${this.name} has been tested. Goodbye.`));
|
|
941
937
|
process.exit();
|
|
942
938
|
});
|
|
943
939
|
}
|
|
@@ -953,7 +949,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
953
949
|
});
|
|
954
950
|
}
|
|
955
951
|
async stopSideCar(uid) {
|
|
956
|
-
console.log(
|
|
952
|
+
console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`stopSideCar ${uid}`)));
|
|
957
953
|
Object.entries(this.pureSidecars).forEach(async ([k, v]) => {
|
|
958
954
|
if (Number(k) === uid) {
|
|
959
955
|
await this.pureSidecars[Number(k)].stop();
|
|
@@ -1118,7 +1114,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
1118
1114
|
const hash = await fileHash(outputFile);
|
|
1119
1115
|
if (fileHashes[inputFile] !== hash) {
|
|
1120
1116
|
fileHashes[inputFile] = hash;
|
|
1121
|
-
console.log(
|
|
1117
|
+
console.log(ansi_colors_2.default.yellow(ansi_colors_2.default.inverse(`< ${e} ${filename}`)));
|
|
1122
1118
|
// launcher(inputFile, outputFile);
|
|
1123
1119
|
this.launchers[inputFile]();
|
|
1124
1120
|
}
|
|
@@ -1130,7 +1126,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
1130
1126
|
});
|
|
1131
1127
|
this.metafileOutputs(runtime);
|
|
1132
1128
|
watcher((0, fs_1.watch)(metafile, async (e, filename) => {
|
|
1133
|
-
console.log(
|
|
1129
|
+
console.log(ansi_colors_2.default.yellow(ansi_colors_2.default.inverse(`< ${e} ${filename} (${runtime})`)));
|
|
1134
1130
|
this.metafileOutputs(runtime);
|
|
1135
1131
|
}));
|
|
1136
1132
|
});
|
|
@@ -1169,7 +1165,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
1169
1165
|
// // });
|
|
1170
1166
|
// }
|
|
1171
1167
|
async stop() {
|
|
1172
|
-
console.log(
|
|
1168
|
+
console.log(ansi_colors_2.default.inverse("Testeranto-Run is shutting down gracefully..."));
|
|
1173
1169
|
this.mode = "once";
|
|
1174
1170
|
this.nodeMetafileWatcher.close();
|
|
1175
1171
|
this.webMetafileWatcher.close();
|
|
@@ -1223,7 +1219,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
|
|
|
1223
1219
|
checkQueue() {
|
|
1224
1220
|
const x = this.queue.pop();
|
|
1225
1221
|
if (!x) {
|
|
1226
|
-
|
|
1222
|
+
ansi_colors_2.default.inverse(`The following queue is empty`);
|
|
1227
1223
|
return;
|
|
1228
1224
|
}
|
|
1229
1225
|
const test = this.configs.tests.find((t) => t[0] === x);
|
|
@@ -114,7 +114,10 @@ class PM_Node extends _1.PM {
|
|
|
114
114
|
async write(uid, contents) {
|
|
115
115
|
return await this.send("write", ...arguments);
|
|
116
116
|
}
|
|
117
|
-
async writeFileSync(
|
|
117
|
+
async writeFileSync(x) {
|
|
118
|
+
const z = arguments["0"];
|
|
119
|
+
const filepath = z[0];
|
|
120
|
+
const contents = z[1];
|
|
118
121
|
return await this.send("writeFileSync", this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
|
|
119
122
|
}
|
|
120
123
|
async createWriteStream(filepath) {
|
|
@@ -85,7 +85,10 @@ class PM_Pure extends _1.PM {
|
|
|
85
85
|
write(uid, contents) {
|
|
86
86
|
return globalThis["write"](uid, contents);
|
|
87
87
|
}
|
|
88
|
-
writeFileSync(
|
|
88
|
+
writeFileSync(x) {
|
|
89
|
+
const z = arguments["0"];
|
|
90
|
+
const filepath = z[0];
|
|
91
|
+
const contents = z[1];
|
|
89
92
|
return globalThis["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
|
|
90
93
|
}
|
|
91
94
|
createWriteStream(filepath) {
|
|
@@ -83,7 +83,10 @@ class PM_Web extends _1.PM {
|
|
|
83
83
|
write(uid, contents) {
|
|
84
84
|
return window["write"](uid, contents);
|
|
85
85
|
}
|
|
86
|
-
writeFileSync(
|
|
86
|
+
writeFileSync(x) {
|
|
87
|
+
const z = arguments["0"];
|
|
88
|
+
const filepath = z[0];
|
|
89
|
+
const contents = z[1];
|
|
87
90
|
return window["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
|
|
88
91
|
}
|
|
89
92
|
createWriteStream(filepath) {
|
package/dist/common/src/Pure.js
CHANGED
|
@@ -14,10 +14,8 @@ class PureTesteranto extends core_js_1.default {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
async receiveTestResourceConfig(partialTestResource) {
|
|
17
|
-
console.log("[DEBUG] receiveTestResourceConfig called with:", partialTestResource);
|
|
18
17
|
const t = JSON.parse(partialTestResource);
|
|
19
18
|
const pm = new pure_js_1.PM_Pure(t);
|
|
20
|
-
// console.log("[DEBUG] Current test jobs:", this.testJobs?.length);
|
|
21
19
|
// if (!this.testJobs || this.testJobs.length === 0) {
|
|
22
20
|
// console.error(
|
|
23
21
|
// "[ERROR] No test jobs available - checking specs:",
|
|
@@ -33,9 +31,7 @@ class PureTesteranto extends core_js_1.default {
|
|
|
33
31
|
// };
|
|
34
32
|
// }
|
|
35
33
|
try {
|
|
36
|
-
console.log("[DEBUG] Executing test job with PM:", pm);
|
|
37
34
|
const result = await this.testJobs[0].receiveTestResourceConfig(pm);
|
|
38
|
-
console.log("[DEBUG] Test job completed with result:", result);
|
|
39
35
|
return result;
|
|
40
36
|
}
|
|
41
37
|
catch (e) {
|
|
@@ -53,7 +53,7 @@ const implementation = {
|
|
|
53
53
|
modifySpecs: (modifier) => (store) => {
|
|
54
54
|
console.debug("[DEBUG] Modifying specs");
|
|
55
55
|
return Object.assign(Object.assign({}, store), { specs: modifier(store.specs || []) });
|
|
56
|
-
}
|
|
56
|
+
},
|
|
57
57
|
},
|
|
58
58
|
thens: {
|
|
59
59
|
initializedProperly: () => (store) => {
|
|
@@ -126,10 +126,16 @@ server.on("error", (err) => {
|
|
|
126
126
|
process.on("uncaughtException", (err) => {
|
|
127
127
|
console.error("Uncaught exception:", err);
|
|
128
128
|
});
|
|
129
|
-
const start = (port) =>
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
});
|
|
129
|
+
const start = (port) => {
|
|
130
|
+
if (port) {
|
|
131
|
+
server.listen(port, () => {
|
|
132
|
+
console.log(`Server running on http://localhost:${port}`);
|
|
133
|
+
console.log("Serving files from:", process.cwd());
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
console.log("you need to specify a port");
|
|
138
|
+
}
|
|
139
|
+
};
|
|
133
140
|
const ReportServerOfPort = (port) => start(port);
|
|
134
141
|
exports.ReportServerOfPort = ReportServerOfPort;
|
|
135
|
-
// export default () => start(process.argv[2]);
|
|
@@ -9,9 +9,7 @@ const featuresPlugin_1 = __importDefault(require("./featuresPlugin"));
|
|
|
9
9
|
const rebuildPlugin_js_1 = __importDefault(require("./rebuildPlugin.js"));
|
|
10
10
|
exports.default = (config, entryPoints, testName) => {
|
|
11
11
|
const { inputFilesPluginFactory, register } = (0, inputFilesPlugin_js_1.default)("node", testName);
|
|
12
|
-
return Object.assign(Object.assign({}, (0, index_js_1.default)(config)), { splitting: true, outdir: `testeranto/bundles/node/${testName}/`,
|
|
13
|
-
// inject: [`./node_modules/testeranto/dist/cjs-shim.js`],
|
|
14
|
-
metafile: true, supported: {
|
|
12
|
+
return Object.assign(Object.assign({}, (0, index_js_1.default)(config)), { splitting: true, outdir: `testeranto/bundles/node/${testName}/`, inject: [`./node_modules/testeranto/dist/cjs-shim.js`], metafile: true, supported: {
|
|
15
13
|
"dynamic-import": true,
|
|
16
14
|
}, define: {
|
|
17
15
|
"process.env.FLUENTFFMPEG_COV": "0",
|
|
@@ -3,18 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BaseSuite = void 0;
|
|
4
4
|
const pmProxy_1 = require("./pmProxy");
|
|
5
5
|
class BaseSuite {
|
|
6
|
+
addArtifact(path) {
|
|
7
|
+
console.log("Suite addArtifact", path);
|
|
8
|
+
const normalizedPath = path.replace(/\\/g, "/"); // Normalize path separators
|
|
9
|
+
this.artifacts.push(normalizedPath);
|
|
10
|
+
}
|
|
6
11
|
constructor(name, index, givens = {}) {
|
|
12
|
+
this.artifacts = [];
|
|
7
13
|
const suiteName = name || "testSuite"; // Ensure name is never undefined
|
|
8
14
|
if (!suiteName) {
|
|
9
15
|
throw new Error("BaseSuite requires a non-empty name");
|
|
10
16
|
}
|
|
11
|
-
console.log("[DEBUG] BaseSuite constructor - name:", suiteName, "index:", index);
|
|
12
17
|
this.name = suiteName;
|
|
13
18
|
this.index = index;
|
|
14
19
|
this.givens = givens;
|
|
15
20
|
this.fails = 0;
|
|
16
|
-
console.log("[DEBUG] BaseSuite initialized:", this.name, this.index);
|
|
17
|
-
console.log("[DEBUG] BaseSuite givens:", Object.keys(givens).toString());
|
|
18
21
|
}
|
|
19
22
|
features() {
|
|
20
23
|
try {
|
|
@@ -24,11 +27,10 @@ class BaseSuite {
|
|
|
24
27
|
.filter((value, index, array) => {
|
|
25
28
|
return array.indexOf(value) === index;
|
|
26
29
|
});
|
|
27
|
-
console.debug("[DEBUG] Features extracted:", features.toString());
|
|
28
30
|
return features || [];
|
|
29
31
|
}
|
|
30
32
|
catch (e) {
|
|
31
|
-
console.error("[ERROR] Failed to extract features:", e);
|
|
33
|
+
console.error("[ERROR] Failed to extract features:", JSON.stringify(e));
|
|
32
34
|
return [];
|
|
33
35
|
}
|
|
34
36
|
}
|
|
@@ -56,10 +58,10 @@ class BaseSuite {
|
|
|
56
58
|
// tLog("test resources: ", JSON.stringify(testResourceConfiguration));
|
|
57
59
|
const suiteArtifactory = (fPath, value) => artifactory(`suite-${this.index}-${this.name}/${fPath}`, value);
|
|
58
60
|
// console.log("\nSuite:", this.index, this.name);
|
|
59
|
-
tLog("\nSuite:", this.index, this.name);
|
|
61
|
+
// tLog("\nSuite:", this.index, this.name);
|
|
60
62
|
const sNdx = this.index;
|
|
61
|
-
|
|
62
|
-
const subject = await this.setup(input, suiteArtifactory, testResourceConfiguration,
|
|
63
|
+
const proxiedPm = (0, pmProxy_1.beforeAllProxy)(pm, sNdx.toString(), this);
|
|
64
|
+
const subject = await this.setup(input, suiteArtifactory, testResourceConfiguration, proxiedPm);
|
|
63
65
|
for (const [gKey, g] of Object.entries(this.givens)) {
|
|
64
66
|
const giver = this.givens[gKey];
|
|
65
67
|
this.store = await giver
|
|
@@ -67,15 +69,15 @@ class BaseSuite {
|
|
|
67
69
|
.catch((e) => {
|
|
68
70
|
this.failed = true;
|
|
69
71
|
this.fails = this.fails + 1;
|
|
70
|
-
// console.error("Given error 1:", e.toString());
|
|
71
72
|
throw e;
|
|
72
73
|
});
|
|
73
74
|
}
|
|
74
75
|
try {
|
|
75
|
-
|
|
76
|
+
const afterAllPm = (0, pmProxy_1.afterAllProxy)(pm, sNdx.toString(), this);
|
|
77
|
+
this.afterAll(this.store, artifactory, afterAllPm);
|
|
76
78
|
}
|
|
77
79
|
catch (e) {
|
|
78
|
-
console.error(e);
|
|
80
|
+
console.error(JSON.stringify(e));
|
|
79
81
|
// this.fails.push(this);
|
|
80
82
|
// return this;
|
|
81
83
|
}
|