testeranto 0.100.0 → 0.110.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/README.md +1 -0
- package/bundle.js +80 -30
- package/dist/common/{dist/module/src/Init.js → Init.js} +28 -0
- package/dist/common/{src/PM → PM}/main.js +138 -95
- package/dist/common/ReportServer.js +22 -0
- package/dist/common/{src/SubPackages → SubPackages}/react/jsx/index.js +0 -12
- package/dist/common/{src/SubPackages → SubPackages}/react-dom/component/node.js +3 -16
- package/dist/common/{src/SubPackages → SubPackages}/react-dom/component/web.js +3 -3
- package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/node.js +1 -1
- package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/web.js +41 -30
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +17 -7
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.js +17 -7
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/fc/node.js +17 -7
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/fc/web.js +17 -7
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/index.js +18 -14
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +17 -7
- package/dist/common/build.js +222 -0
- package/dist/common/{src/defaultConfig.js → defaultConfig.js} +1 -0
- package/dist/common/esbuildConfigs/eslint-formatter-testeranto.js +6 -0
- package/dist/common/esbuildConfigs/inputFilesPlugin.js +27 -0
- package/dist/common/{src/esbuildConfigs → esbuildConfigs}/node.js +2 -10
- package/dist/common/{src/esbuildConfigs → esbuildConfigs}/web.js +2 -13
- package/dist/common/{src/init-docs.js → init-docs.js} +20 -10
- package/dist/common/{src/lib → lib}/abstractBase.js +6 -1
- package/dist/common/{src/lib → lib}/basebuilder.js +23 -10
- package/dist/common/{src/lib → lib}/classBuilder.js +1 -3
- package/dist/common/{src/lib → lib}/core.js +26 -10
- package/dist/common/{src/lib → lib}/index.js +0 -1
- package/dist/common/{src/lib → lib}/types.js +0 -1
- package/dist/common/run.js +297 -0
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/common/utils.js +43 -0
- package/dist/module/Footer.js +4 -0
- package/dist/module/Init.js +63 -0
- package/dist/module/{src/PM → PM}/main.js +119 -86
- package/dist/module/ReportClient.js +97 -0
- package/dist/module/ReportServer.js +17 -0
- package/dist/module/SubPackages/react/jsx/index.js +15 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-dom/component/node.js +3 -16
- package/dist/module/{src/SubPackages → SubPackages}/react-dom/component/web.js +3 -3
- package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/node.js +3 -3
- package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/web.js +24 -23
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/index.js +1 -7
- package/dist/module/TestReport.js +91 -0
- package/dist/module/build.js +184 -0
- package/dist/module/{src/defaultConfig.js → defaultConfig.js} +1 -0
- package/dist/module/esbuildConfigs/eslint-formatter-testeranto.js +3 -0
- package/dist/module/esbuildConfigs/inputFilesPlugin.js +22 -0
- package/dist/module/{src/esbuildConfigs → esbuildConfigs}/node.js +2 -10
- package/dist/module/{src/esbuildConfigs → esbuildConfigs}/web.js +2 -13
- package/dist/module/{src/init-docs.js → init-docs.js} +1 -1
- package/dist/module/{src/lib → lib}/abstractBase.js +6 -1
- package/dist/module/{src/lib → lib}/basebuilder.js +23 -10
- package/dist/module/{src/lib → lib}/classBuilder.js +1 -3
- package/dist/module/{src/lib → lib}/core.js +26 -10
- package/dist/module/{src/lib → lib}/index.js +0 -1
- package/dist/module/run.js +259 -0
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/module/utils.js +29 -0
- package/dist/prebuild/ReportClient.css +11367 -0
- package/dist/prebuild/ReportClient.js +23641 -0
- package/dist/prebuild/ReportServer.mjs +16 -0
- package/dist/prebuild/TestReport.css +11367 -0
- package/dist/prebuild/TestReport.js +27484 -0
- package/dist/prebuild/build.mjs +376 -0
- package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +9 -0
- package/dist/prebuild/init-docs.mjs +64 -8
- package/dist/prebuild/{cli2.mjs → run.mjs} +353 -81
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/Node.d.ts +12 -0
- package/dist/types/{src/PM → PM}/index.d.ts +1 -1
- package/dist/types/{src/PM → PM}/main.d.ts +12 -9
- package/dist/types/{src/PM → PM}/node.d.ts +2 -4
- package/dist/types/{src/PM → PM}/web.d.ts +2 -4
- package/dist/types/SubPackages/react/component/node.d.ts +7 -0
- package/dist/types/SubPackages/react/component/web.d.ts +7 -0
- package/dist/types/SubPackages/react/jsx/index.d.ts +12 -0
- package/dist/types/SubPackages/react/jsx/node.d.ts +4 -0
- package/dist/types/SubPackages/react/jsx/web.d.ts +4 -0
- package/dist/types/SubPackages/react-dom/component/node.d.ts +11 -0
- package/dist/types/SubPackages/react-dom/component/web.d.ts +20 -0
- package/dist/types/SubPackages/react-dom/jsx/index.d.ts +6 -0
- package/dist/types/SubPackages/react-dom/jsx/node.d.ts +7 -0
- package/dist/types/SubPackages/react-dom/jsx/web.d.ts +5 -0
- package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +6 -0
- package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +13 -0
- package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +4 -0
- package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +4 -0
- package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +8 -0
- package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +9 -0
- package/dist/types/SubPackages/react-test-renderer/jsx/index.d.ts +16 -0
- package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +9 -0
- package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +9 -0
- package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +15 -0
- package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +5 -0
- package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +5 -0
- package/dist/types/Types.d.ts +61 -0
- package/dist/types/Web.d.ts +9 -0
- package/dist/types/defaultConfig.d.ts +3 -0
- package/dist/types/esbuildConfigs/eslint-formatter-testeranto.d.ts +2 -0
- package/dist/types/{src/esbuildConfigs → esbuildConfigs}/index.d.ts +1 -1
- package/dist/types/{src/esbuildConfigs → esbuildConfigs}/inputFilesPlugin.d.ts +0 -1
- package/dist/types/{src/esbuildConfigs → esbuildConfigs}/node.d.ts +1 -1
- package/dist/types/{src/esbuildConfigs → esbuildConfigs}/web.d.ts +1 -1
- package/dist/types/init-docs.d.ts +1 -0
- package/dist/types/lib/abstractBase.d.ts +110 -0
- package/dist/types/lib/basebuilder.d.ts +27 -0
- package/dist/types/lib/classBuilder.d.ts +7 -0
- package/dist/types/lib/core.d.ts +7 -0
- package/dist/types/lib/index.d.ts +83 -0
- package/dist/types/lib/types.d.ts +14 -0
- package/dist/types/run.d.ts +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/utils.d.ts +9 -0
- package/package.json +40 -32
- package/src/Footer.tsx +4 -0
- package/src/Init.ts +48 -0
- package/src/Node.ts +23 -17
- package/src/PM/index.ts +1 -1
- package/src/PM/main.ts +143 -101
- package/src/PM/node.ts +2 -2
- package/src/PM/web.ts +1 -1
- package/src/ReportClient.tsx +155 -0
- package/src/ReportServer.ts +21 -0
- package/src/SubPackages/react/component/node.ts +68 -24
- package/src/SubPackages/react/component/web.ts +68 -25
- package/src/SubPackages/react/jsx/index.ts +39 -18
- package/src/SubPackages/react/jsx/node.ts +12 -10
- package/src/SubPackages/react/jsx/web.ts +27 -14
- package/src/SubPackages/react-dom/component/node.ts +42 -50
- package/src/SubPackages/react-dom/component/web.ts +28 -10
- package/src/SubPackages/react-dom/jsx/node.ts +54 -56
- package/src/SubPackages/react-dom/jsx/web.ts +55 -42
- package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +23 -7
- package/src/SubPackages/react-test-renderer/component/index.ts +38 -5
- package/src/SubPackages/react-test-renderer/component/node.ts +24 -5
- package/src/SubPackages/react-test-renderer/component/web.ts +22 -5
- package/src/SubPackages/react-test-renderer/fc/node.ts +41 -7
- package/src/SubPackages/react-test-renderer/fc/web.ts +43 -11
- package/src/SubPackages/react-test-renderer/jsx/index.ts +39 -16
- package/src/SubPackages/react-test-renderer/jsx/node.ts +8 -6
- package/src/SubPackages/react-test-renderer/jsx/web.ts +22 -5
- package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +39 -6
- package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +27 -10
- package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +26 -12
- package/src/TestReport.tsx +176 -0
- package/src/Types.ts +63 -309
- package/src/Web.ts +24 -18
- package/src/build.ts +240 -0
- package/src/defaultConfig.ts +2 -1
- package/src/esbuildConfigs/eslint-formatter-testeranto.ts +5 -0
- package/src/esbuildConfigs/featuresPlugin.ts +0 -1
- package/src/esbuildConfigs/index.ts +1 -1
- package/src/esbuildConfigs/inputFilesPlugin.ts +2 -135
- package/src/esbuildConfigs/node.ts +4 -13
- package/src/esbuildConfigs/web.ts +3 -19
- package/src/init-docs.ts +2 -1
- package/src/lib/abstractBase.ts +82 -80
- package/src/lib/basebuilder.ts +57 -45
- package/src/lib/classBuilder.ts +15 -15
- package/src/lib/core.ts +44 -35
- package/src/lib/index.ts +47 -98
- package/src/lib/readme.md +12 -0
- package/src/lib/types.ts +53 -70
- package/src/run.ts +398 -0
- package/src/style.css +8 -0
- package/src/utils.ts +74 -2
- package/tsc.log +106 -0
- package/Bundle.Dockerfile +0 -52
- package/bin/init-docs.js +0 -24
- package/dist/common/src/Init.js +0 -40
- package/dist/common/src/SubPackages/puppeteer.js +0 -21
- package/dist/common/src/cli.js +0 -439
- package/dist/common/src/cli2.js +0 -144
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -99
- package/dist/common/src/utils.js +0 -16
- package/dist/common/testeranto.js +0 -15
- package/dist/module/src/Init.js +0 -35
- package/dist/module/src/SubPackages/puppeteer.js +0 -16
- package/dist/module/src/SubPackages/react/jsx/index.js +0 -27
- package/dist/module/src/cli.js +0 -411
- package/dist/module/src/cli2.js +0 -116
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -94
- package/dist/module/src/lib/types.js +0 -2
- package/dist/module/src/utils.js +0 -9
- package/dist/module/testeranto.js +0 -13
- package/dist/prebuild/cli.mjs +0 -1491
- package/dist/types/dist/module/src/Init.d.ts +0 -2
- package/dist/types/src/Node.d.ts +0 -13
- package/dist/types/src/SubPackages/puppeteer.d.ts +0 -6
- package/dist/types/src/SubPackages/react/component/node.d.ts +0 -7
- package/dist/types/src/SubPackages/react/component/web.d.ts +0 -7
- package/dist/types/src/SubPackages/react/jsx/index.d.ts +0 -12
- package/dist/types/src/SubPackages/react/jsx/node.d.ts +0 -4
- package/dist/types/src/SubPackages/react/jsx/web.d.ts +0 -4
- package/dist/types/src/SubPackages/react-dom/component/node.d.ts +0 -12
- package/dist/types/src/SubPackages/react-dom/component/web.d.ts +0 -11
- package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +0 -7
- package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +0 -6
- package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +0 -5
- package/dist/types/src/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -5
- package/dist/types/src/SubPackages/react-test-renderer/component/index.d.ts +0 -13
- package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +0 -8
- package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +0 -3
- package/dist/types/src/SubPackages/react-test-renderer/fc/node.d.ts +0 -8
- package/dist/types/src/SubPackages/react-test-renderer/fc/web.d.ts +0 -8
- package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +0 -17
- package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +0 -9
- package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +0 -8
- package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +0 -16
- package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/node.d.ts +0 -4
- package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/web.d.ts +0 -4
- package/dist/types/src/Types.d.ts +0 -90
- package/dist/types/src/Web.d.ts +0 -10
- package/dist/types/src/defaultConfig.d.ts +0 -3
- package/dist/types/src/lib/abstractBase.d.ts +0 -110
- package/dist/types/src/lib/basebuilder.d.ts +0 -27
- package/dist/types/src/lib/classBuilder.d.ts +0 -7
- package/dist/types/src/lib/core.d.ts +0 -8
- package/dist/types/src/lib/index.d.ts +0 -60
- package/dist/types/src/lib/types.d.ts +0 -40
- package/dist/types/src/utils.d.ts +0 -2
- package/dist/types/testeranto.d.ts +0 -16
- package/docker-compose.yml +0 -37
- package/src/SubPackages/puppeteer.ts +0 -51
- package/src/cli.ts +0 -535
- package/src/cli2.ts +0 -157
- package/testeranto.ts +0 -13
- package/dist/common/{src/Node.js → Node.js} +0 -0
- package/dist/common/{src/PM → PM}/index.js +0 -0
- package/dist/common/{src/PM → PM}/node.js +0 -0
- package/dist/common/{src/PM → PM}/web.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react/component/node.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react/component/web.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react/jsx/node.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react/jsx/web.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/index.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/index.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/node.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/web.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/node.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/web.js +0 -0
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/node.js +1 -1
- package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
- package/dist/common/{src/Types.js → Types.js} +0 -0
- package/dist/common/{src/Web.js → Web.js} +0 -0
- package/dist/common/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.js +0 -0
- package/dist/common/{src/esbuildConfigs → esbuildConfigs}/index.js +0 -0
- package/dist/common/{src/puppeteerConfiger.js → puppeteerConfiger.js} +0 -0
- package/dist/common/{src/web.html.js → web.html.js} +0 -0
- package/dist/module/{src/Node.js → Node.js} +0 -0
- package/dist/module/{src/PM → PM}/index.js +0 -0
- package/dist/module/{src/PM → PM}/node.js +0 -0
- package/dist/module/{src/PM → PM}/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react/component/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react/component/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react/jsx/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react/jsx/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/index.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/index.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/fc/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/fc/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/node.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/web.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
- package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/node.js +1 -1
- /package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
- /package/dist/module/{src/Types.js → Types.js} +0 -0
- /package/dist/module/{src/Web.js → Web.js} +0 -0
- /package/dist/module/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.js +0 -0
- /package/dist/module/{src/esbuildConfigs → esbuildConfigs}/index.js +0 -0
- /package/dist/{types/src/cli.d.ts → module/lib/types.js} +0 -0
- /package/dist/module/{src/puppeteerConfiger.js → puppeteerConfiger.js} +0 -0
- /package/dist/module/{src/web.html.js → web.html.js} +0 -0
- /package/dist/types/{src/Init.d.ts → Init.d.ts} +0 -0
- /package/dist/types/{src/cli2.d.ts → ReportServer.d.ts} +0 -0
- /package/dist/types/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.d.ts +0 -0
- /package/dist/types/{src/init-docs.d.ts → build.d.ts} +0 -0
- /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.d.ts +0 -0
- /package/dist/types/{src/puppeteerConfiger.d.ts → puppeteerConfiger.d.ts} +0 -0
- /package/dist/types/{src/web.html.d.ts → web.html.d.ts} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
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.promptPather = exports.bddExitCodePather = exports.bddPather = exports.lintExitCodePather = exports.lintPather = exports.tscExitCodePather = exports.tscPather = exports.destinationOfRuntime = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const destinationOfRuntime = (f, r, configs) => {
|
|
9
|
+
return path_1.default
|
|
10
|
+
.normalize(`${configs.buildDir}/${r}/${f}`)
|
|
11
|
+
.split(".")
|
|
12
|
+
.slice(0, -1)
|
|
13
|
+
.join(".");
|
|
14
|
+
};
|
|
15
|
+
exports.destinationOfRuntime = destinationOfRuntime;
|
|
16
|
+
const tscPather = (entryPoint, platform) => {
|
|
17
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `type_errors.txt`);
|
|
18
|
+
};
|
|
19
|
+
exports.tscPather = tscPather;
|
|
20
|
+
const tscExitCodePather = (entryPoint, platform) => {
|
|
21
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `type_errors.txt`);
|
|
22
|
+
};
|
|
23
|
+
exports.tscExitCodePather = tscExitCodePather;
|
|
24
|
+
const lintPather = (entryPoint, platform) => {
|
|
25
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `lint_errors.json`);
|
|
26
|
+
};
|
|
27
|
+
exports.lintPather = lintPather;
|
|
28
|
+
const lintExitCodePather = (entryPoint, platform) => {
|
|
29
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `lint_errors.txt`);
|
|
30
|
+
};
|
|
31
|
+
exports.lintExitCodePather = lintExitCodePather;
|
|
32
|
+
const bddPather = (entryPoint, platform) => {
|
|
33
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `tests.json`);
|
|
34
|
+
};
|
|
35
|
+
exports.bddPather = bddPather;
|
|
36
|
+
const bddExitCodePather = (entryPoint, platform) => {
|
|
37
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `bdd_errors.txt`);
|
|
38
|
+
};
|
|
39
|
+
exports.bddExitCodePather = bddExitCodePather;
|
|
40
|
+
const promptPather = (entryPoint, platform) => {
|
|
41
|
+
return path_1.default.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `prompt.txt`);
|
|
42
|
+
};
|
|
43
|
+
exports.promptPather = promptPather;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
export default async (partialConfig) => {
|
|
3
|
+
const config = Object.assign(Object.assign({}, partialConfig), { buildDir: process.cwd() + "/" + partialConfig.outdir });
|
|
4
|
+
try {
|
|
5
|
+
fs.mkdirSync(`${process.cwd()}/${config.outdir}`);
|
|
6
|
+
}
|
|
7
|
+
catch (_a) {
|
|
8
|
+
// console.log()
|
|
9
|
+
}
|
|
10
|
+
fs.writeFileSync(`${config.outdir}/index.html`, `
|
|
11
|
+
<!DOCTYPE html>
|
|
12
|
+
<html lang="en">
|
|
13
|
+
|
|
14
|
+
<head>
|
|
15
|
+
<meta name="description" content="Webpage description goes here" />
|
|
16
|
+
<meta charset="utf-8" />
|
|
17
|
+
<title>kokomoBay - testeranto</title>
|
|
18
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
19
|
+
<meta name="author" content="" />
|
|
20
|
+
|
|
21
|
+
<link rel="stylesheet" href="/kokomoBay/docs/ReportClient.css" />
|
|
22
|
+
<script type="module" src="/kokomoBay/docs/ReportClient.js"></script>
|
|
23
|
+
|
|
24
|
+
</head>
|
|
25
|
+
|
|
26
|
+
<body>
|
|
27
|
+
<div id="root">
|
|
28
|
+
react is loading
|
|
29
|
+
</div>
|
|
30
|
+
</body>
|
|
31
|
+
|
|
32
|
+
</html>
|
|
33
|
+
`);
|
|
34
|
+
fs.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.js`, `${config.outdir}/ReportClient.js`);
|
|
35
|
+
fs.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.css`, `${config.outdir}/ReportClient.css`);
|
|
36
|
+
fs.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.js`, `${config.outdir}/TestReport.js`);
|
|
37
|
+
fs.copyFileSync(`node_modules/testeranto/dist/prebuild/TestReport.css`, `${config.outdir}/TestReport.css`);
|
|
38
|
+
fs.writeFileSync(`${config.outdir}/testeranto.json`, JSON.stringify(Object.assign(Object.assign({}, config), { buildDir: process.cwd() + "/" + config.outdir }), null, 2));
|
|
39
|
+
try {
|
|
40
|
+
fs.mkdirSync(`${process.cwd()}/${config.outdir}/node`);
|
|
41
|
+
}
|
|
42
|
+
catch (_b) {
|
|
43
|
+
// console.log()
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
fs.mkdirSync(`${process.cwd()}/${config.outdir}/web`);
|
|
47
|
+
}
|
|
48
|
+
catch (_c) {
|
|
49
|
+
// console.log()
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
fs.mkdirSync(`${process.cwd()}/${config.outdir}/features`);
|
|
53
|
+
}
|
|
54
|
+
catch (_d) {
|
|
55
|
+
// console.log()
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
fs.mkdirSync(`${process.cwd()}/${config.outdir}/ts`);
|
|
59
|
+
}
|
|
60
|
+
catch (_e) {
|
|
61
|
+
// console.log()
|
|
62
|
+
}
|
|
63
|
+
};
|
|
@@ -1,58 +1,100 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import puppeteer from "puppeteer-core";
|
|
4
|
-
import
|
|
4
|
+
import ansiC from "ansi-colors";
|
|
5
|
+
import { bddExitCodePather, lintExitCodePather, tscExitCodePather, } from "../utils";
|
|
5
6
|
import { PM } from "./index.js";
|
|
6
7
|
const fileStreams3 = [];
|
|
7
8
|
const fPaths = [];
|
|
8
9
|
const files = {};
|
|
9
10
|
const recorders = {};
|
|
10
11
|
const screenshots = {};
|
|
11
|
-
const red = "\x1b[31m";
|
|
12
|
-
const green = "\x1b[32m";
|
|
13
|
-
const reset = "\x1b[0m"; // Resets to default color
|
|
14
12
|
const statusMessagePretty = (failures, test) => {
|
|
15
13
|
if (failures === 0) {
|
|
16
|
-
console.log(green
|
|
14
|
+
console.log(ansiC.green(ansiC.inverse(`> ${test} completed successfully`)));
|
|
17
15
|
}
|
|
18
16
|
else {
|
|
19
|
-
console.log(red
|
|
17
|
+
console.log(ansiC.red(ansiC.inverse(`> ${test} failed ${failures} times`)));
|
|
20
18
|
}
|
|
21
19
|
};
|
|
20
|
+
async function writeFileAndCreateDir(filePath, data) {
|
|
21
|
+
const dirPath = path.dirname(filePath);
|
|
22
|
+
try {
|
|
23
|
+
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
24
|
+
await fs.appendFileSync(filePath, data);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error(`Error writing file: ${error}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function isValidUrl(string) {
|
|
31
|
+
try {
|
|
32
|
+
new URL(string);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
22
39
|
export class PM_Main extends PM {
|
|
23
40
|
constructor(configs) {
|
|
24
41
|
super();
|
|
25
42
|
this.shutdownMode = false;
|
|
43
|
+
this.bigBoard = {};
|
|
26
44
|
this.checkForShutdown = () => {
|
|
27
|
-
const anyRunning = Object.values(this.
|
|
45
|
+
const anyRunning = Object.values(this.bigBoard).filter((x) => x.status === "running")
|
|
46
|
+
.length > 0;
|
|
28
47
|
if (anyRunning) {
|
|
29
48
|
}
|
|
30
49
|
else {
|
|
31
50
|
this.browser.disconnect().then(() => {
|
|
32
|
-
|
|
51
|
+
const final = {
|
|
52
|
+
timestamp: Date.now(),
|
|
53
|
+
tests: this.configs.tests.reduce((mm, t) => {
|
|
54
|
+
const bddErrors = fs
|
|
55
|
+
.readFileSync(bddExitCodePather(t[0], t[1]))
|
|
56
|
+
.toString();
|
|
57
|
+
const lintErrors = fs
|
|
58
|
+
.readFileSync(lintExitCodePather(t[0], t[1]))
|
|
59
|
+
.toString();
|
|
60
|
+
const typeErrors = fs
|
|
61
|
+
.readFileSync(tscExitCodePather(t[0], t[1]))
|
|
62
|
+
.toString();
|
|
63
|
+
mm[t[0]] = {
|
|
64
|
+
bddErrors,
|
|
65
|
+
lintErrors,
|
|
66
|
+
typeErrors,
|
|
67
|
+
};
|
|
68
|
+
return mm;
|
|
69
|
+
}, {}),
|
|
70
|
+
};
|
|
71
|
+
const s = JSON.stringify(final, null, 2);
|
|
72
|
+
fs.writeFileSync("docs/summary.json", s);
|
|
73
|
+
console.log(ansiC.inverse("Goodbye"));
|
|
33
74
|
process.exit();
|
|
34
75
|
});
|
|
35
76
|
}
|
|
36
77
|
};
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
78
|
+
this.testIsNowRunning = (src) => {
|
|
79
|
+
this.bigBoard[src].status = "running";
|
|
39
80
|
};
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
81
|
+
this.testIsNowDone = (src) => {
|
|
82
|
+
this.bigBoard[src].status = "waiting";
|
|
42
83
|
if (this.shutdownMode) {
|
|
43
84
|
this.checkForShutdown();
|
|
44
85
|
}
|
|
45
86
|
};
|
|
46
87
|
this.launchNode = async (src, dest) => {
|
|
47
|
-
console.log(
|
|
48
|
-
|
|
88
|
+
// console.log(ansiC.yellow(`! node, ${src}`));
|
|
89
|
+
console.log(ansiC.green(ansiC.inverse(`! node, ${src}`)));
|
|
90
|
+
this.testIsNowRunning(src);
|
|
49
91
|
const destFolder = dest.replace(".mjs", "");
|
|
50
92
|
let argz = "";
|
|
51
93
|
const testConfig = this.configs.tests.find((t) => {
|
|
52
94
|
return t[0] === src;
|
|
53
95
|
});
|
|
54
96
|
if (!testConfig) {
|
|
55
|
-
console.
|
|
97
|
+
console.log(ansiC.inverse("missing test config! Exiting ungracefully!"));
|
|
56
98
|
process.exit(-1);
|
|
57
99
|
}
|
|
58
100
|
const testConfigResource = testConfig[2];
|
|
@@ -121,13 +163,15 @@ export class PM_Main extends PM {
|
|
|
121
163
|
this.receiveFeatures(features, destFolder, src);
|
|
122
164
|
// console.log(`${src} completed with ${failed} errors`);
|
|
123
165
|
statusMessagePretty(failed, src);
|
|
166
|
+
this.receiveExitCode(src, failed);
|
|
124
167
|
})
|
|
125
168
|
.catch((e) => {
|
|
126
|
-
console.log(`${src} errored with
|
|
169
|
+
console.log(ansiC.red(ansiC.inverse(`${src} errored with: ${e}`)));
|
|
170
|
+
// console.log(reset, `${src} errored with`, e);
|
|
127
171
|
})
|
|
128
172
|
.finally(() => {
|
|
129
173
|
webSideCares.forEach((webSideCar) => webSideCar.close());
|
|
130
|
-
this.
|
|
174
|
+
this.testIsNowDone(src);
|
|
131
175
|
});
|
|
132
176
|
});
|
|
133
177
|
});
|
|
@@ -140,7 +184,8 @@ export class PM_Main extends PM {
|
|
|
140
184
|
};
|
|
141
185
|
this.launchWebSideCar = async (src, dest, testConfig) => {
|
|
142
186
|
const d = dest + ".mjs";
|
|
143
|
-
console.log("launchWebSideCar", src, dest, d);
|
|
187
|
+
// console.log(green, "launchWebSideCar", src, dest, d);
|
|
188
|
+
console.log(ansiC.green(ansiC.inverse(`launchWebSideCar ${src}`)));
|
|
144
189
|
const destFolder = dest.replace(".mjs", "");
|
|
145
190
|
// const webArgz = JSON.stringify({
|
|
146
191
|
// name: dest,
|
|
@@ -247,7 +292,8 @@ export class PM_Main extends PM {
|
|
|
247
292
|
};
|
|
248
293
|
this.launchNodeSideCar = async (src, dest, testConfig) => {
|
|
249
294
|
const d = dest + ".mjs";
|
|
250
|
-
console.log("launchNodeSideCar", src, dest, d);
|
|
295
|
+
// console.log(green, "launchNodeSideCar", src, dest, d);
|
|
296
|
+
console.log(ansiC.green(ansiC.inverse(`launchNodeSideCar ${src}`)));
|
|
251
297
|
const destFolder = dest.replace(".mjs", "");
|
|
252
298
|
let argz = "";
|
|
253
299
|
const testConfigResource = testConfig[2];
|
|
@@ -317,8 +363,9 @@ export class PM_Main extends PM {
|
|
|
317
363
|
}
|
|
318
364
|
};
|
|
319
365
|
this.launchWeb = (t, dest) => {
|
|
320
|
-
console.log("! web", t);
|
|
321
|
-
|
|
366
|
+
// console.log(green, "! web", t);
|
|
367
|
+
console.log(ansiC.green(ansiC.inverse(`! web ${t}`)));
|
|
368
|
+
this.testIsNowRunning(t);
|
|
322
369
|
// sidecars.map((sidecar) => {
|
|
323
370
|
// if (sidecar[1] === "node") {
|
|
324
371
|
// return this.launchNodeSideCar(
|
|
@@ -337,9 +384,9 @@ export class PM_Main extends PM {
|
|
|
337
384
|
});
|
|
338
385
|
const d = `${dest}?cacheBust=${Date.now()}`;
|
|
339
386
|
const evaluation = `
|
|
340
|
-
|
|
387
|
+
|
|
341
388
|
import('${d}').then(async (x) => {
|
|
342
|
-
|
|
389
|
+
|
|
343
390
|
try {
|
|
344
391
|
return await (await x.default).receiveTestResourceConfig(${webArgz})
|
|
345
392
|
} catch (e) {
|
|
@@ -518,7 +565,7 @@ export class PM_Main extends PM {
|
|
|
518
565
|
Promise.all(screenshots[t] || []).then(() => {
|
|
519
566
|
delete screenshots[t];
|
|
520
567
|
page.close();
|
|
521
|
-
this.
|
|
568
|
+
this.testIsNowDone(t);
|
|
522
569
|
stderrStream.close();
|
|
523
570
|
stdoutStream.close();
|
|
524
571
|
});
|
|
@@ -536,7 +583,7 @@ export class PM_Main extends PM {
|
|
|
536
583
|
}
|
|
537
584
|
console.debug(`Error from message ${t}: [${err.message}] `);
|
|
538
585
|
stderrStream.write(err.message);
|
|
539
|
-
|
|
586
|
+
close();
|
|
540
587
|
});
|
|
541
588
|
page.on("console", (log) => {
|
|
542
589
|
// console.debug(`Log from ${t}: [${log.text()}] `);
|
|
@@ -555,11 +602,14 @@ export class PM_Main extends PM {
|
|
|
555
602
|
this.receiveFeatures(features, destFolder, t);
|
|
556
603
|
// console.log(`${t} completed with ${failed} errors`);
|
|
557
604
|
statusMessagePretty(failed, t);
|
|
605
|
+
this.receiveExitCode(t, failed);
|
|
558
606
|
})
|
|
559
607
|
.catch((e) => {
|
|
560
|
-
console.log(`${t} errored with`, e);
|
|
608
|
+
// console.log(red, `${t} errored with`, e);
|
|
609
|
+
console.log(ansiC.red(ansiC.inverse(`${t} errored with: ${e}`)));
|
|
561
610
|
})
|
|
562
611
|
.finally(() => {
|
|
612
|
+
// this.testIsNowDone(t);
|
|
563
613
|
close();
|
|
564
614
|
});
|
|
565
615
|
return page;
|
|
@@ -585,14 +635,13 @@ export class PM_Main extends PM {
|
|
|
585
635
|
// throw error;
|
|
586
636
|
}
|
|
587
637
|
}
|
|
588
|
-
fs.symlink(u.pathname, newPath, (err) => {
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
});
|
|
638
|
+
// fs.symlink(u.pathname, newPath, (err) => {
|
|
639
|
+
// if (err) {
|
|
640
|
+
// // console.error("Error creating symlink:", err);
|
|
641
|
+
// } else {
|
|
642
|
+
// // console.log("Symlink created successfully");
|
|
643
|
+
// }
|
|
644
|
+
// });
|
|
596
645
|
accum.files.push(newPath);
|
|
597
646
|
}
|
|
598
647
|
else if (u.protocol === "http:" || u.protocol === "https:") {
|
|
@@ -606,13 +655,6 @@ export class PM_Main extends PM {
|
|
|
606
655
|
await fs.promises.mkdir(path.dirname(featureDestination), {
|
|
607
656
|
recursive: true,
|
|
608
657
|
});
|
|
609
|
-
// const newPath = `${process.cwd()}/docs/features/plain/${await sha256(
|
|
610
|
-
// featureStringKey
|
|
611
|
-
// )}`;
|
|
612
|
-
// writeFileAndCreateDir(
|
|
613
|
-
// `${featureDestination}/${await sha256(featureStringKey)}`,
|
|
614
|
-
// featureStringKey
|
|
615
|
-
// );
|
|
616
658
|
accum.strings.push(featureStringKey);
|
|
617
659
|
}
|
|
618
660
|
return accum;
|
|
@@ -625,32 +667,46 @@ export class PM_Main extends PM {
|
|
|
625
667
|
})
|
|
626
668
|
.join("\n"));
|
|
627
669
|
});
|
|
670
|
+
this.writeBigBoard();
|
|
671
|
+
};
|
|
672
|
+
this.receiveExitCode = (srcTest, failures) => {
|
|
673
|
+
this.bigBoard[srcTest].runTimeError = failures;
|
|
674
|
+
this.writeBigBoard();
|
|
675
|
+
};
|
|
676
|
+
this.writeBigBoard = () => {
|
|
677
|
+
fs.writeFileSync("./docs/bigBoard.json", JSON.stringify(this.bigBoard, null, 2));
|
|
628
678
|
};
|
|
629
679
|
this.server = {};
|
|
630
680
|
this.configs = configs;
|
|
631
681
|
this.ports = {};
|
|
632
|
-
this.
|
|
682
|
+
this.configs.tests.forEach(([t]) => {
|
|
683
|
+
this.bigBoard[t] = {
|
|
684
|
+
status: "?",
|
|
685
|
+
};
|
|
686
|
+
});
|
|
633
687
|
this.configs.ports.forEach((element) => {
|
|
634
688
|
this.ports[element] = "true"; // set ports as open
|
|
635
689
|
});
|
|
636
690
|
globalThis["waitForSelector"] = async (pageKey, sel) => {
|
|
637
|
-
|
|
638
|
-
|
|
691
|
+
const page = (await this.browser.pages()).find(
|
|
692
|
+
/* @ts-ignore:next-line */
|
|
693
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
639
694
|
await (page === null || page === void 0 ? void 0 : page.waitForSelector(sel));
|
|
640
695
|
};
|
|
641
696
|
globalThis["screencastStop"] = async (path) => {
|
|
642
697
|
return recorders[path].stop();
|
|
643
698
|
};
|
|
644
699
|
globalThis["closePage"] = async (pageKey) => {
|
|
645
|
-
const page = (await this.browser.pages()).find(
|
|
700
|
+
const page = (await this.browser.pages()).find(
|
|
701
|
+
/* @ts-ignore:next-line */
|
|
702
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
703
|
+
/* @ts-ignore:next-line */
|
|
646
704
|
return page.close();
|
|
647
705
|
};
|
|
648
|
-
// globalThis["closePage"] = (p) => {
|
|
649
|
-
// console.log("closePage", p);
|
|
650
|
-
// return p.close();
|
|
651
|
-
// };
|
|
652
706
|
globalThis["goto"] = async (pageKey, url) => {
|
|
653
|
-
const page = (await this.browser.pages()).find(
|
|
707
|
+
const page = (await this.browser.pages()).find(
|
|
708
|
+
/* @ts-ignore:next-line */
|
|
709
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
654
710
|
await (page === null || page === void 0 ? void 0 : page.goto(url));
|
|
655
711
|
return;
|
|
656
712
|
};
|
|
@@ -669,14 +725,9 @@ export class PM_Main extends PM {
|
|
|
669
725
|
return false;
|
|
670
726
|
};
|
|
671
727
|
globalThis["writeFileSync"] = (filepath, contents, testName) => {
|
|
672
|
-
|
|
673
|
-
// Create directories if they don't exist
|
|
674
|
-
const dir = path.dirname(filepath);
|
|
675
|
-
// console.log(testName, "mkdirSync", dir);
|
|
676
|
-
fs.mkdirSync(dir, {
|
|
728
|
+
fs.mkdirSync(path.dirname(filepath), {
|
|
677
729
|
recursive: true,
|
|
678
730
|
});
|
|
679
|
-
// console.log(testName, "mkdirSync2");
|
|
680
731
|
if (!files[testName]) {
|
|
681
732
|
files[testName] = new Set();
|
|
682
733
|
}
|
|
@@ -723,7 +774,9 @@ export class PM_Main extends PM {
|
|
|
723
774
|
// // page.evaluate(`window["screenshot done"]`);
|
|
724
775
|
// };
|
|
725
776
|
globalThis["customScreenShot"] = async (opts, pageKey, testName) => {
|
|
726
|
-
const page = (await this.browser.pages()).find(
|
|
777
|
+
const page = (await this.browser.pages()).find(
|
|
778
|
+
/* @ts-ignore:next-line */
|
|
779
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
727
780
|
const p = opts.path;
|
|
728
781
|
const dir = path.dirname(p);
|
|
729
782
|
fs.mkdirSync(dir, {
|
|
@@ -742,7 +795,9 @@ export class PM_Main extends PM {
|
|
|
742
795
|
return sPromise;
|
|
743
796
|
};
|
|
744
797
|
globalThis["screencast"] = async (opts, pageKey) => {
|
|
745
|
-
const page = (await this.browser.pages()).find(
|
|
798
|
+
const page = (await this.browser.pages()).find(
|
|
799
|
+
/* @ts-ignore:next-line */
|
|
800
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
746
801
|
const p = opts.path;
|
|
747
802
|
const dir = path.dirname(p);
|
|
748
803
|
fs.mkdirSync(dir, {
|
|
@@ -876,36 +931,14 @@ export class PM_Main extends PM {
|
|
|
876
931
|
async startPuppeteer(options, destfolder) {
|
|
877
932
|
this.browser = (await puppeteer.launch(options));
|
|
878
933
|
}
|
|
879
|
-
|
|
934
|
+
// goodbye = () => {
|
|
935
|
+
// this.browser.disconnect().then(() => {
|
|
936
|
+
// console.log("Goodbye");
|
|
937
|
+
// process.exit();
|
|
938
|
+
// });
|
|
939
|
+
// };
|
|
880
940
|
shutDown() {
|
|
881
|
-
console.log("shutting down...");
|
|
882
941
|
this.shutdownMode = true;
|
|
883
942
|
this.checkForShutdown();
|
|
884
943
|
}
|
|
885
944
|
}
|
|
886
|
-
async function writeFileAndCreateDir(filePath, data) {
|
|
887
|
-
const dirPath = path.dirname(filePath);
|
|
888
|
-
try {
|
|
889
|
-
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
890
|
-
await fs.appendFileSync(filePath, data);
|
|
891
|
-
}
|
|
892
|
-
catch (error) {
|
|
893
|
-
console.error(`Error writing file: ${error}`);
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
async function sha256(rawData) {
|
|
897
|
-
const data = typeof rawData === "object" ? JSON.stringify(rawData) : String(rawData);
|
|
898
|
-
const msgBuffer = new TextEncoder().encode(data);
|
|
899
|
-
const hashBuffer = await crypto.subtle.digest("SHA-256", msgBuffer);
|
|
900
|
-
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
901
|
-
return hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
902
|
-
}
|
|
903
|
-
function isValidUrl(string) {
|
|
904
|
-
try {
|
|
905
|
-
new URL(string);
|
|
906
|
-
return true;
|
|
907
|
-
}
|
|
908
|
-
catch (err) {
|
|
909
|
-
return false;
|
|
910
|
-
}
|
|
911
|
-
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import ReactDom from "react-dom/client";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
4
|
+
import "./style.css";
|
|
5
|
+
import { Footer } from "./Footer";
|
|
6
|
+
const BigBoard = () => {
|
|
7
|
+
const [configs, setConfigs] = useState();
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
(async () => {
|
|
10
|
+
fetch('/kokomoBay/docs/testeranto.json')
|
|
11
|
+
.then(response => response.json())
|
|
12
|
+
.then(json => {
|
|
13
|
+
setConfigs(json);
|
|
14
|
+
})
|
|
15
|
+
.catch(error => console.error(error));
|
|
16
|
+
})();
|
|
17
|
+
}, []);
|
|
18
|
+
const [bigBoard, setBigBoard] = useState({});
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
(async () => {
|
|
21
|
+
fetch('/kokomoBay/docs/bigBoard.json')
|
|
22
|
+
.then(response => response.json())
|
|
23
|
+
.then(json => {
|
|
24
|
+
setBigBoard(json);
|
|
25
|
+
})
|
|
26
|
+
.catch(error => console.error(error));
|
|
27
|
+
})();
|
|
28
|
+
}, []);
|
|
29
|
+
const [staticAnalysis, setStaticAnalysis] = useState({});
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
(async () => {
|
|
32
|
+
let accumulator = {};
|
|
33
|
+
for (const t of (configs || { tests: [] }).tests) {
|
|
34
|
+
accumulator[t[0]] = await (await fetch(`/kokomoBay/docs/${t[1]}/${t[0].split(".").slice(0, -1).join(".")}/lint_errors.txt`)).text();
|
|
35
|
+
}
|
|
36
|
+
setStaticAnalysis(accumulator);
|
|
37
|
+
})();
|
|
38
|
+
}, [configs, bigBoard]);
|
|
39
|
+
const [typeErrors, setTypeErrors] = useState({});
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
(async () => {
|
|
42
|
+
let accumulator = {};
|
|
43
|
+
for (const t of (configs || { tests: [] }).tests) {
|
|
44
|
+
accumulator[t[0]] = await (await fetch(`/kokomoBay/docs/${t[1]}/${t[0].split(".").slice(0, -1).join(".")}/type_errors.txt`)).text();
|
|
45
|
+
}
|
|
46
|
+
setTypeErrors(accumulator);
|
|
47
|
+
})();
|
|
48
|
+
}, [configs, bigBoard]);
|
|
49
|
+
const [bddErrors, setBddErrors] = useState({});
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
(async () => {
|
|
52
|
+
let accumulator = {};
|
|
53
|
+
for (const t of (configs || { tests: [] }).tests) {
|
|
54
|
+
accumulator[t[0]] = await (await fetch(`/kokomoBay/docs/${t[1]}/${t[0].split(".").slice(0, -1).join(".")}/bdd_errors.txt`)).text();
|
|
55
|
+
}
|
|
56
|
+
setBddErrors(accumulator);
|
|
57
|
+
})();
|
|
58
|
+
}, [configs, bigBoard]);
|
|
59
|
+
if (!configs || !staticAnalysis || !typeErrors || !bddErrors) {
|
|
60
|
+
return React.createElement("div", null, "loading...");
|
|
61
|
+
}
|
|
62
|
+
const collated = configs.tests.map((c) => {
|
|
63
|
+
return Object.assign(Object.assign({}, bigBoard[c[0]]), { name: c[0], runTime: c[1], tr: c[2], sidecars: c[3], staticAnalysis: staticAnalysis[c[0]], typeErrors: typeErrors[c[0]], bddErrors: bddErrors[c[0]] });
|
|
64
|
+
});
|
|
65
|
+
return React.createElement("div", null,
|
|
66
|
+
React.createElement("table", null,
|
|
67
|
+
React.createElement("tr", null,
|
|
68
|
+
React.createElement("td", null, "name"),
|
|
69
|
+
React.createElement("td", null, "run time"),
|
|
70
|
+
React.createElement("td", null, "BDD errors"),
|
|
71
|
+
React.createElement("td", null, "Lint errors"),
|
|
72
|
+
React.createElement("td", null, "Type errors"),
|
|
73
|
+
React.createElement("td", null, "prompt")),
|
|
74
|
+
...collated.map((c) => {
|
|
75
|
+
return React.createElement("tr", null,
|
|
76
|
+
React.createElement("td", null, c.name),
|
|
77
|
+
React.createElement("td", null, c.runTime),
|
|
78
|
+
React.createElement("td", null,
|
|
79
|
+
React.createElement("a", { href: `${c.runTime}/${c.name.split(".").slice(0, -1).join(".")}/littleBoard.html` }, c.bddErrors)),
|
|
80
|
+
React.createElement("td", null,
|
|
81
|
+
React.createElement("a", { href: `${c.runTime}/${c.name.split(".").slice(0, -1).join(".")}/lint_errors.json` }, c.staticAnalysis)),
|
|
82
|
+
React.createElement("td", null,
|
|
83
|
+
React.createElement("a", { href: `${c.runTime}/${c.name.split(".").slice(0, -1).join(".")}/type_errors.txt` }, c.typeErrors)),
|
|
84
|
+
React.createElement("td", null,
|
|
85
|
+
React.createElement("pre", null,
|
|
86
|
+
"aider --model deepseek/deepseek-chat --load ",
|
|
87
|
+
`docs/${c.runTime}/${c.name.split(".").slice(0, -1).join(".")}/prompt.txt`)));
|
|
88
|
+
})),
|
|
89
|
+
React.createElement(Footer, null));
|
|
90
|
+
};
|
|
91
|
+
document.addEventListener("DOMContentLoaded", function () {
|
|
92
|
+
const elem = document.getElementById("root");
|
|
93
|
+
if (elem) {
|
|
94
|
+
ReactDom.createRoot(elem).render(React.createElement(BigBoard, {}, []));
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
console.log("hello BigBoard!");
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import staticServer from "node-static";
|
|
2
|
+
import http from "http";
|
|
3
|
+
const main = async () => {
|
|
4
|
+
process.chdir("../"); // Navigate one level up
|
|
5
|
+
const fileServer = new staticServer.Server(".", {});
|
|
6
|
+
http
|
|
7
|
+
.createServer(function (request, response) {
|
|
8
|
+
request
|
|
9
|
+
.addListener("end", function () {
|
|
10
|
+
fileServer.serve(request, response);
|
|
11
|
+
})
|
|
12
|
+
.resume();
|
|
13
|
+
})
|
|
14
|
+
.listen(8080);
|
|
15
|
+
console.log("Server running on port 8080");
|
|
16
|
+
};
|
|
17
|
+
main();
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const testInterface = {
|
|
3
|
+
andWhen: async (s, whenCB) => {
|
|
4
|
+
await whenCB(s());
|
|
5
|
+
return new Promise((resolve, rej) => {
|
|
6
|
+
resolve(React.createElement(s));
|
|
7
|
+
});
|
|
8
|
+
},
|
|
9
|
+
butThen: async (subject, thenCB) => {
|
|
10
|
+
await thenCB(subject());
|
|
11
|
+
return new Promise((resolve, rej) => {
|
|
12
|
+
resolve(React.createElement(subject));
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
};
|
|
@@ -5,34 +5,21 @@ import Testeranto from "../../../Node.js";
|
|
|
5
5
|
export { renderToStaticMarkup, renderToStaticNodeStream, Stream };
|
|
6
6
|
export default (testImplementations, testSpecifications, testInput) => {
|
|
7
7
|
return Testeranto(testInput, testSpecifications, testImplementations, {
|
|
8
|
-
|
|
9
|
-
// prototype,
|
|
10
|
-
// artificer
|
|
11
|
-
// ): Promise<ISubject> => {
|
|
12
|
-
// return await new Promise((resolve, rej) => {
|
|
13
|
-
// const elem = document.getElementById("root");
|
|
14
|
-
// if (elem) {
|
|
15
|
-
// resolve({ htmlElement: elem });
|
|
16
|
-
// }
|
|
17
|
-
// })
|
|
18
|
-
// },
|
|
19
|
-
beforeEach: async (reactComponent, ndx, testRsource, artificer) => {
|
|
8
|
+
beforeEach: async () => {
|
|
20
9
|
return new Promise((resolve, rej) => {
|
|
21
|
-
// Ignore these type errors
|
|
22
10
|
resolve(createElement(testInput));
|
|
23
11
|
});
|
|
24
12
|
},
|
|
25
13
|
andWhen: async function (s, whenCB) {
|
|
26
14
|
return whenCB(s);
|
|
27
|
-
// return s
|
|
28
15
|
},
|
|
29
16
|
butThen: async function (s) {
|
|
30
17
|
return s;
|
|
31
18
|
},
|
|
32
|
-
afterEach: async function (
|
|
19
|
+
afterEach: async function () {
|
|
33
20
|
return {};
|
|
34
21
|
},
|
|
35
|
-
afterAll: (
|
|
22
|
+
afterAll: () => {
|
|
36
23
|
return;
|
|
37
24
|
},
|
|
38
25
|
});
|