testeranto 0.94.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 -33
- package/dist/common/{src/Init.js → Init.js} +28 -0
- package/dist/common/{src/PM → PM}/main.js +272 -111
- package/dist/common/{src/PM → PM}/node.js +20 -5
- package/dist/common/{src/PM → PM}/web.js +19 -4
- 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/jsx/node.js +1 -6
- 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 +3 -14
- package/dist/common/{src/esbuildConfigs → esbuildConfigs}/web.js +3 -14
- package/dist/common/{src/init-docs.js → init-docs.js} +20 -10
- package/dist/common/{src/lib → lib}/abstractBase.js +20 -92
- 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/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 +253 -102
- package/dist/module/{src/PM → PM}/node.js +20 -5
- package/dist/module/{src/PM → PM}/web.js +19 -4
- 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/jsx/node.js +1 -6
- 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 +3 -14
- package/dist/module/{src/esbuildConfigs → esbuildConfigs}/web.js +3 -14
- package/dist/module/{src/init-docs.js → init-docs.js} +1 -1
- package/dist/module/{src/lib → lib}/abstractBase.js +20 -92
- 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/{run-tests.mjs → run.mjs} +501 -182
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/Node.d.ts +12 -0
- package/dist/types/{src/PM → PM}/index.d.ts +11 -3
- package/dist/types/{src/PM → PM}/main.d.ts +24 -15
- package/dist/types/{src/PM → PM}/node.d.ts +11 -6
- package/dist/types/{src/PM → PM}/web.d.ts +11 -7
- 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/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 +50 -39
- package/src/Footer.tsx +4 -0
- package/src/Init.ts +48 -0
- package/src/Node.ts +23 -17
- package/src/PM/index.ts +13 -9
- package/src/PM/main.ts +337 -139
- package/src/PM/node.ts +43 -8
- package/src/PM/web.ts +34 -6
- 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 +23 -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 +22 -5
- 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 +131 -129
- 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 -114
- package/src/esbuildConfigs/node.ts +7 -19
- package/src/esbuildConfigs/web.ts +6 -21
- package/src/init-docs.ts +2 -1
- package/src/lib/abstractBase.ts +140 -195
- 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 +40 -231
- 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/dist/module/src/Init.js +0 -40
- package/dist/common/src/Aider.js +0 -143
- package/dist/common/src/Project.js +0 -227
- package/dist/common/src/Puppeteer.js +0 -111
- package/dist/common/src/SubPackages/puppeteer.js +0 -21
- package/dist/common/src/build-tests.js +0 -39
- package/dist/common/src/esbuildConfigs/features.js +0 -14
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -87
- package/dist/common/src/esbuildConfigs/report.js +0 -14
- package/dist/common/src/esbuildConfigs/tests.js +0 -13
- package/dist/common/src/run-tests.js +0 -39
- package/dist/common/src/utils.js +0 -16
- package/dist/common/testeranto.js +0 -15
- package/dist/module/src/Aider.js +0 -136
- package/dist/module/src/Init.js +0 -35
- package/dist/module/src/Project.js +0 -220
- package/dist/module/src/Puppeteer.js +0 -106
- package/dist/module/src/SubPackages/puppeteer.js +0 -16
- package/dist/module/src/SubPackages/react/jsx/index.js +0 -27
- package/dist/module/src/build-tests.js +0 -11
- package/dist/module/src/esbuildConfigs/features.js +0 -12
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -82
- package/dist/module/src/esbuildConfigs/report.js +0 -14
- package/dist/module/src/esbuildConfigs/tests.js +0 -11
- package/dist/module/src/run-tests.js +0 -11
- package/dist/module/src/utils.js +0 -9
- package/dist/module/testeranto.js +0 -13
- package/dist/prebuild/build-tests.mjs +0 -553
- package/dist/types/dist/module/src/Init.d.ts +0 -2
- package/dist/types/src/Aider.d.ts +0 -1
- package/dist/types/src/Node.d.ts +0 -13
- package/dist/types/src/Project.d.ts +0 -12
- package/dist/types/src/Puppeteer.d.ts +0 -2
- 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 -8
- 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 -51
- package/dist/types/src/Web.d.ts +0 -10
- package/dist/types/src/defaultConfig.d.ts +0 -3
- package/dist/types/src/esbuildConfigs/features.d.ts +0 -4
- package/dist/types/src/esbuildConfigs/report.d.ts +0 -0
- package/dist/types/src/esbuildConfigs/tests.d.ts +0 -4
- 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 -68
- 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/Aider.ts +0 -168
- package/src/Project.ts +0 -292
- package/src/Puppeteer.ts +0 -143
- package/src/SubPackages/puppeteer.ts +0 -51
- package/src/build-tests.ts +0 -12
- package/src/esbuildConfigs/features.ts +0 -17
- package/src/esbuildConfigs/report.ts +0 -15
- package/src/esbuildConfigs/tests.ts +0 -14
- package/src/run-tests.ts +0 -12
- 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/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/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/lib → lib}/types.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/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/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/module/{src/lib → 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/build-tests.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/run-tests.d.ts → init-docs.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,47 +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
|
-
import { destinationOfRuntime } from "../utils.js";
|
|
7
7
|
const fileStreams3 = [];
|
|
8
8
|
const fPaths = [];
|
|
9
9
|
const files = {};
|
|
10
|
+
const recorders = {};
|
|
10
11
|
const screenshots = {};
|
|
12
|
+
const statusMessagePretty = (failures, test) => {
|
|
13
|
+
if (failures === 0) {
|
|
14
|
+
console.log(ansiC.green(ansiC.inverse(`> ${test} completed successfully`)));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.log(ansiC.red(ansiC.inverse(`> ${test} failed ${failures} times`)));
|
|
18
|
+
}
|
|
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
|
+
}
|
|
11
39
|
export class PM_Main extends PM {
|
|
12
40
|
constructor(configs) {
|
|
13
41
|
super();
|
|
14
42
|
this.shutdownMode = false;
|
|
43
|
+
this.bigBoard = {};
|
|
15
44
|
this.checkForShutdown = () => {
|
|
16
|
-
const anyRunning = Object.values(this.
|
|
45
|
+
const anyRunning = Object.values(this.bigBoard).filter((x) => x.status === "running")
|
|
46
|
+
.length > 0;
|
|
17
47
|
if (anyRunning) {
|
|
18
48
|
}
|
|
19
49
|
else {
|
|
20
50
|
this.browser.disconnect().then(() => {
|
|
21
|
-
|
|
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"));
|
|
22
74
|
process.exit();
|
|
23
75
|
});
|
|
24
76
|
}
|
|
25
77
|
};
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
78
|
+
this.testIsNowRunning = (src) => {
|
|
79
|
+
this.bigBoard[src].status = "running";
|
|
28
80
|
};
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
81
|
+
this.testIsNowDone = (src) => {
|
|
82
|
+
this.bigBoard[src].status = "waiting";
|
|
31
83
|
if (this.shutdownMode) {
|
|
32
84
|
this.checkForShutdown();
|
|
33
85
|
}
|
|
34
86
|
};
|
|
35
87
|
this.launchNode = async (src, dest) => {
|
|
36
|
-
console.log(
|
|
37
|
-
|
|
88
|
+
// console.log(ansiC.yellow(`! node, ${src}`));
|
|
89
|
+
console.log(ansiC.green(ansiC.inverse(`! node, ${src}`)));
|
|
90
|
+
this.testIsNowRunning(src);
|
|
38
91
|
const destFolder = dest.replace(".mjs", "");
|
|
39
92
|
let argz = "";
|
|
40
93
|
const testConfig = this.configs.tests.find((t) => {
|
|
41
94
|
return t[0] === src;
|
|
42
95
|
});
|
|
43
96
|
if (!testConfig) {
|
|
44
|
-
console.
|
|
97
|
+
console.log(ansiC.inverse("missing test config! Exiting ungracefully!"));
|
|
45
98
|
process.exit(-1);
|
|
46
99
|
}
|
|
47
100
|
const testConfigResource = testConfig[2];
|
|
@@ -80,32 +133,45 @@ export class PM_Main extends PM {
|
|
|
80
133
|
console.error("negative port makes no sense", src);
|
|
81
134
|
process.exit(-1);
|
|
82
135
|
}
|
|
83
|
-
const builtfile = dest
|
|
136
|
+
const builtfile = dest;
|
|
84
137
|
const webSideCares = [];
|
|
85
|
-
await Promise.all(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
138
|
+
// await Promise.all(
|
|
139
|
+
// testConfig[3].map(async (sidecar) => {
|
|
140
|
+
// if (sidecar[1] === "web") {
|
|
141
|
+
// const s = await this.launchWebSideCar(
|
|
142
|
+
// sidecar[0],
|
|
143
|
+
// destinationOfRuntime(sidecar[0], "web", this.configs),
|
|
144
|
+
// sidecar
|
|
145
|
+
// );
|
|
146
|
+
// webSideCares.push(s);
|
|
147
|
+
// return s;
|
|
148
|
+
// }
|
|
149
|
+
// if (sidecar[1] === "node") {
|
|
150
|
+
// return this.launchNodeSideCar(
|
|
151
|
+
// sidecar[0],
|
|
152
|
+
// destinationOfRuntime(sidecar[0], "node", this.configs),
|
|
153
|
+
// sidecar
|
|
154
|
+
// );
|
|
155
|
+
// }
|
|
156
|
+
// })
|
|
157
|
+
// );
|
|
95
158
|
this.server[builtfile] = await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
|
|
96
159
|
return module.default.then((defaultModule) => {
|
|
97
160
|
defaultModule
|
|
98
161
|
.receiveTestResourceConfig(argz)
|
|
99
162
|
.then(async ({ features, failed }) => {
|
|
100
|
-
this.receiveFeatures(features, destFolder);
|
|
101
|
-
console.log(`${src} completed with ${failed} errors`);
|
|
163
|
+
this.receiveFeatures(features, destFolder, src);
|
|
164
|
+
// console.log(`${src} completed with ${failed} errors`);
|
|
165
|
+
statusMessagePretty(failed, src);
|
|
166
|
+
this.receiveExitCode(src, failed);
|
|
102
167
|
})
|
|
103
168
|
.catch((e) => {
|
|
104
|
-
console.log(`${src} errored with
|
|
169
|
+
console.log(ansiC.red(ansiC.inverse(`${src} errored with: ${e}`)));
|
|
170
|
+
// console.log(reset, `${src} errored with`, e);
|
|
105
171
|
})
|
|
106
172
|
.finally(() => {
|
|
107
173
|
webSideCares.forEach((webSideCar) => webSideCar.close());
|
|
108
|
-
this.
|
|
174
|
+
this.testIsNowDone(src);
|
|
109
175
|
});
|
|
110
176
|
});
|
|
111
177
|
});
|
|
@@ -118,7 +184,8 @@ export class PM_Main extends PM {
|
|
|
118
184
|
};
|
|
119
185
|
this.launchWebSideCar = async (src, dest, testConfig) => {
|
|
120
186
|
const d = dest + ".mjs";
|
|
121
|
-
console.log("launchWebSideCar", src, dest, d);
|
|
187
|
+
// console.log(green, "launchWebSideCar", src, dest, d);
|
|
188
|
+
console.log(ansiC.green(ansiC.inverse(`launchWebSideCar ${src}`)));
|
|
122
189
|
const destFolder = dest.replace(".mjs", "");
|
|
123
190
|
// const webArgz = JSON.stringify({
|
|
124
191
|
// name: dest,
|
|
@@ -225,7 +292,8 @@ export class PM_Main extends PM {
|
|
|
225
292
|
};
|
|
226
293
|
this.launchNodeSideCar = async (src, dest, testConfig) => {
|
|
227
294
|
const d = dest + ".mjs";
|
|
228
|
-
console.log("launchNodeSideCar", src, dest, d);
|
|
295
|
+
// console.log(green, "launchNodeSideCar", src, dest, d);
|
|
296
|
+
console.log(ansiC.green(ansiC.inverse(`launchNodeSideCar ${src}`)));
|
|
229
297
|
const destFolder = dest.replace(".mjs", "");
|
|
230
298
|
let argz = "";
|
|
231
299
|
const testConfigResource = testConfig[2];
|
|
@@ -294,14 +362,19 @@ export class PM_Main extends PM {
|
|
|
294
362
|
}
|
|
295
363
|
}
|
|
296
364
|
};
|
|
297
|
-
this.launchWeb = (t, dest
|
|
298
|
-
console.log("
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
365
|
+
this.launchWeb = (t, dest) => {
|
|
366
|
+
// console.log(green, "! web", t);
|
|
367
|
+
console.log(ansiC.green(ansiC.inverse(`! web ${t}`)));
|
|
368
|
+
this.testIsNowRunning(t);
|
|
369
|
+
// sidecars.map((sidecar) => {
|
|
370
|
+
// if (sidecar[1] === "node") {
|
|
371
|
+
// return this.launchNodeSideCar(
|
|
372
|
+
// sidecar[0],
|
|
373
|
+
// destinationOfRuntime(sidecar[0], "node", this.configs),
|
|
374
|
+
// sidecar
|
|
375
|
+
// );
|
|
376
|
+
// }
|
|
377
|
+
// });
|
|
305
378
|
const destFolder = dest.replace(".mjs", "");
|
|
306
379
|
const webArgz = JSON.stringify({
|
|
307
380
|
name: dest,
|
|
@@ -309,10 +382,11 @@ export class PM_Main extends PM {
|
|
|
309
382
|
fs: destFolder,
|
|
310
383
|
browserWSEndpoint: this.browser.wsEndpoint(),
|
|
311
384
|
});
|
|
385
|
+
const d = `${dest}?cacheBust=${Date.now()}`;
|
|
312
386
|
const evaluation = `
|
|
313
|
-
|
|
314
|
-
import('${
|
|
315
|
-
|
|
387
|
+
|
|
388
|
+
import('${d}').then(async (x) => {
|
|
389
|
+
|
|
316
390
|
try {
|
|
317
391
|
return await (await x.default).receiveTestResourceConfig(${webArgz})
|
|
318
392
|
} catch (e) {
|
|
@@ -321,8 +395,8 @@ export class PM_Main extends PM {
|
|
|
321
395
|
})`;
|
|
322
396
|
const fileStreams2 = [];
|
|
323
397
|
const doneFileStream2 = [];
|
|
324
|
-
const stdoutStream = fs.createWriteStream(`${
|
|
325
|
-
const stderrStream = fs.createWriteStream(`${
|
|
398
|
+
const stdoutStream = fs.createWriteStream(`${destFolder}/stdout.log`);
|
|
399
|
+
const stderrStream = fs.createWriteStream(`${destFolder}/stderr.log`);
|
|
326
400
|
this.browser
|
|
327
401
|
.newPage()
|
|
328
402
|
.then((page) => {
|
|
@@ -486,12 +560,12 @@ export class PM_Main extends PM {
|
|
|
486
560
|
files[t] = new Set();
|
|
487
561
|
}
|
|
488
562
|
// files[t].add(filepath);
|
|
489
|
-
fs.writeFileSync(
|
|
563
|
+
fs.writeFileSync(destFolder + "/manifest.json", JSON.stringify(Array.from(files[t])));
|
|
490
564
|
delete files[t];
|
|
491
565
|
Promise.all(screenshots[t] || []).then(() => {
|
|
492
566
|
delete screenshots[t];
|
|
493
567
|
page.close();
|
|
494
|
-
this.
|
|
568
|
+
this.testIsNowDone(t);
|
|
495
569
|
stderrStream.close();
|
|
496
570
|
stdoutStream.close();
|
|
497
571
|
});
|
|
@@ -509,7 +583,7 @@ export class PM_Main extends PM {
|
|
|
509
583
|
}
|
|
510
584
|
console.debug(`Error from message ${t}: [${err.message}] `);
|
|
511
585
|
stderrStream.write(err.message);
|
|
512
|
-
|
|
586
|
+
close();
|
|
513
587
|
});
|
|
514
588
|
page.on("console", (log) => {
|
|
515
589
|
// console.debug(`Log from ${t}: [${log.text()}] `);
|
|
@@ -521,23 +595,28 @@ export class PM_Main extends PM {
|
|
|
521
595
|
stdoutStream.write(JSON.stringify(log.location()));
|
|
522
596
|
stdoutStream.write(JSON.stringify(log.stackTrace()));
|
|
523
597
|
});
|
|
524
|
-
await page.goto(`file://${`${
|
|
598
|
+
await page.goto(`file://${`${destFolder}.html`}`, {});
|
|
525
599
|
await page
|
|
526
600
|
.evaluate(evaluation)
|
|
527
601
|
.then(async ({ failed, features }) => {
|
|
528
|
-
this.receiveFeatures(features, destFolder);
|
|
529
|
-
console.log(`${t} completed with ${failed} errors`);
|
|
602
|
+
this.receiveFeatures(features, destFolder, t);
|
|
603
|
+
// console.log(`${t} completed with ${failed} errors`);
|
|
604
|
+
statusMessagePretty(failed, t);
|
|
605
|
+
this.receiveExitCode(t, failed);
|
|
530
606
|
})
|
|
531
607
|
.catch((e) => {
|
|
532
|
-
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}`)));
|
|
533
610
|
})
|
|
534
611
|
.finally(() => {
|
|
612
|
+
// this.testIsNowDone(t);
|
|
535
613
|
close();
|
|
536
614
|
});
|
|
537
615
|
return page;
|
|
538
616
|
});
|
|
539
617
|
};
|
|
540
|
-
this.receiveFeatures = (features, destFolder) => {
|
|
618
|
+
this.receiveFeatures = (features, destFolder, srcTest) => {
|
|
619
|
+
const featureDestination = path.resolve(process.cwd(), "docs", "features", "strings", srcTest.split(".").slice(0, -1).join(".") + ".features.txt");
|
|
541
620
|
features
|
|
542
621
|
.reduce(async (mm, featureStringKey) => {
|
|
543
622
|
const accum = await mm;
|
|
@@ -556,45 +635,87 @@ export class PM_Main extends PM {
|
|
|
556
635
|
// throw error;
|
|
557
636
|
}
|
|
558
637
|
}
|
|
559
|
-
fs.symlink(u.pathname, newPath, (err) => {
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
accum.push(newPath);
|
|
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
|
+
// });
|
|
645
|
+
accum.files.push(newPath);
|
|
568
646
|
}
|
|
569
647
|
else if (u.protocol === "http:" || u.protocol === "https:") {
|
|
570
648
|
const newPath = `${process.cwd()}/docs/features/external${u.hostname}${u.pathname}`;
|
|
571
649
|
const body = await this.configs.featureIngestor(featureStringKey);
|
|
572
650
|
writeFileAndCreateDir(newPath, body);
|
|
573
|
-
accum.push(newPath);
|
|
651
|
+
accum.files.push(newPath);
|
|
574
652
|
}
|
|
575
653
|
}
|
|
576
654
|
else {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
655
|
+
await fs.promises.mkdir(path.dirname(featureDestination), {
|
|
656
|
+
recursive: true,
|
|
657
|
+
});
|
|
658
|
+
accum.strings.push(featureStringKey);
|
|
580
659
|
}
|
|
581
660
|
return accum;
|
|
582
|
-
}, Promise.resolve([]))
|
|
583
|
-
.then((
|
|
584
|
-
|
|
661
|
+
}, Promise.resolve({ files: [], strings: [] }))
|
|
662
|
+
.then(({ files, strings }) => {
|
|
663
|
+
// writeFileAndCreateDir(`${featureDestination}`, JSON.stringify(strings));
|
|
664
|
+
fs.writeFileSync(`${destFolder}/featurePrompt.txt`, files
|
|
585
665
|
.map((f) => {
|
|
586
666
|
return `/read ${f}`;
|
|
587
667
|
})
|
|
588
668
|
.join("\n"));
|
|
589
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));
|
|
590
678
|
};
|
|
591
679
|
this.server = {};
|
|
592
680
|
this.configs = configs;
|
|
593
681
|
this.ports = {};
|
|
594
|
-
this.
|
|
682
|
+
this.configs.tests.forEach(([t]) => {
|
|
683
|
+
this.bigBoard[t] = {
|
|
684
|
+
status: "?",
|
|
685
|
+
};
|
|
686
|
+
});
|
|
595
687
|
this.configs.ports.forEach((element) => {
|
|
596
688
|
this.ports[element] = "true"; // set ports as open
|
|
597
689
|
});
|
|
690
|
+
globalThis["waitForSelector"] = async (pageKey, sel) => {
|
|
691
|
+
const page = (await this.browser.pages()).find(
|
|
692
|
+
/* @ts-ignore:next-line */
|
|
693
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
694
|
+
await (page === null || page === void 0 ? void 0 : page.waitForSelector(sel));
|
|
695
|
+
};
|
|
696
|
+
globalThis["screencastStop"] = async (path) => {
|
|
697
|
+
return recorders[path].stop();
|
|
698
|
+
};
|
|
699
|
+
globalThis["closePage"] = async (pageKey) => {
|
|
700
|
+
const page = (await this.browser.pages()).find(
|
|
701
|
+
/* @ts-ignore:next-line */
|
|
702
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
703
|
+
/* @ts-ignore:next-line */
|
|
704
|
+
return page.close();
|
|
705
|
+
};
|
|
706
|
+
globalThis["goto"] = async (pageKey, url) => {
|
|
707
|
+
const page = (await this.browser.pages()).find(
|
|
708
|
+
/* @ts-ignore:next-line */
|
|
709
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
710
|
+
await (page === null || page === void 0 ? void 0 : page.goto(url));
|
|
711
|
+
return;
|
|
712
|
+
};
|
|
713
|
+
globalThis["newPage"] = () => {
|
|
714
|
+
return this.browser.newPage();
|
|
715
|
+
};
|
|
716
|
+
globalThis["pages"] = () => {
|
|
717
|
+
return this.browser.pages();
|
|
718
|
+
};
|
|
598
719
|
globalThis["mkdirSync"] = (fp) => {
|
|
599
720
|
if (!fs.existsSync(fp)) {
|
|
600
721
|
return fs.mkdirSync(fp, {
|
|
@@ -604,14 +725,9 @@ export class PM_Main extends PM {
|
|
|
604
725
|
return false;
|
|
605
726
|
};
|
|
606
727
|
globalThis["writeFileSync"] = (filepath, contents, testName) => {
|
|
607
|
-
|
|
608
|
-
// Create directories if they don't exist
|
|
609
|
-
const dir = path.dirname(filepath);
|
|
610
|
-
// console.log(testName, "mkdirSync", dir);
|
|
611
|
-
fs.mkdirSync(dir, {
|
|
728
|
+
fs.mkdirSync(path.dirname(filepath), {
|
|
612
729
|
recursive: true,
|
|
613
730
|
});
|
|
614
|
-
// console.log(testName, "mkdirSync2");
|
|
615
731
|
if (!files[testName]) {
|
|
616
732
|
files[testName] = new Set();
|
|
617
733
|
}
|
|
@@ -634,7 +750,33 @@ export class PM_Main extends PM {
|
|
|
634
750
|
globalThis["end"] = (uid) => {
|
|
635
751
|
fileStreams3[uid].end();
|
|
636
752
|
};
|
|
637
|
-
|
|
753
|
+
// async (ssOpts: ScreenshotOptions, testName: string) => {
|
|
754
|
+
// const p = ssOpts.path as string;
|
|
755
|
+
// const dir = path.dirname(p);
|
|
756
|
+
// fs.mkdirSync(dir, {
|
|
757
|
+
// recursive: true,
|
|
758
|
+
// });
|
|
759
|
+
// if (!files[testName]) {
|
|
760
|
+
// files[testName] = new Set();
|
|
761
|
+
// }
|
|
762
|
+
// files[testName].add(ssOpts.path as string);
|
|
763
|
+
// const sPromise = page.screenshot({
|
|
764
|
+
// ...ssOpts,
|
|
765
|
+
// path: p,
|
|
766
|
+
// });
|
|
767
|
+
// if (!screenshots[testName]) {
|
|
768
|
+
// screenshots[testName] = [];
|
|
769
|
+
// }
|
|
770
|
+
// screenshots[testName].push(sPromise);
|
|
771
|
+
// // sPromise.then(())
|
|
772
|
+
// await sPromise;
|
|
773
|
+
// return sPromise;
|
|
774
|
+
// // page.evaluate(`window["screenshot done"]`);
|
|
775
|
+
// };
|
|
776
|
+
globalThis["customScreenShot"] = async (opts, pageKey, testName) => {
|
|
777
|
+
const page = (await this.browser.pages()).find(
|
|
778
|
+
/* @ts-ignore:next-line */
|
|
779
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
638
780
|
const p = opts.path;
|
|
639
781
|
const dir = path.dirname(p);
|
|
640
782
|
fs.mkdirSync(dir, {
|
|
@@ -652,6 +794,19 @@ export class PM_Main extends PM {
|
|
|
652
794
|
await sPromise;
|
|
653
795
|
return sPromise;
|
|
654
796
|
};
|
|
797
|
+
globalThis["screencast"] = async (opts, pageKey) => {
|
|
798
|
+
const page = (await this.browser.pages()).find(
|
|
799
|
+
/* @ts-ignore:next-line */
|
|
800
|
+
(p) => p.mainFrame()._id === pageKey);
|
|
801
|
+
const p = opts.path;
|
|
802
|
+
const dir = path.dirname(p);
|
|
803
|
+
fs.mkdirSync(dir, {
|
|
804
|
+
recursive: true,
|
|
805
|
+
});
|
|
806
|
+
const recorder = await (page === null || page === void 0 ? void 0 : page.screencast(Object.assign(Object.assign({}, opts), { path: p })));
|
|
807
|
+
recorders[opts.path] = recorder;
|
|
808
|
+
return opts.path;
|
|
809
|
+
};
|
|
655
810
|
// globalThis["customclose"] = (p: string, testName: string) => {
|
|
656
811
|
// if (!files[testName]) {
|
|
657
812
|
// files[testName] = new Set();
|
|
@@ -663,13 +818,28 @@ export class PM_Main extends PM {
|
|
|
663
818
|
// delete files[testName];
|
|
664
819
|
// };
|
|
665
820
|
}
|
|
821
|
+
customclose() {
|
|
822
|
+
throw new Error("Method not implemented.");
|
|
823
|
+
}
|
|
824
|
+
waitForSelector(p, s) {
|
|
825
|
+
throw new Error("Method not implemented.");
|
|
826
|
+
}
|
|
827
|
+
closePage(p) {
|
|
828
|
+
throw new Error("Method not implemented.");
|
|
829
|
+
}
|
|
830
|
+
newPage() {
|
|
831
|
+
throw new Error("Method not implemented.");
|
|
832
|
+
}
|
|
833
|
+
goto(p, url) {
|
|
834
|
+
throw new Error("Method not implemented.");
|
|
835
|
+
}
|
|
666
836
|
$(selector) {
|
|
667
837
|
throw new Error("Method not implemented.");
|
|
668
838
|
}
|
|
669
839
|
screencast(opts) {
|
|
670
840
|
throw new Error("Method not implemented.");
|
|
671
841
|
}
|
|
672
|
-
customScreenShot(opts) {
|
|
842
|
+
customScreenShot(opts, cdpPage) {
|
|
673
843
|
throw new Error("Method not implemented.");
|
|
674
844
|
}
|
|
675
845
|
end(accessObject) {
|
|
@@ -754,40 +924,21 @@ export class PM_Main extends PM {
|
|
|
754
924
|
isDisabled(selector) {
|
|
755
925
|
throw new Error("Method not implemented.");
|
|
756
926
|
}
|
|
927
|
+
screencastStop(s) {
|
|
928
|
+
throw new Error("Method not implemented.");
|
|
929
|
+
}
|
|
757
930
|
////////////////////////////////////////////////////////////////////////////////
|
|
758
931
|
async startPuppeteer(options, destfolder) {
|
|
759
932
|
this.browser = (await puppeteer.launch(options));
|
|
760
933
|
}
|
|
761
|
-
|
|
934
|
+
// goodbye = () => {
|
|
935
|
+
// this.browser.disconnect().then(() => {
|
|
936
|
+
// console.log("Goodbye");
|
|
937
|
+
// process.exit();
|
|
938
|
+
// });
|
|
939
|
+
// };
|
|
762
940
|
shutDown() {
|
|
763
|
-
console.log("shutting down...");
|
|
764
941
|
this.shutdownMode = true;
|
|
765
942
|
this.checkForShutdown();
|
|
766
943
|
}
|
|
767
944
|
}
|
|
768
|
-
async function writeFileAndCreateDir(filePath, data) {
|
|
769
|
-
const dirPath = path.dirname(filePath);
|
|
770
|
-
try {
|
|
771
|
-
await fs.promises.mkdir(dirPath, { recursive: true });
|
|
772
|
-
await fs.promises.writeFile(filePath, data);
|
|
773
|
-
}
|
|
774
|
-
catch (error) {
|
|
775
|
-
console.error(`Error writing file: ${error}`);
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
async function sha256(rawData) {
|
|
779
|
-
const data = typeof rawData === "object" ? JSON.stringify(rawData) : String(rawData);
|
|
780
|
-
const msgBuffer = new TextEncoder().encode(data);
|
|
781
|
-
const hashBuffer = await crypto.subtle.digest("SHA-256", msgBuffer);
|
|
782
|
-
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
783
|
-
return hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
784
|
-
}
|
|
785
|
-
function isValidUrl(string) {
|
|
786
|
-
try {
|
|
787
|
-
new URL(string);
|
|
788
|
-
return true;
|
|
789
|
-
}
|
|
790
|
-
catch (err) {
|
|
791
|
-
return false;
|
|
792
|
-
}
|
|
793
|
-
}
|