testeranto 0.80.0 → 0.81.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aider.chat.history.md +980 -0
- package/.aider.input.history +87 -0
- package/.aider.tags.cache.v3/1c/30/af1de2ad7a137afeddb1b01e0c27.val +0 -0
- package/.aider.tags.cache.v3/1d/63/88318b65ce58b6bb0487e8ce2656.val +0 -0
- package/.aider.tags.cache.v3/2e/67/16ae65530b40038e48e00d666c63.val +0 -0
- package/.aider.tags.cache.v3/6f/94/80488a232866fcce7ee657da488b.val +0 -0
- package/.aider.tags.cache.v3/cache.db +0 -0
- package/.gitattributes +1 -0
- package/README.md +10 -6
- package/dist/common/src/Aider.js +116 -69
- package/dist/common/src/PM/main.js +49 -46
- package/dist/common/src/PM/node.js +1 -1
- package/dist/common/src/Project.js +46 -38
- package/dist/common/src/Puppeteer.js +44 -37
- package/dist/common/src/SubPackages/react-test-renderer/jsx/index.js +17 -2
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +39 -12
- package/dist/common/src/esbuildConfigs/web.js +3 -3
- package/dist/common/src/lib/abstractBase.js +41 -13
- package/dist/common/src/lib/basebuilder.js +6 -3
- package/dist/common/src/lib/core.js +47 -3
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/Aider.js +116 -69
- package/dist/module/src/PM/main.js +49 -46
- package/dist/module/src/PM/node.js +1 -1
- package/dist/module/src/Project.js +46 -38
- package/dist/module/src/Puppeteer.js +44 -37
- package/dist/module/src/SubPackages/react-test-renderer/jsx/index.js +17 -2
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +39 -12
- package/dist/module/src/esbuildConfigs/web.js +3 -3
- package/dist/module/src/lib/abstractBase.js +41 -13
- package/dist/module/src/lib/basebuilder.js +6 -3
- package/dist/module/src/lib/core.js +47 -3
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/src/PM/main.d.ts +7 -1
- package/dist/types/src/Project.d.ts +6 -1
- package/dist/types/src/lib/abstractBase.d.ts +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +11 -15
- package/secret +1 -0
- package/secret.env +2 -0
- package/src/Aider.ts +140 -97
- package/src/PM/main.ts +60 -56
- package/src/PM/node.ts +1 -1
- package/src/Project.ts +55 -48
- package/src/Puppeteer.ts +56 -49
- package/src/SubPackages/react-test-renderer/jsx/index.ts +25 -2
- package/src/esbuildConfigs/inputFilesPlugin.ts +77 -32
- package/src/esbuildConfigs/web.ts +3 -3
- package/src/lib/abstractBase.ts +48 -17
- package/src/lib/basebuilder.ts +8 -3
- package/src/lib/core.ts +55 -13
|
@@ -12,44 +12,52 @@ const glob_1 = require("glob");
|
|
|
12
12
|
const node_js_1 = __importDefault(require("./esbuildConfigs/node.js"));
|
|
13
13
|
const web_js_1 = __importDefault(require("./esbuildConfigs/web.js"));
|
|
14
14
|
const web_html_js_1 = __importDefault(require("./web.html.js"));
|
|
15
|
-
var mode = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
15
|
+
// var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
16
16
|
readline_1.default.emitKeypressEvents(process.stdin);
|
|
17
17
|
if (process.stdin.isTTY)
|
|
18
18
|
process.stdin.setRawMode(true);
|
|
19
|
-
process.stdin.on("keypress", (str, key) => {
|
|
20
|
-
if (key.name === "q") {
|
|
21
|
-
console.log("Testeranto-EsBuild is shutting down...");
|
|
22
|
-
mode = "PROD";
|
|
23
|
-
onDone();
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
let nodeDone, webDone = false;
|
|
27
|
-
const onNodeDone = () => {
|
|
28
|
-
nodeDone = true;
|
|
29
|
-
onDone();
|
|
30
|
-
};
|
|
31
|
-
const onWebDone = () => {
|
|
32
|
-
webDone = true;
|
|
33
|
-
onDone();
|
|
34
|
-
};
|
|
35
|
-
const onDone = () => {
|
|
36
|
-
console.log(JSON.stringify({
|
|
37
|
-
nodeDone,
|
|
38
|
-
webDone,
|
|
39
|
-
mode,
|
|
40
|
-
}, null, 2));
|
|
41
|
-
if (nodeDone && webDone && mode === "PROD") {
|
|
42
|
-
console.log("Testeranto-EsBuild is all done. Goodbye!");
|
|
43
|
-
process.exit();
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
console.log("Testeranto-EsBuild is still working...");
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
19
|
class ITProject {
|
|
50
20
|
constructor(configs) {
|
|
51
|
-
this.
|
|
21
|
+
this.nodeDone = false;
|
|
22
|
+
this.webDone = false;
|
|
23
|
+
this.onNodeDone = () => {
|
|
24
|
+
this.nodeDone = true;
|
|
25
|
+
this.onDone();
|
|
26
|
+
};
|
|
27
|
+
this.onWebDone = () => {
|
|
28
|
+
this.webDone = true;
|
|
29
|
+
this.onDone();
|
|
30
|
+
};
|
|
31
|
+
this.onDone = () => {
|
|
32
|
+
// console.log(this.nodeDone && this.webDone && this.mode === "PROD");
|
|
33
|
+
if (this.nodeDone && this.webDone && this.mode === "PROD") {
|
|
34
|
+
console.log("Testeranto-EsBuild is all done. Goodbye!");
|
|
35
|
+
process.exit();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
if (this.mode === "PROD") {
|
|
39
|
+
console.log("waiting for tests to finish");
|
|
40
|
+
console.log(JSON.stringify({
|
|
41
|
+
nodeDone: this.nodeDone,
|
|
42
|
+
webDone: this.webDone,
|
|
43
|
+
mode: this.mode,
|
|
44
|
+
}, null, 2));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log("waiting for tests to change");
|
|
48
|
+
}
|
|
49
|
+
console.log("press 'q' to quit");
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
52
|
this.config = configs;
|
|
53
|
+
this.mode = this.config.devMode ? "DEV" : "PROD";
|
|
54
|
+
process.stdin.on("keypress", (str, key) => {
|
|
55
|
+
if (key.name === "q") {
|
|
56
|
+
console.log("Testeranto-EsBuild is shutting down...");
|
|
57
|
+
this.mode = "PROD";
|
|
58
|
+
this.onDone();
|
|
59
|
+
}
|
|
60
|
+
});
|
|
53
61
|
fs_1.default.writeFileSync(`${this.config.outdir}/testeranto.json`, JSON.stringify(Object.assign(Object.assign({}, this.config), { buildDir: process.cwd() + "/" + this.config.outdir }), null, 2));
|
|
54
62
|
Promise.resolve(Promise.all([...this.getSecondaryEndpointsPoints("web")].map(async (sourceFilePath) => {
|
|
55
63
|
const sourceFileSplit = sourceFilePath.split("/");
|
|
@@ -78,14 +86,14 @@ class ITProject {
|
|
|
78
86
|
esbuild_1.default
|
|
79
87
|
.context((0, node_js_1.default)(this.config, nodeEntryPoints))
|
|
80
88
|
.then(async (nodeContext) => {
|
|
81
|
-
if (
|
|
89
|
+
if (this.config.devMode) {
|
|
82
90
|
await nodeContext.watch().then((v) => {
|
|
83
|
-
onNodeDone();
|
|
91
|
+
this.onNodeDone();
|
|
84
92
|
});
|
|
85
93
|
}
|
|
86
94
|
else {
|
|
87
95
|
nodeContext.rebuild().then((v) => {
|
|
88
|
-
onNodeDone();
|
|
96
|
+
this.onNodeDone();
|
|
89
97
|
});
|
|
90
98
|
}
|
|
91
99
|
return nodeContext;
|
|
@@ -93,14 +101,14 @@ class ITProject {
|
|
|
93
101
|
esbuild_1.default
|
|
94
102
|
.context((0, web_js_1.default)(this.config, webEntryPoints))
|
|
95
103
|
.then(async (webContext) => {
|
|
96
|
-
if (
|
|
104
|
+
if (this.config.devMode) {
|
|
97
105
|
await webContext.watch().then((v) => {
|
|
98
|
-
onWebDone();
|
|
106
|
+
this.onWebDone();
|
|
99
107
|
});
|
|
100
108
|
}
|
|
101
109
|
else {
|
|
102
110
|
webContext.rebuild().then((v) => {
|
|
103
|
-
onWebDone();
|
|
111
|
+
this.onWebDone();
|
|
104
112
|
});
|
|
105
113
|
}
|
|
106
114
|
return webContext;
|
|
@@ -8,20 +8,14 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const recursive_watch_1 = __importDefault(require("recursive-watch"));
|
|
9
9
|
const main_js_1 = require("./PM/main.js");
|
|
10
10
|
const utils_js_1 = require("./utils.js");
|
|
11
|
-
var mode = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
12
|
-
const node2web = {};
|
|
13
|
-
const web2node = {};
|
|
14
|
-
const childProcesses = {};
|
|
11
|
+
// var mode: "DEV" | "PROD" = process.argv[2] === "-dev" ? "DEV" : "PROD";
|
|
12
|
+
// const node2web: Record<string, string[]> = {};
|
|
13
|
+
// const web2node: Record<string, string[]> = {};
|
|
14
|
+
// const childProcesses: Record<string, "loaded" | "running" | "done"> = {};
|
|
15
15
|
readline_1.default.emitKeypressEvents(process.stdin);
|
|
16
16
|
if (process.stdin.isTTY)
|
|
17
17
|
process.stdin.setRawMode(true);
|
|
18
|
-
//
|
|
19
|
-
console.log("\n Puppeteer is running. Press 'q' to quit\n");
|
|
20
|
-
process.stdin.on("keypress", (str, key) => {
|
|
21
|
-
if (key.name === "q") {
|
|
22
|
-
process.exit();
|
|
23
|
-
}
|
|
24
|
-
});
|
|
18
|
+
// let shutDownMode = false;
|
|
25
19
|
exports.default = async (partialConfig) => {
|
|
26
20
|
const config = Object.assign(Object.assign({}, partialConfig), { buildDir: process.cwd() + "/" + partialConfig.outdir });
|
|
27
21
|
fs_1.default.writeFileSync(`${config.outdir}/testeranto.json`, JSON.stringify(Object.assign(Object.assign({}, config), { buildDir: process.cwd() + "/" + config.outdir }), null, 2));
|
|
@@ -66,6 +60,13 @@ exports.default = async (partialConfig) => {
|
|
|
66
60
|
// "--start-maximized",
|
|
67
61
|
],
|
|
68
62
|
}, ".");
|
|
63
|
+
console.log("\n Puppeteer is running. Press 'q' to quit\n");
|
|
64
|
+
process.stdin.on("keypress", (str, key) => {
|
|
65
|
+
if (key.name === "q") {
|
|
66
|
+
pm.shutDown();
|
|
67
|
+
// process.exit();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
69
70
|
config.tests.forEach(([test, runtime, tr, sidecars]) => {
|
|
70
71
|
if (runtime === "node") {
|
|
71
72
|
pm.launchNode(test, (0, utils_js_1.destinationOfRuntime)(test, "node", config));
|
|
@@ -77,33 +78,39 @@ exports.default = async (partialConfig) => {
|
|
|
77
78
|
console.error("runtime makes no sense", runtime);
|
|
78
79
|
}
|
|
79
80
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
81
|
+
if (config.devMode) {
|
|
82
|
+
console.log("ready and watching for changes...", config.buildDir);
|
|
83
|
+
(0, recursive_watch_1.default)(config.buildDir, (eventType, changedFile) => {
|
|
84
|
+
if (changedFile) {
|
|
85
|
+
config.tests.forEach(([test, runtime, tr, sidecars]) => {
|
|
86
|
+
if (eventType === "change" || eventType === "rename") {
|
|
87
|
+
if (changedFile ===
|
|
88
|
+
test
|
|
89
|
+
.replace("./", "node/")
|
|
90
|
+
.split(".")
|
|
91
|
+
.slice(0, -1)
|
|
92
|
+
.concat("mjs")
|
|
93
|
+
.join(".")) {
|
|
94
|
+
pm.launchNode(test, (0, utils_js_1.destinationOfRuntime)(test, "node", config));
|
|
95
|
+
}
|
|
96
|
+
if (changedFile ===
|
|
97
|
+
test
|
|
98
|
+
.replace("./", "web/")
|
|
99
|
+
.split(".")
|
|
100
|
+
.slice(0, -1)
|
|
101
|
+
.concat("mjs")
|
|
102
|
+
.join(".")) {
|
|
103
|
+
pm.launchWeb(test, (0, utils_js_1.destinationOfRuntime)(test, "web", config), sidecars);
|
|
104
|
+
}
|
|
102
105
|
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
pm.shutDown();
|
|
112
|
+
}
|
|
113
|
+
// pm.browser.close();
|
|
107
114
|
// does not work on linux
|
|
108
115
|
// fs.watch(
|
|
109
116
|
// config.buildDir,
|
|
@@ -29,15 +29,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.testInterface = void 0;
|
|
30
30
|
const react_1 = __importDefault(require("react"));
|
|
31
31
|
const react_test_renderer_1 = __importStar(require("react-test-renderer"));
|
|
32
|
+
const Context = react_1.default.createContext({});
|
|
33
|
+
const AppContext = react_1.default.createContext({});
|
|
34
|
+
const contextValue = {
|
|
35
|
+
ingredients: ["flour", "sugar", "eggs"],
|
|
36
|
+
temperature: "200",
|
|
37
|
+
};
|
|
32
38
|
exports.testInterface = {
|
|
33
39
|
butThen: async function (s, thenCB, tr) {
|
|
34
|
-
console.log("butThen", thenCB.toString());
|
|
40
|
+
// console.log("butThen", thenCB.toString());
|
|
35
41
|
return thenCB(s);
|
|
36
42
|
},
|
|
37
43
|
beforeEach: function (CComponent, props) {
|
|
38
44
|
let component;
|
|
39
45
|
(0, react_test_renderer_1.act)(() => {
|
|
40
|
-
component =
|
|
46
|
+
// component = renderer.create(
|
|
47
|
+
// React.createElement(
|
|
48
|
+
// AppContext.Provider,
|
|
49
|
+
// { value: contextValue },
|
|
50
|
+
// React.createElement(AppContext.Consumer, null, (context) =>
|
|
51
|
+
// React.createElement(CComponent, Object.assign({}, context, {}))
|
|
52
|
+
// )
|
|
53
|
+
// )
|
|
54
|
+
// );
|
|
55
|
+
component = react_test_renderer_1.default.create(react_1.default.createElement(CComponent, props, react_1.default.createElement(CComponent, props, [])));
|
|
41
56
|
});
|
|
42
57
|
return component;
|
|
43
58
|
},
|
|
@@ -6,20 +6,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const fs_1 = __importDefault(require("fs"));
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
exports.default = (platform, entryPoints) => {
|
|
9
|
-
console.log("mark3", platform);
|
|
10
9
|
return {
|
|
11
10
|
name: "metafileWriter",
|
|
12
11
|
setup(build) {
|
|
13
12
|
build.onEnd((result) => {
|
|
14
13
|
if (result.errors.length === 0) {
|
|
15
14
|
entryPoints.forEach((entryPoint) => {
|
|
16
|
-
console.log("mark1", entryPoint);
|
|
17
15
|
const filePath = path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `inputFiles.json`);
|
|
16
|
+
const promptPath = path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `prompt.txt`);
|
|
17
|
+
const testPaths = path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `tests.json`);
|
|
18
18
|
const dirName = path_1.default.dirname(filePath);
|
|
19
19
|
if (!fs_1.default.existsSync(dirName)) {
|
|
20
20
|
fs_1.default.mkdirSync(dirName, { recursive: true });
|
|
21
21
|
}
|
|
22
|
-
const
|
|
22
|
+
const j = Object.keys(Object.keys(result.metafile.outputs)
|
|
23
23
|
.filter((s) => {
|
|
24
24
|
if (!result.metafile.outputs[s].entryPoint) {
|
|
25
25
|
return false;
|
|
@@ -30,20 +30,47 @@ exports.default = (platform, entryPoints) => {
|
|
|
30
30
|
.reduce((mm, el) => {
|
|
31
31
|
mm.push(result.metafile.outputs[el].inputs);
|
|
32
32
|
return mm;
|
|
33
|
-
}, [])[0])
|
|
34
|
-
.filter((f) => {
|
|
33
|
+
}, [])[0]).filter((f) => {
|
|
35
34
|
const regex = /^src\/.*/g;
|
|
36
35
|
const matches = f.match(regex);
|
|
37
36
|
const passes = (matches === null || matches === void 0 ? void 0 : matches.length) === 1;
|
|
38
37
|
return passes;
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
})
|
|
38
|
+
});
|
|
39
|
+
// .filter((f: string) => {
|
|
40
|
+
// const regex = /.*\.test\..*/g;
|
|
41
|
+
// const matches = f.match(regex);
|
|
42
|
+
// const passes = matches?.length === 1;
|
|
43
|
+
// return !passes;
|
|
44
|
+
// })
|
|
45
|
+
const jsonContent = JSON.stringify(j);
|
|
46
46
|
fs_1.default.writeFileSync(filePath, jsonContent);
|
|
47
|
+
fs_1.default.writeFileSync(promptPath, `
|
|
48
|
+
${j
|
|
49
|
+
.map((x) => {
|
|
50
|
+
return `/add ${x}`;
|
|
51
|
+
})
|
|
52
|
+
.join("\n")}
|
|
53
|
+
/read ${testPaths}
|
|
54
|
+
|
|
55
|
+
/code fix the failing tests described in ${filePath}.
|
|
56
|
+
`);
|
|
57
|
+
// fs.writeFileSync(
|
|
58
|
+
// promptPath,
|
|
59
|
+
// `
|
|
60
|
+
// from aider.coders import Coder
|
|
61
|
+
// from aider.models import Model
|
|
62
|
+
// import os
|
|
63
|
+
// model = Model("deepseek")
|
|
64
|
+
// coder = Coder.create(main_model=model)
|
|
65
|
+
// coder.run("/read-only", "${testPaths}")
|
|
66
|
+
// ${j
|
|
67
|
+
// .map((x) => {
|
|
68
|
+
// return `coder.run("/add", "${x}")`;
|
|
69
|
+
// })
|
|
70
|
+
// .join("\n")}
|
|
71
|
+
// coder.run("fix the failing tests described in ${filePath}.")
|
|
72
|
+
// `
|
|
73
|
+
// );
|
|
47
74
|
});
|
|
48
75
|
}
|
|
49
76
|
});
|
|
@@ -16,10 +16,10 @@ exports.default = (config, entryPoints) => {
|
|
|
16
16
|
outdir: config.outdir + "/web", alias: {
|
|
17
17
|
react: path_1.default.resolve("./node_modules/react"),
|
|
18
18
|
}, metafile: true, external: [
|
|
19
|
-
"testeranto.json",
|
|
20
|
-
"features.test.ts",
|
|
19
|
+
// "testeranto.json",
|
|
20
|
+
// "features.test.ts",
|
|
21
21
|
// "url",
|
|
22
|
-
"react",
|
|
22
|
+
// "react",
|
|
23
23
|
"path",
|
|
24
24
|
"fs",
|
|
25
25
|
"stream",
|
|
@@ -10,10 +10,22 @@ class BaseSuite {
|
|
|
10
10
|
this.fails = [];
|
|
11
11
|
}
|
|
12
12
|
toObj() {
|
|
13
|
+
const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
|
|
14
|
+
const features = Object.keys(this.givens)
|
|
15
|
+
.map((k) => this.givens[k].features)
|
|
16
|
+
.flat()
|
|
17
|
+
.filter((value, index, array) => {
|
|
18
|
+
return array.indexOf(value) === index;
|
|
19
|
+
})
|
|
20
|
+
.reduce((mm, lm) => {
|
|
21
|
+
mm[lm] = lm;
|
|
22
|
+
return mm;
|
|
23
|
+
}, {});
|
|
13
24
|
return {
|
|
14
25
|
name: this.name,
|
|
15
|
-
givens
|
|
26
|
+
givens,
|
|
16
27
|
fails: this.fails,
|
|
28
|
+
features,
|
|
17
29
|
};
|
|
18
30
|
}
|
|
19
31
|
setup(s, artifactory, tr, pm) {
|
|
@@ -230,7 +242,7 @@ class BaseGiven {
|
|
|
230
242
|
},
|
|
231
243
|
});
|
|
232
244
|
this.store = await this.givenThat(subject, testResourceConfiguration, givenArtifactory, this.givenCB, beforeEachProxy);
|
|
233
|
-
console.log("mark6", this.store);
|
|
245
|
+
// console.log("mark6", this.store);
|
|
234
246
|
for (const [whenNdx, whenStep] of this.whens.entries()) {
|
|
235
247
|
await whenStep.test(this.store, testResourceConfiguration, tLog, pm, `suite-${suiteNdx}/given-${key}/when/${whenNdx}`);
|
|
236
248
|
}
|
|
@@ -329,7 +341,7 @@ class BaseGiven {
|
|
|
329
341
|
return Reflect.get(...arguments);
|
|
330
342
|
},
|
|
331
343
|
});
|
|
332
|
-
console.log("mark5", this.store, key);
|
|
344
|
+
// console.log("mark5", this.store, key);
|
|
333
345
|
await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
|
|
334
346
|
}
|
|
335
347
|
catch (e) {
|
|
@@ -448,13 +460,21 @@ class BaseWhen {
|
|
|
448
460
|
return Reflect.get(...arguments);
|
|
449
461
|
},
|
|
450
462
|
});
|
|
451
|
-
|
|
452
|
-
return await this.andWhen(store, this.whenCB, testResourceConfiguration, andWhenProxy);
|
|
453
|
-
}
|
|
454
|
-
catch (e) {
|
|
463
|
+
return this.andWhen(store, this.whenCB, testResourceConfiguration, andWhenProxy).catch((e) => {
|
|
455
464
|
this.error = true;
|
|
456
|
-
throw e;
|
|
457
|
-
}
|
|
465
|
+
// throw e;
|
|
466
|
+
});
|
|
467
|
+
// try {
|
|
468
|
+
// return await this.andWhen(
|
|
469
|
+
// store,
|
|
470
|
+
// this.whenCB,
|
|
471
|
+
// testResourceConfiguration,
|
|
472
|
+
// andWhenProxy
|
|
473
|
+
// );
|
|
474
|
+
// } catch (e) {
|
|
475
|
+
// this.error = true;
|
|
476
|
+
// throw e;
|
|
477
|
+
// }
|
|
458
478
|
}
|
|
459
479
|
}
|
|
460
480
|
exports.BaseWhen = BaseWhen;
|
|
@@ -535,10 +555,18 @@ class BaseThen {
|
|
|
535
555
|
return Reflect.get(...arguments);
|
|
536
556
|
},
|
|
537
557
|
});
|
|
538
|
-
const x = await this.butThen(
|
|
539
|
-
//
|
|
540
|
-
|
|
541
|
-
|
|
558
|
+
// const x = await this.butThen(
|
|
559
|
+
// store,
|
|
560
|
+
// this.thenCB,
|
|
561
|
+
// testResourceConfiguration,
|
|
562
|
+
// butThenProxy
|
|
563
|
+
// );
|
|
564
|
+
// return x;
|
|
565
|
+
return this.butThen(store, this.thenCB, testResourceConfiguration, butThenProxy).catch((e) => {
|
|
566
|
+
console.log("mar123");
|
|
567
|
+
this.error = true;
|
|
568
|
+
throw e;
|
|
569
|
+
});
|
|
542
570
|
}
|
|
543
571
|
catch (e) {
|
|
544
572
|
console.log("test failed", e);
|
|
@@ -16,12 +16,15 @@ class BaseBuilder {
|
|
|
16
16
|
this.specs = testSpecification(this.Suites(), this.Given(), this.When(), this.Then(), this.Check());
|
|
17
17
|
this.testJobs = this.specs.map((suite) => {
|
|
18
18
|
const suiteRunner = (suite) => async (puppetMaster, tLog) => {
|
|
19
|
-
await puppetMaster.startPuppeteer({
|
|
19
|
+
const puppeteerBrowser = await puppetMaster.startPuppeteer({
|
|
20
20
|
browserWSEndpoint: puppetMaster.testResourceConfiguration.browserWSEndpoint,
|
|
21
21
|
}, puppetMaster.testResourceConfiguration.fs);
|
|
22
|
-
|
|
22
|
+
const x = await suite.run(input, puppetMaster.testResourceConfiguration, (fPath, value) => puppetMaster.testArtiFactoryfileWriter(tLog, (p) => {
|
|
23
23
|
this.artifacts.push(p);
|
|
24
24
|
})(puppetMaster.testResourceConfiguration.fs + "/" + fPath, value), tLog, puppetMaster);
|
|
25
|
+
// await puppetMaster.browser.disconnect();
|
|
26
|
+
// puppeteerBrowser.close();
|
|
27
|
+
return x;
|
|
25
28
|
};
|
|
26
29
|
const runner = suiteRunner(suite);
|
|
27
30
|
return {
|
|
@@ -31,7 +34,7 @@ class BaseBuilder {
|
|
|
31
34
|
},
|
|
32
35
|
runner,
|
|
33
36
|
receiveTestResourceConfig: async function (puppetMaster) {
|
|
34
|
-
await puppetMaster.mkdirSync();
|
|
37
|
+
// await puppetMaster.mkdirSync();
|
|
35
38
|
const logFilePath = "log.txt";
|
|
36
39
|
const access = await puppetMaster.createWriteStream(logFilePath);
|
|
37
40
|
const tLog = (...l) => {
|
|
@@ -48,11 +48,55 @@ class Testeranto extends classBuilder_js_1.ClassBuilder {
|
|
|
48
48
|
}
|
|
49
49
|
}, class When extends abstractBase_js_1.BaseWhen {
|
|
50
50
|
async andWhen(store, whenCB, testResource, pm) {
|
|
51
|
-
|
|
51
|
+
try {
|
|
52
|
+
return await fullTestInterface.andWhen(store, whenCB, testResource, pm);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
throw e;
|
|
56
|
+
}
|
|
57
|
+
// return fullTestInterface
|
|
58
|
+
// .andWhen(store, whenCB, testResource, pm)
|
|
59
|
+
// .catch((e) => {
|
|
60
|
+
// throw e;
|
|
61
|
+
// });
|
|
62
|
+
// return new Promise((res, rej) => {
|
|
63
|
+
// fullTestInterface.andWhen(store, whenCB, testResource, pm);
|
|
64
|
+
// });
|
|
65
|
+
// return await fullTestInterface.andWhen(
|
|
66
|
+
// store,
|
|
67
|
+
// whenCB,
|
|
68
|
+
// testResource,
|
|
69
|
+
// pm
|
|
70
|
+
// );
|
|
52
71
|
}
|
|
53
72
|
}, class Then extends abstractBase_js_1.BaseThen {
|
|
54
|
-
async butThen(store, thenCB,
|
|
55
|
-
return
|
|
73
|
+
async butThen(store, thenCB, testResource, pm) {
|
|
74
|
+
return fullTestInterface
|
|
75
|
+
.butThen(store, thenCB, testResource, pm)
|
|
76
|
+
.then((v) => {
|
|
77
|
+
return v;
|
|
78
|
+
}, (e) => {
|
|
79
|
+
console.log(" ERROR ", e);
|
|
80
|
+
throw e;
|
|
81
|
+
});
|
|
82
|
+
// try {
|
|
83
|
+
// console.log("mark 4");
|
|
84
|
+
// return await fullTestInterface.butThen(
|
|
85
|
+
// store,
|
|
86
|
+
// thenCB,
|
|
87
|
+
// testResource,
|
|
88
|
+
// pm
|
|
89
|
+
// );
|
|
90
|
+
// } catch (e) {
|
|
91
|
+
// console.log("mar123");
|
|
92
|
+
// throw e;
|
|
93
|
+
// }
|
|
94
|
+
// return await fullTestInterface.butThen(
|
|
95
|
+
// store,
|
|
96
|
+
// thenCB,
|
|
97
|
+
// testResourceConfiguration,
|
|
98
|
+
// pm
|
|
99
|
+
// );
|
|
56
100
|
}
|
|
57
101
|
}, class Check extends abstractBase_js_1.BaseCheck {
|
|
58
102
|
constructor(name, features, checkCallback, whens, thens, initialValues) {
|