testeranto 0.146.2 → 0.146.5
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/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 -20
- 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 -20
- 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 +8 -18
- package/src/lib/basebuilder.ts +0 -24
- package/testeranto/Project.css +1 -26
- package/testeranto/Project.js +3337 -385
- package/testeranto/TestReport.css +1 -26
- package/testeranto/TestReport.js +43 -16
- package/testeranto/bundles/node/allTests/metafile.json +1 -1
- package/testeranto/bundles/pure/allTests/metafile.json +1 -1
- package/testeranto/bundles/web/allTests/metafile.json +1 -1
- 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/lint_errors.json +137 -1539
- 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/node.test/node/lint_errors.json +58 -620
- 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/lint_errors.json +58 -620
- 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/BaseSuite.test/web.test/web/lint_errors.json +58 -620
- 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.node/node/lint_errors.json +104 -966
- 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.pure/pure/lint_errors.json +104 -966
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.json +104 -966
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.json +63 -791
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.json +39 -416
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/index.html +1 -1
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.json +156 -1724
- 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
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.implementation = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
5
|
+
const stream_1 = require("stream");
|
|
6
|
+
const TestClassBuilder_1 = require("./TestClassBuilder");
|
|
7
|
+
const classBuilder_test_specification_1 = require("./classBuilder.test.specification");
|
|
8
|
+
exports.implementation = {
|
|
9
|
+
suites: {
|
|
10
|
+
Default: "ClassBuilder test suite",
|
|
11
|
+
},
|
|
12
|
+
givens: {
|
|
13
|
+
Default: () => {
|
|
14
|
+
return new TestClassBuilder_1.TestClassBuilder(exports.implementation, // Use the current implementation
|
|
15
|
+
classBuilder_test_specification_1.specification, // Use the current specification
|
|
16
|
+
{}, // Default input
|
|
17
|
+
class {
|
|
18
|
+
}, // suiteKlasser
|
|
19
|
+
class {
|
|
20
|
+
}, // givenKlasser
|
|
21
|
+
class {
|
|
22
|
+
}, // whenKlasser
|
|
23
|
+
class {
|
|
24
|
+
}, // thenKlasser
|
|
25
|
+
class {
|
|
26
|
+
}, // checkKlasser
|
|
27
|
+
{ ports: [] } // Default resource requirements
|
|
28
|
+
);
|
|
29
|
+
},
|
|
30
|
+
WithCustomInput: (input) => {
|
|
31
|
+
return new TestClassBuilder_1.TestClassBuilder(exports.implementation, classBuilder_test_specification_1.specification, input, class {
|
|
32
|
+
}, class {
|
|
33
|
+
}, class {
|
|
34
|
+
}, class {
|
|
35
|
+
}, class {
|
|
36
|
+
}, { ports: [] });
|
|
37
|
+
},
|
|
38
|
+
WithResourceRequirements: (requirements) => {
|
|
39
|
+
return new TestClassBuilder_1.TestClassBuilder(exports.implementation, classBuilder_test_specification_1.specification, {}, class {
|
|
40
|
+
}, class {
|
|
41
|
+
}, class {
|
|
42
|
+
}, class {
|
|
43
|
+
}, class {
|
|
44
|
+
}, requirements);
|
|
45
|
+
},
|
|
46
|
+
WithCustomImplementation: (impl) => {
|
|
47
|
+
return new TestClassBuilder_1.TestClassBuilder(impl, classBuilder_test_specification_1.specification, {}, class {
|
|
48
|
+
}, class {
|
|
49
|
+
}, class {
|
|
50
|
+
}, class {
|
|
51
|
+
}, class {
|
|
52
|
+
}, { ports: [] });
|
|
53
|
+
},
|
|
54
|
+
WithCustomSpecification: (spec) => {
|
|
55
|
+
return new TestClassBuilder_1.TestClassBuilder(exports.implementation, spec, {}, class {
|
|
56
|
+
}, class {
|
|
57
|
+
}, class {
|
|
58
|
+
}, class {
|
|
59
|
+
}, class {
|
|
60
|
+
}, { ports: [] });
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
whens: {
|
|
64
|
+
addArtifact: (artifact) => (builder) => {
|
|
65
|
+
builder.artifacts.push(artifact);
|
|
66
|
+
return builder;
|
|
67
|
+
},
|
|
68
|
+
setTestJobs: (jobs) => (builder) => {
|
|
69
|
+
builder.testJobs = jobs;
|
|
70
|
+
return builder;
|
|
71
|
+
},
|
|
72
|
+
modifySpecs: (modifier) => (builder) => {
|
|
73
|
+
builder.specs = modifier(builder.specs || []);
|
|
74
|
+
return builder;
|
|
75
|
+
},
|
|
76
|
+
modifyJobs: (modifier) => (builder) => {
|
|
77
|
+
builder.testJobs = modifier(builder.testJobs || []);
|
|
78
|
+
return builder;
|
|
79
|
+
},
|
|
80
|
+
triggerError: (message) => (builder) => {
|
|
81
|
+
throw new Error(message);
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
thens: {
|
|
85
|
+
initializedProperly: () => (builder) => {
|
|
86
|
+
if (!(builder instanceof TestClassBuilder_1.TestClassBuilder)) {
|
|
87
|
+
throw new Error("Builder was not properly initialized");
|
|
88
|
+
}
|
|
89
|
+
return builder;
|
|
90
|
+
},
|
|
91
|
+
specsGenerated: () => (builder) => {
|
|
92
|
+
if (!Array.isArray(builder.specs)) {
|
|
93
|
+
throw new Error("Specs were not generated");
|
|
94
|
+
}
|
|
95
|
+
return builder;
|
|
96
|
+
},
|
|
97
|
+
jobsCreated: () => (builder) => {
|
|
98
|
+
if (!Array.isArray(builder.testJobs)) {
|
|
99
|
+
throw new Error("Test jobs were not created");
|
|
100
|
+
}
|
|
101
|
+
return builder;
|
|
102
|
+
},
|
|
103
|
+
artifactsTracked: () => (builder) => {
|
|
104
|
+
if (!Array.isArray(builder.artifacts)) {
|
|
105
|
+
throw new Error("Artifacts array not initialized");
|
|
106
|
+
}
|
|
107
|
+
return builder;
|
|
108
|
+
},
|
|
109
|
+
resourceRequirementsSet: () => (builder) => {
|
|
110
|
+
if (!builder.testResourceRequirement) {
|
|
111
|
+
throw new Error("Resource requirements not set");
|
|
112
|
+
}
|
|
113
|
+
return builder;
|
|
114
|
+
},
|
|
115
|
+
suitesOverridesConfigured: () => (builder) => {
|
|
116
|
+
if (!builder.suitesOverrides) {
|
|
117
|
+
throw new Error("Suites overrides not configured");
|
|
118
|
+
}
|
|
119
|
+
return builder;
|
|
120
|
+
},
|
|
121
|
+
givensOverridesConfigured: () => (builder) => {
|
|
122
|
+
if (!builder.givenOverides) {
|
|
123
|
+
throw new Error("Givens overrides not configured");
|
|
124
|
+
}
|
|
125
|
+
return builder;
|
|
126
|
+
},
|
|
127
|
+
whensOverridesConfigured: () => (builder) => {
|
|
128
|
+
if (!builder.whenOverides) {
|
|
129
|
+
throw new Error("Whens overrides not configured");
|
|
130
|
+
}
|
|
131
|
+
return builder;
|
|
132
|
+
},
|
|
133
|
+
thensOverridesConfigured: () => (builder) => {
|
|
134
|
+
if (!builder.thenOverides) {
|
|
135
|
+
throw new Error("Thens overrides not configured");
|
|
136
|
+
}
|
|
137
|
+
return builder;
|
|
138
|
+
},
|
|
139
|
+
checksOverridesConfigured: () => (builder) => {
|
|
140
|
+
if (!builder.checkOverides) {
|
|
141
|
+
throw new Error("Checks overrides not configured");
|
|
142
|
+
}
|
|
143
|
+
return builder;
|
|
144
|
+
},
|
|
145
|
+
specsModified: (expectedCount) => (builder) => {
|
|
146
|
+
if (builder.specs.length <= expectedCount) {
|
|
147
|
+
throw new Error(`Expected at least ${expectedCount} modified specs`);
|
|
148
|
+
}
|
|
149
|
+
return builder;
|
|
150
|
+
},
|
|
151
|
+
jobsModified: (expectedCount) => (builder) => {
|
|
152
|
+
if (builder.testJobs.length <= expectedCount) {
|
|
153
|
+
throw new Error(`Expected at least ${expectedCount} modified jobs`);
|
|
154
|
+
}
|
|
155
|
+
return builder;
|
|
156
|
+
},
|
|
157
|
+
errorThrown: (expectedMessage) => (builder) => {
|
|
158
|
+
// This is handled by the test runner
|
|
159
|
+
return builder;
|
|
160
|
+
},
|
|
161
|
+
testRunSuccessful: () => async (builder) => {
|
|
162
|
+
try {
|
|
163
|
+
await builder.testRun({
|
|
164
|
+
testResourceConfiguration: {
|
|
165
|
+
name: "test",
|
|
166
|
+
fs: "/tmp",
|
|
167
|
+
ports: [],
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
return builder;
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
throw new Error(`Test run failed: ${e.message}`);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
checks: {
|
|
178
|
+
Default: () => new stream_1.PassThrough(),
|
|
179
|
+
ImplementationCheck: (validator) => validator(exports.implementation),
|
|
180
|
+
SpecificationCheck: (validator) => validator(classBuilder_test_specification_1.specification),
|
|
181
|
+
},
|
|
182
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testInterface = void 0;
|
|
4
|
+
exports.testInterface = {
|
|
5
|
+
beforeEach: async (subject, initializer) => {
|
|
6
|
+
return initializer();
|
|
7
|
+
},
|
|
8
|
+
andWhen: async (store, whenCB, testResource, utils) => {
|
|
9
|
+
return whenCB(store, utils);
|
|
10
|
+
},
|
|
11
|
+
butThen: async (store, thenCB, testResource, pm) => {
|
|
12
|
+
return thenCB(store, pm);
|
|
13
|
+
},
|
|
14
|
+
afterEach: (store) => store,
|
|
15
|
+
afterAll: () => { },
|
|
16
|
+
assertThis: (x) => { },
|
|
17
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Node_1 = __importDefault(require("../../Node"));
|
|
7
|
+
const classBuilder_1 = require("../classBuilder");
|
|
8
|
+
const classBuilder_test_specification_1 = require("./classBuilder.test.specification");
|
|
9
|
+
const classBuilder_test_implementation_1 = require("./classBuilder.test.implementation");
|
|
10
|
+
const classBuilder_test_interface_1 = require("./classBuilder.test.interface");
|
|
11
|
+
exports.default = (0, Node_1.default)(classBuilder_1.ClassBuilder.prototype, classBuilder_test_specification_1.specification, classBuilder_test_implementation_1.implementation, classBuilder_test_interface_1.testInterface);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.specification = void 0;
|
|
4
|
+
const specification = (Suite, Given, When, Then, Check) => {
|
|
5
|
+
return [
|
|
6
|
+
Suite.Default("Basic ClassBuilder Functionality", {
|
|
7
|
+
// Basic initialization tests
|
|
8
|
+
initialization: Given.Default(["ClassBuilder should initialize with default values"], [], [Then.initializedProperly()]),
|
|
9
|
+
customInput: Given.WithCustomInput({ custom: "input" }, [], [Then.initializedProperly()]),
|
|
10
|
+
resourceRequirements: Given.WithResourceRequirements({ ports: [3000, 3001] }, [], [Then.resourceRequirementsSet()]),
|
|
11
|
+
// Core functionality tests
|
|
12
|
+
specGeneration: Given.Default(["Should generate specs from test specification"], [], [Then.specsGenerated()]),
|
|
13
|
+
jobCreation: Given.Default(["Should create test jobs from specs"], [], [Then.jobsCreated()]),
|
|
14
|
+
artifactTracking: Given.Default(["Should track artifacts"], [When.addArtifact(Promise.resolve("test"))], [Then.artifactsTracked()]),
|
|
15
|
+
// Configuration tests
|
|
16
|
+
overridesConfiguration: Given.Default(["Should properly configure all overrides"], [], [
|
|
17
|
+
Then.suitesOverridesConfigured(),
|
|
18
|
+
Then.givensOverridesConfigured(),
|
|
19
|
+
Then.whensOverridesConfigured(),
|
|
20
|
+
Then.thensOverridesConfigured(),
|
|
21
|
+
Then.checksOverridesConfigured(),
|
|
22
|
+
]),
|
|
23
|
+
}, []),
|
|
24
|
+
Suite.ExtendedSuite("Advanced ClassBuilder Functionality", {
|
|
25
|
+
// Custom implementations
|
|
26
|
+
customImplementation: Given.WithCustomImplementation(implementation, [], [Then.specsGenerated(), Then.jobsCreated()]),
|
|
27
|
+
customSpecification: Given.WithCustomSpecification(exports.specification, [], [Then.specsGenerated(), Then.jobsCreated()]),
|
|
28
|
+
// Dynamic modification tests
|
|
29
|
+
modifySpecs: Given.Default(["Should allow modifying specs"], [When.modifySpecs((specs) => [...specs, "extra"])], [Then.specsModified(1)]),
|
|
30
|
+
modifyJobs: Given.Default(["Should allow modifying jobs"], [When.modifyJobs((jobs) => [...jobs, {}])], [Then.jobsModified(1)]),
|
|
31
|
+
// Error handling
|
|
32
|
+
errorHandling: Given.Default(["Should properly handle errors"], [When.triggerError("test error")], [Then.errorThrown("test error")]),
|
|
33
|
+
// Full test run
|
|
34
|
+
testRun: Given.Default(["Should complete a full test run successfully"], [], [Then.testRunSuccessful()]),
|
|
35
|
+
}, [
|
|
36
|
+
Check.ImplementationCheck((impl) => impl !== null),
|
|
37
|
+
Check.SpecificationCheck((spec) => spec !== null),
|
|
38
|
+
]),
|
|
39
|
+
];
|
|
40
|
+
};
|
|
41
|
+
exports.specification = specification;
|
|
@@ -5,10 +5,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
const index_js_1 = require("./index.js");
|
|
6
6
|
const abstractBase_js_1 = require("./abstractBase.js");
|
|
7
7
|
const classBuilder_js_1 = require("./classBuilder.js");
|
|
8
|
-
|
|
8
|
+
const BaseSuite_js_1 = require("./BaseSuite.js");
|
|
9
|
+
class TesterantoCore extends classBuilder_js_1.ClassBuilder {
|
|
9
10
|
constructor(input, testSpecification, testImplementation, testResourceRequirement = index_js_1.defaultTestResourceRequirement, testInterface, uberCatcher) {
|
|
10
11
|
const fullTestInterface = (0, index_js_1.DefaultTestInterface)(testInterface);
|
|
11
|
-
super(testImplementation, testSpecification, input, class extends
|
|
12
|
+
super(testImplementation, testSpecification, input, class extends BaseSuite_js_1.BaseSuite {
|
|
12
13
|
afterAll(store, artifactory, pm) {
|
|
13
14
|
return fullTestInterface.afterAll(store, pm);
|
|
14
15
|
}
|
|
@@ -35,16 +36,6 @@ class Testeranto extends classBuilder_js_1.ClassBuilder {
|
|
|
35
36
|
}, class When extends abstractBase_js_1.BaseWhen {
|
|
36
37
|
async andWhen(store, whenCB, testResource, pm) {
|
|
37
38
|
return await fullTestInterface.andWhen(store, whenCB, testResource, pm);
|
|
38
|
-
// try {
|
|
39
|
-
// return await fullTestInterface.andWhen(
|
|
40
|
-
// store,
|
|
41
|
-
// whenCB,
|
|
42
|
-
// testResource,
|
|
43
|
-
// pm
|
|
44
|
-
// );
|
|
45
|
-
// } catch (e) {
|
|
46
|
-
// console.log("mark22", e);
|
|
47
|
-
// }
|
|
48
39
|
}
|
|
49
40
|
}, class Then extends abstractBase_js_1.BaseThen {
|
|
50
41
|
async butThen(store, thenCB, testResource, pm) {
|
|
@@ -64,4 +55,4 @@ class Testeranto extends classBuilder_js_1.ClassBuilder {
|
|
|
64
55
|
}, testResourceRequirement);
|
|
65
56
|
}
|
|
66
57
|
}
|
|
67
|
-
exports.default =
|
|
58
|
+
exports.default = TesterantoCore;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MockCore = void 0;
|
|
7
|
+
const core_1 = __importDefault(require("../core"));
|
|
8
|
+
/**
|
|
9
|
+
* Concrete implementation of Testeranto for testing purposes
|
|
10
|
+
*/
|
|
11
|
+
class MockCore extends core_1.default {
|
|
12
|
+
constructor(input, testSpecification, testImplementation, testResourceRequirement = { ports: [] }, testInterface = {}, uberCatcher = (cb) => cb()) {
|
|
13
|
+
super(input, testSpecification, testImplementation, testResourceRequirement, testInterface, uberCatcher);
|
|
14
|
+
}
|
|
15
|
+
async receiveTestResourceConfig(partialTestResource) {
|
|
16
|
+
return {
|
|
17
|
+
failed: false,
|
|
18
|
+
fails: 0,
|
|
19
|
+
artifacts: [],
|
|
20
|
+
logPromise: Promise.resolve(),
|
|
21
|
+
features: [],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.MockCore = MockCore;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.implementation = void 0;
|
|
4
|
+
const MockCore_1 = require("./MockCore");
|
|
5
|
+
const stream_1 = require("stream");
|
|
6
|
+
exports.implementation = {
|
|
7
|
+
suites: {
|
|
8
|
+
Default: "Testeranto test suite",
|
|
9
|
+
ExtendedSuite: "Extended Testeranto test suite",
|
|
10
|
+
},
|
|
11
|
+
givens: {
|
|
12
|
+
Default: () => {
|
|
13
|
+
return new MockCore_1.MockCore({}, // input
|
|
14
|
+
specification, // testSpecification
|
|
15
|
+
exports.implementation, // testImplementation
|
|
16
|
+
{ ports: [] }, // testResourceRequirement
|
|
17
|
+
testInterface, // testInterface
|
|
18
|
+
(cb) => cb() // uberCatcher
|
|
19
|
+
);
|
|
20
|
+
},
|
|
21
|
+
WithCustomInput: (input) => {
|
|
22
|
+
return new MockCore_1.MockCore(input, specification, exports.implementation, { ports: [] }, testInterface, (cb) => cb());
|
|
23
|
+
},
|
|
24
|
+
WithResourceRequirements: (requirements) => {
|
|
25
|
+
return new MockCore_1.MockCore({}, specification, exports.implementation, requirements, testInterface, (cb) => cb());
|
|
26
|
+
},
|
|
27
|
+
WithCustomInterface: (customInterface) => {
|
|
28
|
+
return new MockCore_1.MockCore({}, specification, exports.implementation, { ports: [] }, Object.assign(Object.assign({}, testInterface), customInterface), (cb) => cb());
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
whens: {
|
|
32
|
+
addArtifact: (artifact) => (builder) => {
|
|
33
|
+
builder.artifacts.push(artifact);
|
|
34
|
+
return builder;
|
|
35
|
+
},
|
|
36
|
+
setTestJobs: (jobs) => (builder) => {
|
|
37
|
+
builder.testJobs = jobs;
|
|
38
|
+
return builder;
|
|
39
|
+
},
|
|
40
|
+
modifySpecs: (modifier) => (builder) => {
|
|
41
|
+
builder.specs = modifier(builder.specs || []);
|
|
42
|
+
return builder;
|
|
43
|
+
},
|
|
44
|
+
triggerError: (message) => (builder) => {
|
|
45
|
+
throw new Error(message);
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
thens: {
|
|
49
|
+
initializedProperly: () => (builder) => {
|
|
50
|
+
if (!(builder instanceof MockCore_1.MockCore)) {
|
|
51
|
+
throw new Error("Builder was not properly initialized");
|
|
52
|
+
}
|
|
53
|
+
return builder;
|
|
54
|
+
},
|
|
55
|
+
specsGenerated: () => (builder) => {
|
|
56
|
+
if (!Array.isArray(builder.specs)) {
|
|
57
|
+
throw new Error("Specs were not generated");
|
|
58
|
+
}
|
|
59
|
+
return builder;
|
|
60
|
+
},
|
|
61
|
+
jobsCreated: () => (builder) => {
|
|
62
|
+
if (!Array.isArray(builder.testJobs)) {
|
|
63
|
+
throw new Error("Test jobs were not created");
|
|
64
|
+
}
|
|
65
|
+
return builder;
|
|
66
|
+
},
|
|
67
|
+
artifactsTracked: () => (builder) => {
|
|
68
|
+
if (!Array.isArray(builder.artifacts)) {
|
|
69
|
+
throw new Error("Artifacts array not initialized");
|
|
70
|
+
}
|
|
71
|
+
return builder;
|
|
72
|
+
},
|
|
73
|
+
resourceRequirementsSet: () => (builder) => {
|
|
74
|
+
if (!builder.testResourceRequirement) {
|
|
75
|
+
throw new Error("Resource requirements not set");
|
|
76
|
+
}
|
|
77
|
+
return builder;
|
|
78
|
+
},
|
|
79
|
+
interfaceConfigured: () => (builder) => {
|
|
80
|
+
if (!builder.testInterface) {
|
|
81
|
+
throw new Error("Test interface not configured");
|
|
82
|
+
}
|
|
83
|
+
return builder;
|
|
84
|
+
},
|
|
85
|
+
errorThrown: (expectedMessage) => (builder) => {
|
|
86
|
+
// Handled by test runner
|
|
87
|
+
return builder;
|
|
88
|
+
},
|
|
89
|
+
testRunSuccessful: () => async (builder) => {
|
|
90
|
+
try {
|
|
91
|
+
await builder.receiveTestResourceConfig("");
|
|
92
|
+
return builder;
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
throw new Error(`Test run failed: ${e.message}`);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
checks: {
|
|
100
|
+
Default: () => new stream_1.PassThrough(),
|
|
101
|
+
},
|
|
102
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testInterface = void 0;
|
|
4
|
+
exports.testInterface = {
|
|
5
|
+
beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
|
|
6
|
+
return initializer();
|
|
7
|
+
},
|
|
8
|
+
andWhen: async (store, whenCB, testResource, pm) => {
|
|
9
|
+
return whenCB(store, pm);
|
|
10
|
+
},
|
|
11
|
+
butThen: async (store, thenCB, testResource, pm) => {
|
|
12
|
+
return thenCB(store, pm);
|
|
13
|
+
},
|
|
14
|
+
afterEach: (store) => store,
|
|
15
|
+
afterAll: (store, pm) => { },
|
|
16
|
+
assertThis: (result) => !!result,
|
|
17
|
+
beforeAll: async (input, testResource, pm) => input
|
|
18
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Pure_1 = __importDefault(require("../../Pure"));
|
|
7
|
+
const core_test_specification_1 = require("./core.test.specification");
|
|
8
|
+
const core_test_implementation_1 = require("./core.test.implementation");
|
|
9
|
+
const core_test_interface_1 = require("./core.test.interface");
|
|
10
|
+
const MockCore_1 = require("./MockCore");
|
|
11
|
+
exports.default = (0, Pure_1.default)(MockCore_1.MockCore.prototype, // test subject
|
|
12
|
+
core_test_specification_1.specification, // test scenarios
|
|
13
|
+
core_test_implementation_1.implementation, // test operations
|
|
14
|
+
core_test_interface_1.testInterface, // test lifecycle hooks
|
|
15
|
+
{ ports: [] }, // resource requirements
|
|
16
|
+
(cb) => cb() // error handler
|
|
17
|
+
);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.specification = void 0;
|
|
4
|
+
const specification = (Suite, Given, When, Then, Check) => {
|
|
5
|
+
return [
|
|
6
|
+
Suite.Default("Testeranto Core Functionality", {
|
|
7
|
+
// Initialization tests
|
|
8
|
+
defaultInitialization: Given.Default(["Should initialize with default values"], [], [Then.initializedProperly()]),
|
|
9
|
+
customInputInitialization: Given.WithCustomInput({ test: "input" }, [], [Then.initializedProperly()]),
|
|
10
|
+
// Configuration tests
|
|
11
|
+
resourceConfig: Given.WithResourceRequirements({ ports: [3000, 3001] }, [], [Then.resourceRequirementsSet()]),
|
|
12
|
+
interfaceConfig: Given.WithCustomInterface({
|
|
13
|
+
assertThis: (x) => !!x,
|
|
14
|
+
beforeEach: async (s, i) => i()
|
|
15
|
+
}, [], [Then.interfaceConfigured()]),
|
|
16
|
+
// Core operations
|
|
17
|
+
specGeneration: Given.Default(["Should generate test specs"], [], [Then.specsGenerated()]),
|
|
18
|
+
jobCreation: Given.Default(["Should create test jobs"], [], [Then.jobsCreated()]),
|
|
19
|
+
artifactHandling: Given.Default(["Should track artifacts"], [When.addArtifact(Promise.resolve("test"))], [Then.artifactsTracked()])
|
|
20
|
+
}, []),
|
|
21
|
+
Suite.ExtendedSuite("Testeranto Advanced Features", {
|
|
22
|
+
// Error handling
|
|
23
|
+
errorPropagation: Given.Default(["Should propagate errors properly"], [When.triggerError("test error")], [Then.errorThrown("test error")]),
|
|
24
|
+
// Dynamic behavior
|
|
25
|
+
specModification: Given.Default(["Should allow spec modification"], [When.modifySpecs((specs) => [...specs, { name: "extra" }])], [Then.specsModified(1)]),
|
|
26
|
+
// Full lifecycle
|
|
27
|
+
testExecution: Given.Default(["Should execute full test lifecycle"], [], [Then.testRunSuccessful()]),
|
|
28
|
+
// Custom implementations
|
|
29
|
+
customImpl: Given.WithCustomImplementation(Object.assign(Object.assign({}, implementation), { suites: { Default: "Custom suite" } }), [], [Then.specsGenerated()])
|
|
30
|
+
}, [])
|
|
31
|
+
];
|
|
32
|
+
};
|
|
33
|
+
exports.specification = specification;
|