testeranto 0.146.1 → 0.146.4
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/README.md +3 -1
- package/dist/common/src/Node.js +9 -6
- package/dist/common/src/PM/PM_WithEslintAndTsc.js +75 -58
- package/dist/common/src/PM/main.js +131 -79
- package/dist/common/src/PM/node.js +1 -14
- package/dist/common/src/PM/nodeSidecar.js +0 -1
- package/dist/common/src/Pure.js +17 -1
- package/dist/common/src/Pure.test.js +172 -0
- package/dist/common/src/build.js +0 -1
- package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +22 -11
- package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +24 -0
- package/dist/common/src/esbuildConfigs/pure.js +2 -1
- package/dist/common/src/esbuildConfigs/rebuildPlugin.js +1 -4
- package/dist/common/src/lib/BaseSuite.js +89 -0
- package/dist/common/src/lib/BaseSuite.test/node.test.js +9 -0
- package/dist/common/src/lib/BaseSuite.test/pure.test.js +9 -0
- package/dist/common/src/lib/BaseSuite.test/test.js +232 -0
- package/dist/common/src/lib/BaseSuite.test/web.test.js +9 -0
- package/dist/common/src/lib/abstractBase.js +1 -90
- package/dist/common/src/lib/abstractBase.test/MockGiven.js +17 -0
- package/dist/common/src/lib/abstractBase.test/MockThen.js +13 -0
- package/dist/common/src/lib/abstractBase.test/MockWhen.js +13 -0
- package/dist/common/src/lib/abstractBase.test/implementation.js +42 -0
- package/dist/common/src/lib/abstractBase.test/index.js +17 -0
- package/dist/common/src/lib/abstractBase.test/interface.js +12 -0
- package/dist/common/src/lib/abstractBase.test/specification.js +19 -0
- package/dist/common/src/lib/abstractBase.test/types.js +2 -0
- package/dist/common/src/lib/baseBuilder.test/TestBaseBuilder.js +36 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +97 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.interface.js +17 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.node.js +11 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.pure.js +11 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +13 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.types.js +2 -0
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.web.js +11 -0
- package/dist/common/src/lib/basebuilder.js +2 -1
- package/dist/common/src/lib/classBuilder.test/TestClassBuilder.js +41 -0
- package/dist/common/src/lib/classBuilder.test/classBuilder.test.implementation.js +182 -0
- package/dist/common/src/lib/classBuilder.test/classBuilder.test.interface.js +17 -0
- package/dist/common/src/lib/classBuilder.test/classBuilder.test.js +11 -0
- package/dist/common/src/lib/classBuilder.test/classBuilder.test.specification.js +41 -0
- package/dist/common/src/lib/classBuilder.test/classBuilder.test.types.js +2 -0
- package/dist/common/src/lib/core.js +4 -13
- package/dist/common/src/lib/core.test/MockCore.js +25 -0
- package/dist/common/src/lib/core.test/core.test.implementation.js +102 -0
- package/dist/common/src/lib/core.test/core.test.interface.js +18 -0
- package/dist/common/src/lib/core.test/core.test.js +17 -0
- package/dist/common/src/lib/core.test/core.test.specification.js +33 -0
- package/dist/common/src/lib/core.test/core.test.types.js +2 -0
- package/dist/common/src/lib/pmProxy.js +9 -166
- package/dist/common/src/lib/pmProxy.test/implementation.js +76 -0
- package/dist/common/src/lib/pmProxy.test/index.js +15 -0
- package/dist/common/src/lib/pmProxy.test/interface.js +37 -0
- package/dist/common/src/lib/pmProxy.test/mockPM.js +34 -0
- package/dist/common/src/lib/pmProxy.test/mockPMBase.js +115 -0
- package/dist/common/src/lib/pmProxy.test/specification.js +39 -0
- package/dist/common/src/lib/pmProxy.test/types.js +2 -0
- package/dist/common/src/run.js +6 -6
- package/dist/common/testeranto.config.js +33 -18
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/Node.js +9 -6
- package/dist/module/src/PM/PM_WithEslintAndTsc.js +75 -58
- package/dist/module/src/PM/main.js +131 -79
- package/dist/module/src/PM/node.js +1 -14
- package/dist/module/src/PM/nodeSidecar.js +0 -1
- package/dist/module/src/Pure.js +17 -1
- package/dist/module/src/Pure.test.js +167 -0
- package/dist/module/src/build.js +0 -1
- package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +19 -11
- package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +21 -0
- package/dist/module/src/esbuildConfigs/pure.js +2 -1
- package/dist/module/src/esbuildConfigs/rebuildPlugin.js +1 -4
- package/dist/module/src/lib/BaseSuite.js +85 -0
- package/dist/module/src/lib/BaseSuite.test/node.test.js +4 -0
- package/dist/module/src/lib/BaseSuite.test/pure.test.js +4 -0
- package/dist/module/src/lib/BaseSuite.test/test.js +227 -0
- package/dist/module/src/lib/BaseSuite.test/web.test.js +4 -0
- package/dist/module/src/lib/abstractBase.js +1 -89
- package/dist/module/src/lib/abstractBase.test/MockGiven.js +13 -0
- package/dist/module/src/lib/abstractBase.test/MockThen.js +9 -0
- package/dist/module/src/lib/abstractBase.test/MockWhen.js +9 -0
- package/dist/module/src/lib/abstractBase.test/implementation.js +39 -0
- package/dist/module/src/lib/abstractBase.test/index.js +12 -0
- package/dist/module/src/lib/abstractBase.test/interface.js +9 -0
- package/dist/module/src/lib/abstractBase.test/specification.js +15 -0
- package/dist/module/src/lib/abstractBase.test/types.js +1 -0
- package/dist/module/src/lib/baseBuilder.test/TestBaseBuilder.js +32 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +94 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.interface.js +14 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.node.js +6 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.pure.js +6 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +9 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.types.js +1 -0
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.web.js +6 -0
- package/dist/module/src/lib/basebuilder.js +2 -1
- package/dist/module/src/lib/classBuilder.test/TestClassBuilder.js +37 -0
- package/dist/module/src/lib/classBuilder.test/classBuilder.test.implementation.js +179 -0
- package/dist/module/src/lib/classBuilder.test/classBuilder.test.interface.js +14 -0
- package/dist/module/src/lib/classBuilder.test/classBuilder.test.js +6 -0
- package/dist/module/src/lib/classBuilder.test/classBuilder.test.specification.js +37 -0
- package/dist/module/src/lib/classBuilder.test/classBuilder.test.types.js +1 -0
- package/dist/module/src/lib/core.js +3 -12
- package/dist/module/src/lib/core.test/MockCore.js +18 -0
- package/dist/module/src/lib/core.test/core.test.implementation.js +99 -0
- package/dist/module/src/lib/core.test/core.test.interface.js +15 -0
- package/dist/module/src/lib/core.test/core.test.js +12 -0
- package/dist/module/src/lib/core.test/core.test.specification.js +29 -0
- package/dist/module/src/lib/core.test/core.test.types.js +1 -0
- package/dist/module/src/lib/pmProxy.js +9 -166
- package/dist/module/src/lib/pmProxy.test/implementation.js +73 -0
- package/dist/module/src/lib/pmProxy.test/index.js +10 -0
- package/dist/module/src/lib/pmProxy.test/interface.js +34 -0
- package/dist/module/src/lib/pmProxy.test/mockPM.js +30 -0
- package/dist/module/src/lib/pmProxy.test/mockPMBase.js +111 -0
- package/dist/module/src/lib/pmProxy.test/specification.js +35 -0
- package/dist/module/src/lib/pmProxy.test/types.js +1 -0
- package/dist/module/src/run.js +6 -6
- package/dist/module/testeranto.config.js +33 -18
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/Project.js +16 -15
- package/dist/prebuild/TestReport.js +14 -12
- package/dist/prebuild/build.mjs +34 -34
- package/dist/prebuild/run.mjs +259 -173
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -1
- package/dist/types/src/PM/main.d.ts +5 -2
- package/dist/types/src/Pure.d.ts +2 -2
- package/dist/types/src/Pure.test.d.ts +36 -0
- package/dist/types/src/Types.d.ts +7 -6
- package/dist/types/src/Web.d.ts +1 -1
- package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +1 -1
- package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +2 -0
- package/dist/types/src/lib/BaseSuite.d.ts +39 -0
- package/dist/types/src/lib/BaseSuite.test/node.test.d.ts +3 -0
- package/dist/types/src/lib/BaseSuite.test/pure.test.d.ts +3 -0
- package/dist/types/src/lib/BaseSuite.test/test.d.ts +42 -0
- package/dist/types/src/lib/BaseSuite.test/web.test.d.ts +3 -0
- package/dist/types/src/lib/abstractBase.d.ts +1 -36
- package/dist/types/src/lib/abstractBase.test/MockGiven.d.ts +7 -0
- package/dist/types/src/lib/abstractBase.test/MockThen.d.ts +6 -0
- package/dist/types/src/lib/abstractBase.test/MockWhen.d.ts +6 -0
- package/dist/types/src/lib/abstractBase.test/implementation.d.ts +3 -0
- package/dist/types/src/lib/abstractBase.test/index.d.ts +3 -0
- package/dist/types/src/lib/abstractBase.test/interface.d.ts +3 -0
- package/dist/types/src/lib/abstractBase.test/specification.d.ts +3 -0
- package/dist/types/src/lib/abstractBase.test/types.d.ts +39 -0
- package/dist/types/src/lib/baseBuilder.test/TestBaseBuilder.d.ts +15 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.implementation.d.ts +3 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.interface.d.ts +3 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.node.d.ts +3 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +3 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.specification.d.ts +3 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +20 -0
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.web.d.ts +3 -0
- package/dist/types/src/lib/classBuilder.test/TestClassBuilder.d.ts +21 -0
- package/dist/types/src/lib/classBuilder.test/classBuilder.test.d.ts +3 -0
- package/dist/types/src/lib/classBuilder.test/classBuilder.test.implementation.d.ts +3 -0
- package/dist/types/src/lib/classBuilder.test/classBuilder.test.interface.d.ts +3 -0
- package/dist/types/src/lib/classBuilder.test/classBuilder.test.specification.d.ts +3 -0
- package/dist/types/src/lib/classBuilder.test/classBuilder.test.types.d.ts +56 -0
- package/dist/types/src/lib/core.d.ts +1 -1
- package/dist/types/src/lib/core.test/MockCore.d.ts +10 -0
- package/dist/types/src/lib/core.test/core.test.d.ts +3 -0
- package/dist/types/src/lib/core.test/core.test.implementation.d.ts +3 -0
- package/dist/types/src/lib/core.test/core.test.interface.d.ts +3 -0
- package/dist/types/src/lib/core.test/core.test.specification.d.ts +3 -0
- package/dist/types/src/lib/core.test/core.test.types.d.ts +46 -0
- package/dist/types/src/lib/index.d.ts +2 -1
- package/dist/types/src/lib/pmProxy.d.ts +11 -6
- package/dist/types/src/lib/pmProxy.test/implementation.d.ts +3 -0
- package/dist/types/src/lib/pmProxy.test/index.d.ts +7 -0
- package/dist/types/src/lib/pmProxy.test/interface.d.ts +3 -0
- package/dist/types/src/lib/pmProxy.test/mockPM.d.ts +10 -0
- package/dist/types/src/lib/pmProxy.test/mockPMBase.d.ts +39 -0
- package/dist/types/src/lib/pmProxy.test/specification.d.ts +3 -0
- package/dist/types/src/lib/pmProxy.test/types.d.ts +42 -0
- package/dist/types/src/lib/types.d.ts +2 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/docs.html +35 -33
- package/index.html +23 -30
- package/package.json +3 -2
- package/testeranto/index.html +1 -1
- package/testeranto/reports/allTests/index.html +1 -1
- package/testeranto/reports/allTests/src/Pure.test/pure/index.html +1 -1
- package/testeranto/reports/allTests/src/Pure.test/pure/logs.txt +2 -2
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/logs.txt +2 -2
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +3 -3
- package/testeranto.config.ts +1 -1
- package/tsc.log +36 -38
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## The AI-powered BDD test framework for TypeScript projects
|
|
4
4
|
|
|
5
|
-
#### 🚧 WARNING: Testeranto is still under development but is not ready for production yet. I am rapidly working to release a beta ASAP. If you are interested in joining this beta program, please
|
|
5
|
+
#### 🚧 WARNING: Testeranto is still under development but is not ready for production yet. I am rapidly working to release a beta ASAP. If you are interested in joining this beta program, please contact me. 🚧
|
|
6
6
|
|
|
7
7
|
- README: [adamwong246.github.io/testeranto/testeranto](https://adamwong246.github.io/testeranto/testeranto)
|
|
8
8
|
- demo: [youtube](https://www.youtube.com/embed/WvU5xMqGi6Q)
|
|
@@ -164,6 +164,8 @@ test0: Given.Default(
|
|
|
164
164
|
|
|
165
165
|
Alongside the BDD tests, Testeranto runs ESLint and tsc on the input files to generate a list of static analysis errors and type errors, respectively.
|
|
166
166
|
|
|
167
|
+
---
|
|
168
|
+
|
|
167
169
|
## Sidecars (COMING SOON)
|
|
168
170
|
|
|
169
171
|
Alongside your test, you can include a number of "sidecars" - other bundled JavaScript assets upon which your test depends. For example, suppose you have an app with frontend and backend components. You could run a React test in the web and include the Node HTTP server as a sidecar.
|
package/dist/common/src/Node.js
CHANGED
|
@@ -8,6 +8,7 @@ const core_js_1 = __importDefault(require("./lib/core.js"));
|
|
|
8
8
|
const index_js_1 = require("./lib/index.js");
|
|
9
9
|
const node_js_1 = require("./PM/node.js");
|
|
10
10
|
let ipcfile;
|
|
11
|
+
console.log("mark4");
|
|
11
12
|
class NodeTesteranto extends core_js_1.default {
|
|
12
13
|
constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
|
|
13
14
|
super(input, testSpecification, testImplementation, testResourceRequirement, testInterface, () => {
|
|
@@ -15,6 +16,7 @@ class NodeTesteranto extends core_js_1.default {
|
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
async receiveTestResourceConfig(partialTestResource) {
|
|
19
|
+
console.log("receiveTestResourceConfig", partialTestResource);
|
|
18
20
|
const t = JSON.parse(partialTestResource);
|
|
19
21
|
const pm = new node_js_1.PM_Node(t, ipcfile);
|
|
20
22
|
return await this.testJobs[0].receiveTestResourceConfig(pm);
|
|
@@ -26,13 +28,14 @@ class NodeTesteranto extends core_js_1.default {
|
|
|
26
28
|
}
|
|
27
29
|
exports.NodeTesteranto = NodeTesteranto;
|
|
28
30
|
const testeranto = async (input, testSpecification, testImplementation, testInterface, testResourceRequirement = index_js_1.defaultTestResourceRequirement) => {
|
|
29
|
-
const t = new NodeTesteranto(input, testSpecification, testImplementation, testResourceRequirement, testInterface);
|
|
30
|
-
process.on("unhandledRejection", (reason, promise) => {
|
|
31
|
-
console.error("Unhandled Rejection at:", promise, "reason:", reason);
|
|
32
|
-
// Optionally, terminate the process or perform cleanup
|
|
33
|
-
// t.registerUncaughtPromise(reason, promise);
|
|
34
|
-
});
|
|
35
31
|
try {
|
|
32
|
+
const t = new NodeTesteranto(input, testSpecification, testImplementation, testResourceRequirement, testInterface);
|
|
33
|
+
console.log("args", process.argv);
|
|
34
|
+
process.on("unhandledRejection", (reason, promise) => {
|
|
35
|
+
console.error("Unhandled Rejection at:", promise, "reason:", reason);
|
|
36
|
+
// Optionally, terminate the process or perform cleanup
|
|
37
|
+
// t.registerUncaughtPromise(reason, promise);
|
|
38
|
+
});
|
|
36
39
|
ipcfile = process.argv[3];
|
|
37
40
|
const f = await t.receiveTestResourceConfig(process.argv[2]);
|
|
38
41
|
console.error("goodbye node with failures", f.fails);
|
|
@@ -24,7 +24,16 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
|
|
|
24
24
|
this.summary = {};
|
|
25
25
|
this.tscCheck = async ({ entrypoint, addableFiles, platform, }) => {
|
|
26
26
|
console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`tsc < ${entrypoint}`)));
|
|
27
|
-
|
|
27
|
+
try {
|
|
28
|
+
this.typeCheckIsRunning(entrypoint);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
console.error("error in tscCheck");
|
|
32
|
+
console.error(e);
|
|
33
|
+
console.error(entrypoint);
|
|
34
|
+
console.error(JSON.stringify(this.summary, null, 2));
|
|
35
|
+
process.exit(-1);
|
|
36
|
+
}
|
|
28
37
|
const program = tsc_prog_1.default.createProgramFromConfig({
|
|
29
38
|
basePath: process.cwd(), // always required, used for relative paths
|
|
30
39
|
configFilePath: "tsconfig.json", // config to inherit from (optional)
|
|
@@ -56,7 +65,16 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
|
|
|
56
65
|
};
|
|
57
66
|
this.eslintCheck = async (entrypoint, platform, addableFiles) => {
|
|
58
67
|
console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`eslint < ${entrypoint}`)));
|
|
59
|
-
|
|
68
|
+
try {
|
|
69
|
+
this.lintIsRunning(entrypoint);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
console.error("error in eslintCheck");
|
|
73
|
+
console.error(e);
|
|
74
|
+
console.error(entrypoint);
|
|
75
|
+
console.error(JSON.stringify(this.summary, null, 2));
|
|
76
|
+
process.exit(-1);
|
|
77
|
+
}
|
|
60
78
|
const results = (await eslint.lintFiles(addableFiles))
|
|
61
79
|
.filter((r) => r.messages.length)
|
|
62
80
|
.filter((r) => {
|
|
@@ -74,7 +92,7 @@ class PM_WithEslintAndTsc extends base_js_1.PM_Base {
|
|
|
74
92
|
const promptPath = (0, utils_1.promptPather)(entryPoint, platform, this.name);
|
|
75
93
|
const testPaths = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `tests.json`);
|
|
76
94
|
const featuresPath = path_1.default.join("testeranto", "reports", this.name, platform, entryPoint.split(".").slice(0, -1).join("."), `featurePrompt.txt`);
|
|
77
|
-
const logPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `
|
|
95
|
+
const logPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `logs.txt`);
|
|
78
96
|
const lintPath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `lint_errors.json`);
|
|
79
97
|
const typePath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `type_errors.txt`);
|
|
80
98
|
const messagePath = path_1.default.join("testeranto", "reports", this.name, entryPoint.split(".").slice(0, -1).join("."), platform, `message`);
|
|
@@ -98,92 +116,91 @@ ${addableFiles
|
|
|
98
116
|
this.checkForShutdown();
|
|
99
117
|
};
|
|
100
118
|
this.typeCheckIsRunning = (src) => {
|
|
119
|
+
if (!this.summary[src]) {
|
|
120
|
+
throw `this.summary[${src}] is undefined`;
|
|
121
|
+
}
|
|
101
122
|
this.summary[src].typeErrors = "?";
|
|
102
123
|
};
|
|
103
124
|
this.typeCheckIsNowDone = (src, failures) => {
|
|
125
|
+
if (!this.summary[src]) {
|
|
126
|
+
throw `this.summary[${src}] is undefined`;
|
|
127
|
+
}
|
|
128
|
+
if (failures === 0) {
|
|
129
|
+
console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`tsc > ${src}`)));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`tsc > ${src} failed ${failures} times`)));
|
|
133
|
+
}
|
|
104
134
|
this.summary[src].typeErrors = failures;
|
|
105
135
|
this.writeBigBoard();
|
|
106
136
|
this.checkForShutdown();
|
|
107
137
|
};
|
|
108
138
|
this.lintIsRunning = (src) => {
|
|
139
|
+
if (!this.summary[src]) {
|
|
140
|
+
throw `this.summary[${src}] is undefined`;
|
|
141
|
+
}
|
|
109
142
|
this.summary[src].staticErrors = "?";
|
|
110
143
|
this.writeBigBoard();
|
|
111
144
|
};
|
|
112
145
|
this.lintIsNowDone = (src, failures) => {
|
|
146
|
+
if (!this.summary[src]) {
|
|
147
|
+
throw `this.summary[${src}] is undefined`;
|
|
148
|
+
}
|
|
149
|
+
if (failures === 0) {
|
|
150
|
+
console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`eslint > ${src}`)));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`eslint > ${src} failed ${failures} times`)));
|
|
154
|
+
}
|
|
113
155
|
this.summary[src].staticErrors = failures;
|
|
114
156
|
this.writeBigBoard();
|
|
115
157
|
this.checkForShutdown();
|
|
116
158
|
};
|
|
117
159
|
this.bddTestIsRunning = (src) => {
|
|
118
|
-
this.summary[src]
|
|
160
|
+
if (!this.summary[src]) {
|
|
161
|
+
throw `this.summary[${src}] is undefined`;
|
|
162
|
+
}
|
|
163
|
+
this.summary[src].runTimeErrors = "?";
|
|
119
164
|
this.writeBigBoard();
|
|
120
165
|
};
|
|
121
166
|
this.bddTestIsNowDone = (src, failures) => {
|
|
122
|
-
this.summary[src]
|
|
167
|
+
if (!this.summary[src]) {
|
|
168
|
+
throw `this.summary[${src}] is undefined`;
|
|
169
|
+
}
|
|
170
|
+
this.summary[src].runTimeErrors = failures;
|
|
123
171
|
this.writeBigBoard();
|
|
124
172
|
this.checkForShutdown();
|
|
125
173
|
};
|
|
126
174
|
this.writeBigBoard = () => {
|
|
127
175
|
fs_1.default.writeFileSync(`./testeranto/reports/${this.name}/summary.json`, JSON.stringify(this.summary, null, 2));
|
|
128
176
|
};
|
|
129
|
-
this.checkForShutdown = () => {
|
|
130
|
-
console.log(ansi_colors_1.default.inverse(`checkForShutdown`));
|
|
131
|
-
this.writeBigBoard();
|
|
132
|
-
if (this.mode === "dev")
|
|
133
|
-
return;
|
|
134
|
-
let inflight = false;
|
|
135
|
-
Object.keys(this.summary).forEach((k) => {
|
|
136
|
-
if (this.summary[k].prompt === "?") {
|
|
137
|
-
console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 prompt ${k}`)));
|
|
138
|
-
inflight = true;
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
Object.keys(this.summary).forEach((k) => {
|
|
142
|
-
if (this.summary[k].runTimeError === "?") {
|
|
143
|
-
console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 runTimeError ${k}`)));
|
|
144
|
-
inflight = true;
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
Object.keys(this.summary).forEach((k) => {
|
|
148
|
-
if (this.summary[k].staticErrors === "?") {
|
|
149
|
-
console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 staticErrors ${k}`)));
|
|
150
|
-
inflight = true;
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
Object.keys(this.summary).forEach((k) => {
|
|
154
|
-
if (this.summary[k].typeErrors === "?") {
|
|
155
|
-
console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 typeErrors ${k}`)));
|
|
156
|
-
inflight = true;
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
this.writeBigBoard();
|
|
160
|
-
if (!inflight) {
|
|
161
|
-
this.browser.disconnect().then(() => {
|
|
162
|
-
console.log(ansi_colors_1.default.inverse(`${this.name} has been tested. Goodbye.`));
|
|
163
|
-
process.exit();
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
177
|
this.name = name;
|
|
168
178
|
this.mode = mode;
|
|
179
|
+
this.summary = {};
|
|
180
|
+
// Initialize all test entries first
|
|
169
181
|
this.configs.tests.forEach(([t, rt, tr, sidecars]) => {
|
|
170
|
-
this.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
staticErrors: "?",
|
|
174
|
-
prompt: "?",
|
|
175
|
-
failingFeatures: {},
|
|
176
|
-
};
|
|
177
|
-
sidecars.forEach(([t]) => {
|
|
178
|
-
this.summary[t] = {
|
|
179
|
-
// runTimeError: "?",
|
|
180
|
-
typeErrors: "?",
|
|
181
|
-
staticErrors: "?",
|
|
182
|
-
// prompt: "?",
|
|
183
|
-
// failingFeatures: {},
|
|
184
|
-
};
|
|
182
|
+
this.ensureSummaryEntry(t);
|
|
183
|
+
sidecars.forEach(([sidecarName]) => {
|
|
184
|
+
this.ensureSummaryEntry(sidecarName, true);
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
|
+
ensureSummaryEntry(src, isSidecar = false) {
|
|
189
|
+
if (!this.summary[src]) {
|
|
190
|
+
this.summary[src] = {
|
|
191
|
+
typeErrors: undefined,
|
|
192
|
+
staticErrors: undefined,
|
|
193
|
+
runTimeErrors: undefined,
|
|
194
|
+
prompt: undefined,
|
|
195
|
+
failingFeatures: {},
|
|
196
|
+
};
|
|
197
|
+
if (isSidecar) {
|
|
198
|
+
// Sidecars don't need all fields
|
|
199
|
+
// delete this.summary[src].runTimeError;
|
|
200
|
+
// delete this.summary[src].prompt;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return this.summary[src];
|
|
204
|
+
}
|
|
188
205
|
}
|
|
189
206
|
exports.PM_WithEslintAndTsc = PM_WithEslintAndTsc;
|