testeranto 0.219.11 → 0.219.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/src/Types.js +61 -0
- package/dist/common/src/esbuildConfigs/index.js +2 -1
- package/dist/common/src/server/runtimes/node/docker.js +7 -6
- package/dist/common/src/server/runtimes/node/esbuild.js +18 -18
- package/dist/common/src/server/runtimes/node/node.js +12 -8
- package/dist/common/src/server/serverClasees/Server_Base.js +2 -1
- package/dist/common/src/server/serverClasees/Server_Docker.js +81 -99
- package/dist/common/src/testeranto.js +29 -31
- package/dist/common/testeranto/runtimes/node/node.js +2 -1
- package/dist/common/testeranto/testeranto.js +70 -0
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/Types.js +61 -0
- package/dist/module/src/esbuildConfigs/index.js +2 -1
- package/dist/module/src/server/runtimes/node/docker.js +7 -6
- package/dist/module/src/server/runtimes/node/esbuild.js +18 -18
- package/dist/module/src/server/runtimes/node/node.js +12 -8
- package/dist/module/src/server/serverClasees/Server_Base.js +2 -1
- package/dist/module/src/server/serverClasees/Server_Docker.js +81 -99
- package/dist/module/src/testeranto.js +29 -28
- package/dist/module/testeranto/runtimes/node/node.js +2 -1
- package/dist/module/testeranto/testeranto.js +68 -0
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/{chunk-MU5PJQAO.mjs → chunk-QLT7PNPK.mjs} +3 -3
- package/dist/prebuild/server/runtimes/node/node.mjs +20 -21
- package/dist/prebuild/server/runtimes/web/web.mjs +1 -1
- package/dist/prebuild/testeranto-6SAYRVSE.mjs +72 -0
- package/dist/prebuild/testeranto.mjs +75 -108
- package/dist/types/{Types.d.ts → src/Types.d.ts} +14 -79
- package/dist/types/src/esbuildConfigs/index.d.ts +3 -0
- package/dist/types/{server → src/server}/runtimes/golang/docker.d.ts +2 -2
- package/dist/types/src/server/runtimes/node/docker.d.ts +14 -0
- package/dist/types/src/server/runtimes/node/esbuild.d.ts +4 -0
- package/dist/types/{server → src/server}/serverClasees/Server.d.ts +2 -2
- package/dist/types/{server → src/server}/serverClasees/Server_Base.d.ts +3 -3
- package/dist/types/{server → src/server}/serverClasees/Server_Docker.d.ts +2 -2
- package/dist/types/{server → src/server}/serverClasees/Server_HTTP.d.ts +2 -2
- package/dist/types/{server → src/server}/serverClasees/Server_WS.d.ts +2 -2
- package/dist/types/testeranto/testeranto.d.ts +3 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/Types.ts +132 -69
- package/src/esbuildConfigs/index.ts +4 -3
- package/src/lib/pitono/pyproject.toml +1 -1
- package/src/server/runtimes/golang/docker.ts +2 -2
- package/src/server/runtimes/node/docker.ts +10 -7
- package/src/server/runtimes/node/esbuild.ts +21 -19
- package/src/server/runtimes/node/node.ts +14 -9
- package/src/server/serverClasees/Server.ts +3 -2
- package/src/server/serverClasees/Server_Base.ts +7 -6
- package/src/server/serverClasees/Server_Docker.ts +105 -111
- package/src/server/serverClasees/Server_HTTP.ts +2 -2
- package/src/server/serverClasees/Server_WS.ts +2 -2
- package/src/testeranto.ts +37 -32
- package/testeranto/bundles/allTests/node/{Node-JOOBJDHW.mjs → Node-MSIIDKGC.mjs} +64 -28
- package/testeranto/docker-compose.yml +34 -74
- package/testeranto/runtimes/node/node.Dockerfile +0 -1
- package/testeranto/runtimes/node/node.ts +2 -1
- package/testeranto/testeranto.ts +90 -0
- package/tsconfig.json +1 -1
- package/allTests.ts +0 -52
- package/dist/common/allTests.js +0 -39
- package/dist/module/allTests.js +0 -37
- package/dist/types/esbuildConfigs/index.d.ts +0 -4
- package/dist/types/server/runtimes/node/docker.d.ts +0 -14
- package/dist/types/server/runtimes/node/esbuild.d.ts +0 -4
- /package/dist/types/{Init.d.ts → src/Init.d.ts} +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/consoleDetectorPlugin.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/eslint-formatter-testeranto.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/featuresPlugin.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/nativeImportDetectorPlugin.d.ts +0 -0
- /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/rebuildPlugin.d.ts +0 -0
- /package/dist/types/{init-docs.d.ts → src/init-docs.d.ts} +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/BaseGiven.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/BaseSuite.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/BaseThen.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/BaseTiposkripto.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/BaseWhen.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/CoreTypes.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/Node.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/Tiposkripto.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/Types.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/Web.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/MockGiven.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/MockThen.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/MockWhen.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/adapter.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/implementation.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/index.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/specification.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/abstractBase.test/types.d.ts +0 -0
- /package/dist/types/{lib → src/lib}/tiposkripto/index.d.ts +0 -0
- /package/dist/types/{runtimes.d.ts → src/runtimes.d.ts} +0 -0
- /package/dist/types/{server → src/server}/aider/configParser.d.ts +0 -0
- /package/dist/types/{server → src/server}/aider/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/getRunnables.d.ts +0 -0
- /package/dist/types/{server → src/server}/htmlTemplate.d.ts +0 -0
- /package/dist/types/{server → src/server}/nodeVersion.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/common.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/java/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/node/node.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/python/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/ruby/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/rust/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/web/docker.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/web/esbuild.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/web/hoist.d.ts +0 -0
- /package/dist/types/{server → src/server}/runtimes/web/web.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverClasees/Server_FS.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverManagers/DockerManager.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverManagers/HttpManager.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverManagers/WsManager.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverManagers/fs.d.ts +0 -0
- /package/dist/types/{server → src/server}/serverManagers/tcp.d.ts +0 -0
- /package/dist/types/{server → src/server}/types.d.ts +0 -0
- /package/dist/types/{testeranto.d.ts → src/testeranto.d.ts} +0 -0
- /package/dist/types/{vscode → src/vscode}/TerminalManager.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/TestTreeItem.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/extension.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/providers/FeaturesTreeDataProvider.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/providers/FileTreeDataProvider.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/providers/ProcessesTreeDataProvider.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/providers/ResultsTreeDataProvider.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/providers/TestTreeDataProvider.d.ts +0 -0
- /package/dist/types/{vscode → src/vscode}/types.d.ts +0 -0
- /package/testeranto/{testeranto.yml → testeranto-deprecateed.yml} +0 -0
|
@@ -100,7 +100,7 @@ var esbuildConfigs_default = (config) => {
|
|
|
100
100
|
outbase: ".",
|
|
101
101
|
jsx: "transform",
|
|
102
102
|
bundle: true,
|
|
103
|
-
minify: config.minify === true,
|
|
103
|
+
// minify: config.minify === true,
|
|
104
104
|
write: true,
|
|
105
105
|
loader: {
|
|
106
106
|
".js": "jsx",
|
|
@@ -154,9 +154,9 @@ var rebuildPlugin_default = (r) => {
|
|
|
154
154
|
};
|
|
155
155
|
|
|
156
156
|
export {
|
|
157
|
+
processMetafile,
|
|
157
158
|
featuresPlugin_default,
|
|
158
159
|
esbuildConfigs_default,
|
|
159
160
|
inputFilesPlugin_default,
|
|
160
|
-
rebuildPlugin_default
|
|
161
|
-
processMetafile
|
|
161
|
+
rebuildPlugin_default
|
|
162
162
|
};
|
|
@@ -4,30 +4,25 @@ import {
|
|
|
4
4
|
inputFilesPlugin_default,
|
|
5
5
|
processMetafile,
|
|
6
6
|
rebuildPlugin_default
|
|
7
|
-
} from "../../../chunk-
|
|
7
|
+
} from "../../../chunk-QLT7PNPK.mjs";
|
|
8
8
|
|
|
9
9
|
// src/server/runtimes/node/node.ts
|
|
10
10
|
import esbuild from "esbuild";
|
|
11
11
|
|
|
12
12
|
// src/server/runtimes/node/esbuild.ts
|
|
13
|
-
var absoluteBundlesDir = (
|
|
13
|
+
var absoluteBundlesDir = () => {
|
|
14
14
|
return "./testeranto/bundles/allTests/node/";
|
|
15
15
|
};
|
|
16
|
-
var esbuild_default = (
|
|
17
|
-
console.log("
|
|
18
|
-
|
|
19
|
-
if (projectConfig.node?.tests) {
|
|
20
|
-
entrypoints = Object.keys(projectConfig.node.tests);
|
|
21
|
-
} else {
|
|
22
|
-
throw "projectConfig.node.tests should exist";
|
|
23
|
-
}
|
|
16
|
+
var esbuild_default = (nodeConfig, testName2, projectConfig) => {
|
|
17
|
+
console.log("esbuild", testName2, projectConfig);
|
|
18
|
+
const entryPoints = projectConfig.runtimes[testName2].tests;
|
|
24
19
|
const { inputFilesPluginFactory, register } = inputFilesPlugin_default(
|
|
25
20
|
"node",
|
|
26
21
|
testName2
|
|
27
22
|
);
|
|
28
23
|
return {
|
|
29
|
-
...esbuildConfigs_default(
|
|
30
|
-
outdir: absoluteBundlesDir(
|
|
24
|
+
...esbuildConfigs_default(nodeConfig),
|
|
25
|
+
outdir: absoluteBundlesDir(),
|
|
31
26
|
outbase: ".",
|
|
32
27
|
// Preserve directory structure relative to outdir
|
|
33
28
|
metafile: true,
|
|
@@ -43,35 +38,39 @@ var esbuild_default = (projectConfig, testName2) => {
|
|
|
43
38
|
absWorkingDir: process.cwd(),
|
|
44
39
|
platform: "node",
|
|
45
40
|
packages: "external",
|
|
46
|
-
entryPoints
|
|
41
|
+
entryPoints,
|
|
47
42
|
plugins: [
|
|
48
43
|
featuresPlugin_default,
|
|
49
44
|
inputFilesPluginFactory,
|
|
50
45
|
rebuildPlugin_default("node"),
|
|
51
|
-
...
|
|
46
|
+
...nodeConfig.plugins?.map((p) => p(register, entryPoints)) || []
|
|
52
47
|
]
|
|
53
48
|
};
|
|
54
49
|
};
|
|
55
50
|
|
|
56
51
|
// src/server/runtimes/node/node.ts
|
|
57
52
|
console.log(`[NODE BUILDER] hello: ${process.argv}`);
|
|
58
|
-
var
|
|
59
|
-
var
|
|
53
|
+
var projectConfigPath = process.argv[2];
|
|
54
|
+
var nodeConfigPath = process.argv[3];
|
|
55
|
+
var testName = process.argv[4];
|
|
56
|
+
console.log(`[NODE BUILDER] projectConfigPath: ${projectConfigPath}`);
|
|
60
57
|
console.log(`[NODE BUILDER] nodeConfig: ${nodeConfigPath}`);
|
|
61
|
-
|
|
58
|
+
console.log(`[NODE BUILDER] testName: ${testName}`);
|
|
59
|
+
async function startBundling(nodeConfigs, projectConfig) {
|
|
62
60
|
console.log(`[NODE BUILDER] is now bundling: ${testName}`);
|
|
63
|
-
const n = esbuild_default(
|
|
61
|
+
const n = esbuild_default(nodeConfigs, testName, projectConfig);
|
|
64
62
|
const buildResult = await esbuild.build(n);
|
|
65
63
|
if (buildResult.metafile) {
|
|
66
|
-
await processMetafile(
|
|
64
|
+
await processMetafile(projectConfig, buildResult.metafile, "node");
|
|
67
65
|
} else {
|
|
68
66
|
console.warn("No metafile generated by esbuild");
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
async function main() {
|
|
72
70
|
try {
|
|
73
|
-
const
|
|
74
|
-
await
|
|
71
|
+
const nodeConfigs = (await import(nodeConfigPath)).default;
|
|
72
|
+
const projectConfigs = (await import(projectConfigPath)).default;
|
|
73
|
+
await startBundling(nodeConfigs, projectConfigs);
|
|
75
74
|
} catch (error) {
|
|
76
75
|
console.error("NODE BUILDER: Error importing config:", nodeConfigPath, error);
|
|
77
76
|
console.error(error);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// testeranto/testeranto.ts
|
|
2
|
+
var config = {
|
|
3
|
+
featureIngestor: function(s) {
|
|
4
|
+
throw new Error("Function not implemented.");
|
|
5
|
+
},
|
|
6
|
+
runtimes: {
|
|
7
|
+
nodetests: {
|
|
8
|
+
runtime: "node",
|
|
9
|
+
tests: ["example/Calculator.test.ts"],
|
|
10
|
+
checks: [
|
|
11
|
+
(x) => `yarn eslint`,
|
|
12
|
+
(x) => `yarn tsc --noEmit`
|
|
13
|
+
],
|
|
14
|
+
dockerfile: `testeranto/runtimes/node/node.Dockerfile`,
|
|
15
|
+
buildOptions: `testeranto/runtimes/node/node.ts`
|
|
16
|
+
},
|
|
17
|
+
webtests: {
|
|
18
|
+
runtime: "web",
|
|
19
|
+
tests: ["example/Calculator.test.ts"],
|
|
20
|
+
checks: [
|
|
21
|
+
(x) => `yarn eslint`,
|
|
22
|
+
(x) => `yarn tsc --noEmit`
|
|
23
|
+
],
|
|
24
|
+
dockerfile: `testeranto/runtimes/web/web.Dockerfile`,
|
|
25
|
+
buildOptions: `testeranto/runtimes/web/web.ts`
|
|
26
|
+
},
|
|
27
|
+
pythontests: {
|
|
28
|
+
runtime: "python",
|
|
29
|
+
tests: ["example/Calculator.test.py"],
|
|
30
|
+
checks: [
|
|
31
|
+
(x) => `yarn eslint`,
|
|
32
|
+
(x) => `yarn tsc --noEmit`
|
|
33
|
+
],
|
|
34
|
+
dockerfile: `testeranto/runtimes/python/python.Dockerfile`,
|
|
35
|
+
buildOptions: `testeranto/runtimes/python/python.ts`
|
|
36
|
+
},
|
|
37
|
+
golangtests: {
|
|
38
|
+
runtime: "golang",
|
|
39
|
+
tests: ["example/Calculator.test.go"],
|
|
40
|
+
checks: [
|
|
41
|
+
(x) => `yarn eslint`,
|
|
42
|
+
(x) => `yarn tsc --noEmit`
|
|
43
|
+
],
|
|
44
|
+
dockerfile: `testeranto/runtimes/golang/golang.Dockerfile`,
|
|
45
|
+
buildOptions: `testeranto/runtimes/golang/golang.ts`
|
|
46
|
+
},
|
|
47
|
+
rusttests: {
|
|
48
|
+
runtime: "rust",
|
|
49
|
+
tests: ["example/Calculator.test.rs"],
|
|
50
|
+
checks: [
|
|
51
|
+
(x) => `yarn eslint`,
|
|
52
|
+
(x) => `yarn tsc --noEmit`
|
|
53
|
+
],
|
|
54
|
+
dockerfile: `testeranto/runtimes/rust/rust.Dockerfile`,
|
|
55
|
+
buildOptions: `testeranto/runtimes/rust/rust.ts`
|
|
56
|
+
},
|
|
57
|
+
rubytests: {
|
|
58
|
+
runtime: "ruby",
|
|
59
|
+
tests: ["example/Calculator.test.rb"],
|
|
60
|
+
checks: [
|
|
61
|
+
(x) => `yarn eslint`,
|
|
62
|
+
(x) => `yarn tsc --noEmit`
|
|
63
|
+
],
|
|
64
|
+
dockerfile: `testeranto/runtimes/ruby/ruby.Dockerfile`,
|
|
65
|
+
buildOptions: `testeranto/runtimes/ruby/ruby.ts`
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
var testeranto_default = config;
|
|
70
|
+
export {
|
|
71
|
+
testeranto_default as default
|
|
72
|
+
};
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
// src/testeranto.ts
|
|
2
|
-
import path3 from "path";
|
|
3
|
-
|
|
4
1
|
// src/server/serverClasees/Server.ts
|
|
5
2
|
import fs3 from "fs";
|
|
6
3
|
import readline from "readline";
|
|
@@ -76,7 +73,7 @@ var javaBddCommand = (fpath) => {
|
|
|
76
73
|
};
|
|
77
74
|
|
|
78
75
|
// src/server/runtimes/node/docker.ts
|
|
79
|
-
var nodeDockerComposeFile = (config, container_name,
|
|
76
|
+
var nodeDockerComposeFile = (config, container_name, projectConfigPath, nodeConfigPath, testName) => {
|
|
80
77
|
return {
|
|
81
78
|
build: {
|
|
82
79
|
context: process.cwd(),
|
|
@@ -94,17 +91,17 @@ var nodeDockerComposeFile = (config, container_name, fpath) => {
|
|
|
94
91
|
`${process.cwd()}/dist:/workspace/dist`,
|
|
95
92
|
`${process.cwd()}/testeranto:/workspace/testeranto`
|
|
96
93
|
],
|
|
97
|
-
command: nodeBuildCommand(
|
|
94
|
+
command: nodeBuildCommand(projectConfigPath, nodeConfigPath, testName)
|
|
98
95
|
};
|
|
99
96
|
};
|
|
100
97
|
var externalTests = true;
|
|
101
|
-
var nodeBuildCommand = (
|
|
98
|
+
var nodeBuildCommand = (projectConfigPath, nodeConfigPath, testName) => {
|
|
102
99
|
if (externalTests) {
|
|
103
|
-
console.log("external tests",
|
|
104
|
-
return `yarn tsx node_modules/testeranto/src/server/runtimes/node/node.ts ${
|
|
100
|
+
console.log("external tests", testName);
|
|
101
|
+
return `yarn tsx node_modules/testeranto/src/server/runtimes/node/node.ts /workspace/testeranto/testeranto.ts ${nodeConfigPath} ${testName}`;
|
|
105
102
|
} else {
|
|
106
103
|
console.log("not external tests");
|
|
107
|
-
return `yarn tsx src/server/runtimes/node/node.ts /workspace/${
|
|
104
|
+
return `yarn tsx src/server/runtimes/node/node.ts /workspace/testeranto/testeranto.ts /workspace/${nodeConfigPath} ${testName}`;
|
|
108
105
|
}
|
|
109
106
|
};
|
|
110
107
|
var nodeBddCommand = (fpath) => {
|
|
@@ -502,9 +499,9 @@ var Server_Base = class {
|
|
|
502
499
|
constructor(configs, mode2) {
|
|
503
500
|
this.configs = configs;
|
|
504
501
|
this.mode = mode2;
|
|
502
|
+
console.log(`[Base] ${this.configs}`);
|
|
505
503
|
}
|
|
506
504
|
async start() {
|
|
507
|
-
console.log(`[Server_Base] start()`);
|
|
508
505
|
}
|
|
509
506
|
async stop() {
|
|
510
507
|
console.log(`[Server_Base] stop()`);
|
|
@@ -923,14 +920,14 @@ var Server_Docker = class extends Server_WS {
|
|
|
923
920
|
}
|
|
924
921
|
staticTestDockerComposeFile(runtime, container_name, command) {
|
|
925
922
|
let dockerfilePath = "";
|
|
926
|
-
for (const [key, value] of this.configs.
|
|
927
|
-
if (value
|
|
928
|
-
dockerfilePath = value
|
|
923
|
+
for (const [key, value] of Object.entries(this.configs.runtimes)) {
|
|
924
|
+
if (value.runtime === runtime) {
|
|
925
|
+
dockerfilePath = value.dockerfile;
|
|
929
926
|
break;
|
|
930
927
|
}
|
|
931
928
|
}
|
|
932
929
|
if (!dockerfilePath) {
|
|
933
|
-
throw `no dockerfile found for ${dockerfilePath}`;
|
|
930
|
+
throw `[Docker] [staticTestDockerComposeFile] no dockerfile found for ${dockerfilePath}, ${Object.entries(this.configs)}`;
|
|
934
931
|
}
|
|
935
932
|
return {
|
|
936
933
|
build: {
|
|
@@ -949,14 +946,14 @@ var Server_Docker = class extends Server_WS {
|
|
|
949
946
|
}
|
|
950
947
|
bddTestDockerComposeFile(runtime, container_name, command) {
|
|
951
948
|
let dockerfilePath = "";
|
|
952
|
-
for (const [key, value] of this.configs.
|
|
953
|
-
if (value
|
|
954
|
-
dockerfilePath = value
|
|
949
|
+
for (const [key, value] of Object.entries(this.configs.runtimes)) {
|
|
950
|
+
if (value.runtime === runtime) {
|
|
951
|
+
dockerfilePath = value.dockerfile;
|
|
955
952
|
break;
|
|
956
953
|
}
|
|
957
954
|
}
|
|
958
955
|
if (!dockerfilePath) {
|
|
959
|
-
throw `no dockerfile found for ${dockerfilePath}`;
|
|
956
|
+
throw `[Docker] [bddTestDockerComposeFile] no dockerfile found for ${dockerfilePath}, ${Object.entries(this.configs)}`;
|
|
960
957
|
}
|
|
961
958
|
const service = {
|
|
962
959
|
build: {
|
|
@@ -998,6 +995,7 @@ var Server_Docker = class extends Server_WS {
|
|
|
998
995
|
}
|
|
999
996
|
generateServices() {
|
|
1000
997
|
const services = {};
|
|
998
|
+
console.log("mark1");
|
|
1001
999
|
const runTimeToCompose = {
|
|
1002
1000
|
"node": [nodeDockerComposeFile, nodeBuildCommand, nodeBddCommand],
|
|
1003
1001
|
"web": [webDockerComposeFile, webBuildCommand, webBddCommand],
|
|
@@ -1007,64 +1005,56 @@ var Server_Docker = class extends Server_WS {
|
|
|
1007
1005
|
"rust": [rustDockerComposeFile, rustBuildCommand, rustBddCommand],
|
|
1008
1006
|
"java": [javaDockerComposeFile, javaBuildCommand, javaBddCommand]
|
|
1009
1007
|
};
|
|
1010
|
-
for (const [runtimeTestsName, runtimeTests] of this.configs.
|
|
1011
|
-
const runtime = runtimeTests
|
|
1012
|
-
const dockerfile = runtimeTests
|
|
1013
|
-
const
|
|
1014
|
-
const testsObj = runtimeTests
|
|
1015
|
-
const
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
const bddCommandFunc = runTimeToCompose[runtime][2];
|
|
1060
|
-
console.log("mark8", testName);
|
|
1061
|
-
const filePath = `testeranto/bundles/allTests/${runtime}/${testName}`;
|
|
1062
|
-
console.log("mark4", filePath);
|
|
1063
|
-
const command = bddCommandFunc(filePath);
|
|
1064
|
-
if (command) {
|
|
1065
|
-
services[`${uid}-bdd`] = this.bddTestDockerComposeFile(runtime, `${uid}-bdd`, command);
|
|
1008
|
+
for (const [runtimeTestsName, runtimeTests] of Object.entries(this.configs.runtimes)) {
|
|
1009
|
+
const runtime = runtimeTests.runtime;
|
|
1010
|
+
const dockerfile = runtimeTests.dockerfile;
|
|
1011
|
+
const buildOptions = runtimeTests.buildOptions;
|
|
1012
|
+
const testsObj = runtimeTests.tests;
|
|
1013
|
+
for (const [t, c] of Object.entries(this.configs.runtimes)) {
|
|
1014
|
+
if (c.runtime === runtime) {
|
|
1015
|
+
if (RUN_TIMES.includes(runtime)) {
|
|
1016
|
+
const buildCommand = runTimeToCompose[runtime][1](
|
|
1017
|
+
buildOptions,
|
|
1018
|
+
c.buildOptions,
|
|
1019
|
+
runtimeTestsName
|
|
1020
|
+
);
|
|
1021
|
+
const builderServiceName = `${runtime}-builder`;
|
|
1022
|
+
let dockerfilePath = dockerfile;
|
|
1023
|
+
const fullDockerfilePath = path2.join(process.cwd(), dockerfilePath);
|
|
1024
|
+
if (!fs2.existsSync(fullDockerfilePath)) {
|
|
1025
|
+
throw `[Server_Docker] Dockerfile not found at ${fullDockerfilePath}`;
|
|
1026
|
+
}
|
|
1027
|
+
services[builderServiceName] = {
|
|
1028
|
+
build: {
|
|
1029
|
+
context: process.cwd(),
|
|
1030
|
+
dockerfile: dockerfilePath
|
|
1031
|
+
},
|
|
1032
|
+
container_name: builderServiceName,
|
|
1033
|
+
environment: {},
|
|
1034
|
+
working_dir: "/workspace",
|
|
1035
|
+
volumes: [
|
|
1036
|
+
`${process.cwd()}/src:/workspace/src`,
|
|
1037
|
+
`${process.cwd()}/example:/workspace/example`,
|
|
1038
|
+
`${process.cwd()}/dist:/workspace/dist`,
|
|
1039
|
+
`${process.cwd()}/testeranto:/workspace/testeranto`
|
|
1040
|
+
],
|
|
1041
|
+
command: buildCommand,
|
|
1042
|
+
networks: ["allTests_network"]
|
|
1043
|
+
};
|
|
1044
|
+
for (const tName of testsObj) {
|
|
1045
|
+
const cleanTestName = tName.toLowerCase().replaceAll("/", "_").replaceAll(".", "-").replace(/[^a-z0-9_-]/g, "");
|
|
1046
|
+
const uid = `${runtimeTestsName.toLowerCase()}-${cleanTestName}`;
|
|
1047
|
+
const bddCommandFunc = runTimeToCompose[runtime][2];
|
|
1048
|
+
const filePath = `testeranto/bundles/allTests/${runtime}/${tName}`;
|
|
1049
|
+
const command = bddCommandFunc(filePath);
|
|
1050
|
+
console.log("wtf command", command);
|
|
1051
|
+
services[`${uid}-bdd`] = this.bddTestDockerComposeFile(runtime, `${uid}-bdd`, command);
|
|
1052
|
+
services[`${uid}-aider`] = this.aiderDockerComposeFile(`${uid}-aider`);
|
|
1053
|
+
}
|
|
1054
|
+
} else {
|
|
1055
|
+
throw `unknown runtime ${runtime}`;
|
|
1056
|
+
}
|
|
1066
1057
|
}
|
|
1067
|
-
services[`${uid}-aider`] = this.aiderDockerComposeFile(`${uid}-aider`);
|
|
1068
1058
|
}
|
|
1069
1059
|
}
|
|
1070
1060
|
for (const serviceName in services) {
|
|
@@ -1273,10 +1263,9 @@ ${x}
|
|
|
1273
1263
|
}
|
|
1274
1264
|
console.log(`[Server_Docker] Waiting for browser container to be healthy...`);
|
|
1275
1265
|
await this.waitForContainerHealthy("browser-allTests", 6e4);
|
|
1276
|
-
for (const [configKey, configValue] of this.configs.
|
|
1277
|
-
const runtime = configValue
|
|
1278
|
-
const
|
|
1279
|
-
const tests = testsObj?.tests || {};
|
|
1266
|
+
for (const [configKey, configValue] of Object.entries(this.configs.runtimes)) {
|
|
1267
|
+
const runtime = configValue.runtime;
|
|
1268
|
+
const tests = configValue.tests;
|
|
1280
1269
|
console.log(`[Server_Docker] Found tests for ${runtime}:`, JSON.stringify(tests));
|
|
1281
1270
|
for (const testName of tests) {
|
|
1282
1271
|
const uid = `${configKey}-${testName.toLowerCase().replaceAll("/", "_").replaceAll(".", "-")}`;
|
|
@@ -1291,10 +1280,10 @@ ${x}
|
|
|
1291
1280
|
}
|
|
1292
1281
|
}
|
|
1293
1282
|
}
|
|
1294
|
-
for (const [configKey, configValue] of this.configs.
|
|
1295
|
-
const runtime = configValue
|
|
1296
|
-
const
|
|
1297
|
-
|
|
1283
|
+
for (const [configKey, configValue] of Object.entries(this.configs.runtimes)) {
|
|
1284
|
+
const runtime = configValue.runtime;
|
|
1285
|
+
const tests = configValue.tests;
|
|
1286
|
+
console.log(`[Server_Docker] Found tests for ${runtime}:`, JSON.stringify(tests));
|
|
1298
1287
|
for (const testName of tests) {
|
|
1299
1288
|
const uid = `${configKey}-${testName.toLowerCase().replaceAll("/", "_").replaceAll(".", "-")}`;
|
|
1300
1289
|
const bddServiceName = `${uid}-bdd`;
|
|
@@ -1309,7 +1298,7 @@ ${x}
|
|
|
1309
1298
|
}
|
|
1310
1299
|
}
|
|
1311
1300
|
}
|
|
1312
|
-
for (const [configKey, configValue] of this.configs
|
|
1301
|
+
for (const [configKey, configValue] of Object.entries(this.configs)) {
|
|
1313
1302
|
const runtime = configValue[0];
|
|
1314
1303
|
const testsObj = configValue[3];
|
|
1315
1304
|
const tests = testsObj?.tests || {};
|
|
@@ -1690,36 +1679,14 @@ var Server = class extends Server_Docker {
|
|
|
1690
1679
|
|
|
1691
1680
|
// src/testeranto.ts
|
|
1692
1681
|
var fs4 = await import("fs/promises");
|
|
1693
|
-
var yaml2 = await import("yaml");
|
|
1694
1682
|
var mode = process.argv[3];
|
|
1695
1683
|
if (mode !== "once" && mode !== "dev") {
|
|
1696
1684
|
console.error(`The 3rd argument should be 'dev' or 'once', not '${mode}'.`);
|
|
1697
1685
|
process.exit(-1);
|
|
1698
1686
|
}
|
|
1699
1687
|
var main = async () => {
|
|
1700
|
-
const
|
|
1701
|
-
|
|
1702
|
-
const parsed = yaml2.parse(yamlContent);
|
|
1703
|
-
const config = /* @__PURE__ */ new Map();
|
|
1704
|
-
for (const [key, value] of Object.entries(parsed)) {
|
|
1705
|
-
if (Array.isArray(value) && value.length >= 4) {
|
|
1706
|
-
const runtime = String(value[0]);
|
|
1707
|
-
const dockerfile = String(value[1]);
|
|
1708
|
-
const script = String(value[2]);
|
|
1709
|
-
let testsObj = { tests: [] };
|
|
1710
|
-
const fourth = value[3];
|
|
1711
|
-
if (fourth && typeof fourth === "object" && fourth !== null) {
|
|
1712
|
-
const testsData = fourth;
|
|
1713
|
-
if (testsData.tests && Array.isArray(testsData.tests)) {
|
|
1714
|
-
testsObj.tests = testsData.tests.map((t) => String(t));
|
|
1715
|
-
}
|
|
1716
|
-
}
|
|
1717
|
-
config.set(key, [runtime, dockerfile, script, testsObj]);
|
|
1718
|
-
} else {
|
|
1719
|
-
console.warn(`Skipping entry ${key}: expected array with at least 4 elements, got`, value);
|
|
1720
|
-
}
|
|
1721
|
-
}
|
|
1722
|
-
console.log("Parsed config:", Array.from(config.entries()));
|
|
1688
|
+
const config = (await import("./testeranto-6SAYRVSE.mjs")).default;
|
|
1689
|
+
console.log("mark123", config);
|
|
1723
1690
|
await new Server(config, mode).start();
|
|
1724
1691
|
};
|
|
1725
1692
|
main();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Ibdd_in_any, Ibdd_out_any } from "./CoreTypes";
|
|
2
1
|
import { ITestResourceConfiguration } from "./lib/tiposkripto";
|
|
3
|
-
import {
|
|
2
|
+
import { BaseGiven, IGivens } from "./lib/tiposkripto/BaseGiven";
|
|
4
3
|
import { BaseSuite } from "./lib/tiposkripto/BaseSuite";
|
|
5
4
|
import { BaseThen } from "./lib/tiposkripto/BaseThen";
|
|
6
5
|
import { BaseWhen } from "./lib/tiposkripto/BaseWhen";
|
|
6
|
+
import { Ibdd_in_any, Ibdd_out_any } from "./lib/tiposkripto/CoreTypes";
|
|
7
7
|
export type IChecks = ((x: any) => string)[];
|
|
8
8
|
export type ISummary = Record<string, {
|
|
9
9
|
runTimeTests: number | "?" | undefined;
|
|
@@ -71,82 +71,17 @@ export type ITestTypes = [string, IRunTime, {
|
|
|
71
71
|
ports: number;
|
|
72
72
|
}, ITestTypes[]];
|
|
73
73
|
export type IDockerSteps = "RUN" | "WORKDIR" | "COPY";
|
|
74
|
-
export type
|
|
75
|
-
|
|
74
|
+
export type IBaseTestConfig = {
|
|
75
|
+
runtime: string;
|
|
76
|
+
tests: string[];
|
|
77
|
+
dockerfile: string;
|
|
78
|
+
buildOptions: string;
|
|
79
|
+
checks: IChecks;
|
|
80
|
+
};
|
|
81
|
+
export type ITestconfigV2Node = IBaseTestConfig & {
|
|
82
|
+
plugins: any[];
|
|
83
|
+
};
|
|
84
|
+
export type ITestconfigV2 = {
|
|
76
85
|
featureIngestor: (s: string) => Promise<string>;
|
|
77
|
-
|
|
78
|
-
ports: string[];
|
|
79
|
-
src: string;
|
|
80
|
-
check: string;
|
|
81
|
-
java: {
|
|
82
|
-
plugins: any[];
|
|
83
|
-
tests: Record<string, {
|
|
84
|
-
ports: number;
|
|
85
|
-
}>;
|
|
86
|
-
loaders: Record<string, string>;
|
|
87
|
-
checks: IChecks;
|
|
88
|
-
dockerfile: string;
|
|
89
|
-
};
|
|
90
|
-
rust: {
|
|
91
|
-
plugins: any[];
|
|
92
|
-
tests: Record<string, {
|
|
93
|
-
ports: number;
|
|
94
|
-
}>;
|
|
95
|
-
loaders: Record<string, string>;
|
|
96
|
-
checks: IChecks;
|
|
97
|
-
dockerfile: string;
|
|
98
|
-
};
|
|
99
|
-
ruby: {
|
|
100
|
-
plugins: any[];
|
|
101
|
-
tests: Record<string, {
|
|
102
|
-
ports: number;
|
|
103
|
-
}>;
|
|
104
|
-
loaders: Record<string, string>;
|
|
105
|
-
checks: IChecks;
|
|
106
|
-
dockerfile: string;
|
|
107
|
-
};
|
|
108
|
-
golang: {
|
|
109
|
-
plugins: any[];
|
|
110
|
-
tests: Record<string, {
|
|
111
|
-
ports: number;
|
|
112
|
-
}>;
|
|
113
|
-
loaders: Record<string, string>;
|
|
114
|
-
checks: IChecks;
|
|
115
|
-
dockerfile: string;
|
|
116
|
-
};
|
|
117
|
-
python: {
|
|
118
|
-
plugins: any[];
|
|
119
|
-
tests: Record<string, {
|
|
120
|
-
ports: number;
|
|
121
|
-
}>;
|
|
122
|
-
loaders: Record<string, string>;
|
|
123
|
-
checks: IChecks;
|
|
124
|
-
dockerfile: string;
|
|
125
|
-
};
|
|
126
|
-
node: {
|
|
127
|
-
plugins: any[];
|
|
128
|
-
tests: Record<string, {
|
|
129
|
-
ports: number;
|
|
130
|
-
}>;
|
|
131
|
-
loaders: Record<string, string>;
|
|
132
|
-
externals: string[];
|
|
133
|
-
checks: IChecks;
|
|
134
|
-
dockerfile: string;
|
|
135
|
-
};
|
|
136
|
-
web: {
|
|
137
|
-
plugins: any[];
|
|
138
|
-
tests: Record<string, {
|
|
139
|
-
ports: number;
|
|
140
|
-
}>;
|
|
141
|
-
loaders: Record<string, string>;
|
|
142
|
-
externals: string[];
|
|
143
|
-
checks: IChecks;
|
|
144
|
-
dockerfile: string;
|
|
145
|
-
};
|
|
86
|
+
runtimes: Record<string, IBaseTestConfig>;
|
|
146
87
|
};
|
|
147
|
-
export type IBuiltConfig = {
|
|
148
|
-
buildDir: string;
|
|
149
|
-
} & ITestconfig;
|
|
150
|
-
export type IConfig = Map<string, [IRunTime, string, string, {
|
|
151
|
-
tests: string[];
|
|
152
|
-
}]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const golangDockerComposeFile: (config:
|
|
1
|
+
import { ITestconfigV2 } from "../../../Types";
|
|
2
|
+
export declare const golangDockerComposeFile: (config: ITestconfigV2, container_name: string) => object;
|
|
3
3
|
export declare const golangBuildCommand: () => string;
|
|
4
4
|
export declare const golangBddCommand: () => string;
|
|
5
5
|
export declare const golangTestCommand: (config: IBuiltConfig, inputfiles: string[]) => string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITestconfigV2 } from "../../../Types";
|
|
2
|
+
export declare const nodeDockerComposeFile: (config: ITestconfigV2, container_name: string, projectConfigPath: string, nodeConfigPath: string, testName: string) => {
|
|
3
|
+
build: {
|
|
4
|
+
context: string;
|
|
5
|
+
dockerfile: any;
|
|
6
|
+
};
|
|
7
|
+
container_name: string;
|
|
8
|
+
environment: any;
|
|
9
|
+
working_dir: string;
|
|
10
|
+
volumes: string[];
|
|
11
|
+
command: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const nodeBuildCommand: (projectConfigPath: string, nodeConfigPath: string, testName: string) => string;
|
|
14
|
+
export declare const nodeBddCommand: (fpath: string) => string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IConfig } from "../../Types";
|
|
2
1
|
import { IMode } from "../types";
|
|
3
2
|
import { Server_Docker } from "./Server_Docker";
|
|
3
|
+
import { ITestconfigV2 } from "../../Types";
|
|
4
4
|
export declare class Server extends Server_Docker {
|
|
5
|
-
constructor(configs:
|
|
5
|
+
constructor(configs: ITestconfigV2, mode: IMode);
|
|
6
6
|
start(): Promise<void>;
|
|
7
7
|
stop(): Promise<void>;
|
|
8
8
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITestconfigV2 } from "../../Types";
|
|
2
2
|
import { IMode } from "../types";
|
|
3
3
|
export declare abstract class Server_Base {
|
|
4
4
|
mode: IMode;
|
|
5
|
-
configs:
|
|
6
|
-
constructor(configs:
|
|
5
|
+
configs: ITestconfigV2;
|
|
6
|
+
constructor(configs: ITestconfigV2, mode: IMode);
|
|
7
7
|
start(): Promise<void>;
|
|
8
8
|
stop(): Promise<void>;
|
|
9
9
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITestconfigV2, IRunTime } from "../../Types";
|
|
2
2
|
import { IMode } from "../types";
|
|
3
3
|
import { Server_WS } from "./Server_WS";
|
|
4
4
|
export type IService = any;
|
|
@@ -10,7 +10,7 @@ export interface IDockerComposeResult {
|
|
|
10
10
|
}
|
|
11
11
|
export declare class Server_Docker extends Server_WS {
|
|
12
12
|
private logProcesses;
|
|
13
|
-
constructor(configs:
|
|
13
|
+
constructor(configs: ITestconfigV2, mode: IMode);
|
|
14
14
|
BaseCompose(services: any): {
|
|
15
15
|
services: any;
|
|
16
16
|
volumes: {
|