testeranto 0.219.14 → 0.219.15
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/package.json +1 -1
- package/src/testeranto.ts +1 -1
- package/dist/common/allTestsUtils.js +0 -17
- package/dist/common/package.json +0 -3
- package/dist/common/scripts/build-example.js +0 -105
- package/dist/common/src/Init.js +0 -38
- package/dist/common/src/Types.js +0 -63
- package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
- package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
- package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
- package/dist/common/src/esbuildConfigs/index.js +0 -22
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
- package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
- package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
- package/dist/common/src/init-docs.js +0 -9
- package/dist/common/src/lib/tiposkripto/BaseGiven.js +0 -96
- package/dist/common/src/lib/tiposkripto/BaseSuite.js +0 -134
- package/dist/common/src/lib/tiposkripto/BaseThen.js +0 -65
- package/dist/common/src/lib/tiposkripto/BaseTiposkripto.js +0 -193
- package/dist/common/src/lib/tiposkripto/BaseWhen.js +0 -46
- package/dist/common/src/lib/tiposkripto/CoreTypes.js +0 -2
- package/dist/common/src/lib/tiposkripto/Node.js +0 -40
- package/dist/common/src/lib/tiposkripto/Tiposkripto.js +0 -49
- package/dist/common/src/lib/tiposkripto/Types.js +0 -2
- package/dist/common/src/lib/tiposkripto/Web.js +0 -70
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -22
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -16
- package/dist/common/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -18
- package/dist/common/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -24
- package/dist/common/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -38
- package/dist/common/src/lib/tiposkripto/abstractBase.test/index.js +0 -17
- package/dist/common/src/lib/tiposkripto/abstractBase.test/specification.js +0 -19
- package/dist/common/src/lib/tiposkripto/abstractBase.test/types.js +0 -2
- package/dist/common/src/lib/tiposkripto/index.js +0 -29
- package/dist/common/src/runtimes.js +0 -4
- package/dist/common/src/server/aider/configParser.js +0 -124
- package/dist/common/src/server/aider/docker.js +0 -30
- package/dist/common/src/server/getRunnables.js +0 -36
- package/dist/common/src/server/htmlTemplate.js +0 -44
- package/dist/common/src/server/nodeVersion.js +0 -5
- package/dist/common/src/server/runtimes/common.js +0 -136
- package/dist/common/src/server/runtimes/golang/docker.js +0 -62
- package/dist/common/src/server/runtimes/java/docker.js +0 -46
- package/dist/common/src/server/runtimes/node/docker.js +0 -42
- package/dist/common/src/server/runtimes/node/esbuild.js +0 -40
- package/dist/common/src/server/runtimes/node/node.js +0 -75
- package/dist/common/src/server/runtimes/python/docker.js +0 -31
- package/dist/common/src/server/runtimes/ruby/docker.js +0 -34
- package/dist/common/src/server/runtimes/rust/docker.js +0 -35
- package/dist/common/src/server/runtimes/web/docker.js +0 -42
- package/dist/common/src/server/runtimes/web/esbuild.js +0 -29
- package/dist/common/src/server/runtimes/web/hoist.js +0 -16
- package/dist/common/src/server/runtimes/web/web.js +0 -157
- package/dist/common/src/server/serverClasees/Server.js +0 -47
- package/dist/common/src/server/serverClasees/Server_Base.js +0 -18
- package/dist/common/src/server/serverClasees/Server_Docker.js +0 -904
- package/dist/common/src/server/serverClasees/Server_FS.js +0 -119
- package/dist/common/src/server/serverClasees/Server_HTTP.js +0 -189
- package/dist/common/src/server/serverClasees/Server_WS.js +0 -262
- package/dist/common/src/server/serverManagers/DockerManager.js +0 -28
- package/dist/common/src/server/serverManagers/HttpManager.js +0 -114
- package/dist/common/src/server/serverManagers/WsManager.js +0 -230
- package/dist/common/src/server/serverManagers/fs.js +0 -32
- package/dist/common/src/server/serverManagers/tcp.js +0 -51
- package/dist/common/src/server/types.js +0 -2
- package/dist/common/src/testeranto.js +0 -75
- package/dist/common/src/vscode/TerminalManager.js +0 -129
- package/dist/common/src/vscode/TestTreeItem.js +0 -77
- package/dist/common/src/vscode/extension.js +0 -185
- package/dist/common/src/vscode/providers/FeaturesTreeDataProvider.js +0 -445
- package/dist/common/src/vscode/providers/FileTreeDataProvider.js +0 -190
- package/dist/common/src/vscode/providers/ProcessesTreeDataProvider.js +0 -270
- package/dist/common/src/vscode/providers/ResultsTreeDataProvider.js +0 -87
- package/dist/common/src/vscode/providers/TestTreeDataProvider.js +0 -309
- package/dist/common/src/vscode/types.js +0 -9
- package/dist/common/testeranto/runtimes/node/node.js +0 -7
- package/dist/common/testeranto/runtimes/web/web.js +0 -6
- package/dist/common/testeranto/testeranto.js +0 -70
- package/dist/common/tsconfig.common.tsbuildinfo +0 -1
- package/dist/module/allTestsUtils.js +0 -13
- package/dist/module/package.json +0 -3
- package/dist/module/scripts/build-example.js +0 -100
- package/dist/module/src/Init.js +0 -33
- package/dist/module/src/Types.js +0 -62
- package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
- package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
- package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
- package/dist/module/src/esbuildConfigs/index.js +0 -20
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
- package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
- package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
- package/dist/module/src/init-docs.js +0 -4
- package/dist/module/src/lib/tiposkripto/BaseGiven.js +0 -92
- package/dist/module/src/lib/tiposkripto/BaseSuite.js +0 -130
- package/dist/module/src/lib/tiposkripto/BaseThen.js +0 -61
- package/dist/module/src/lib/tiposkripto/BaseTiposkripto.js +0 -190
- package/dist/module/src/lib/tiposkripto/BaseWhen.js +0 -42
- package/dist/module/src/lib/tiposkripto/CoreTypes.js +0 -1
- package/dist/module/src/lib/tiposkripto/Node.js +0 -33
- package/dist/module/src/lib/tiposkripto/Tiposkripto.js +0 -14
- package/dist/module/src/lib/tiposkripto/Types.js +0 -1
- package/dist/module/src/lib/tiposkripto/Web.js +0 -63
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -18
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -12
- package/dist/module/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -14
- package/dist/module/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -21
- package/dist/module/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -35
- package/dist/module/src/lib/tiposkripto/abstractBase.test/index.js +0 -12
- package/dist/module/src/lib/tiposkripto/abstractBase.test/specification.js +0 -15
- package/dist/module/src/lib/tiposkripto/abstractBase.test/types.js +0 -1
- package/dist/module/src/lib/tiposkripto/index.js +0 -24
- package/dist/module/src/runtimes.js +0 -1
- package/dist/module/src/server/aider/configParser.js +0 -116
- package/dist/module/src/server/aider/docker.js +0 -28
- package/dist/module/src/server/getRunnables.js +0 -29
- package/dist/module/src/server/htmlTemplate.js +0 -40
- package/dist/module/src/server/nodeVersion.js +0 -2
- package/dist/module/src/server/runtimes/common.js +0 -127
- package/dist/module/src/server/runtimes/golang/docker.js +0 -55
- package/dist/module/src/server/runtimes/java/docker.js +0 -40
- package/dist/module/src/server/runtimes/node/docker.js +0 -36
- package/dist/module/src/server/runtimes/node/esbuild.js +0 -35
- package/dist/module/src/server/runtimes/node/node.js +0 -37
- package/dist/module/src/server/runtimes/python/docker.js +0 -25
- package/dist/module/src/server/runtimes/ruby/docker.js +0 -28
- package/dist/module/src/server/runtimes/rust/docker.js +0 -29
- package/dist/module/src/server/runtimes/web/docker.js +0 -36
- package/dist/module/src/server/runtimes/web/esbuild.js +0 -24
- package/dist/module/src/server/runtimes/web/hoist.js +0 -11
- package/dist/module/src/server/runtimes/web/web.js +0 -119
- package/dist/module/src/server/serverClasees/Server.js +0 -40
- package/dist/module/src/server/serverClasees/Server_Base.js +0 -14
- package/dist/module/src/server/serverClasees/Server_Docker.js +0 -897
- package/dist/module/src/server/serverClasees/Server_FS.js +0 -119
- package/dist/module/src/server/serverClasees/Server_HTTP.js +0 -182
- package/dist/module/src/server/serverClasees/Server_WS.js +0 -258
- package/dist/module/src/server/serverManagers/DockerManager.js +0 -28
- package/dist/module/src/server/serverManagers/HttpManager.js +0 -110
- package/dist/module/src/server/serverManagers/WsManager.js +0 -226
- package/dist/module/src/server/serverManagers/fs.js +0 -32
- package/dist/module/src/server/serverManagers/tcp.js +0 -47
- package/dist/module/src/server/types.js +0 -1
- package/dist/module/src/testeranto.js +0 -40
- package/dist/module/src/vscode/TerminalManager.js +0 -92
- package/dist/module/src/vscode/TestTreeItem.js +0 -40
- package/dist/module/src/vscode/extension.js +0 -148
- package/dist/module/src/vscode/providers/FeaturesTreeDataProvider.js +0 -408
- package/dist/module/src/vscode/providers/FileTreeDataProvider.js +0 -153
- package/dist/module/src/vscode/providers/ProcessesTreeDataProvider.js +0 -233
- package/dist/module/src/vscode/providers/ResultsTreeDataProvider.js +0 -50
- package/dist/module/src/vscode/providers/TestTreeDataProvider.js +0 -272
- package/dist/module/src/vscode/types.js +0 -6
- package/dist/module/testeranto/runtimes/node/node.js +0 -5
- package/dist/module/testeranto/runtimes/web/web.js +0 -4
- package/dist/module/testeranto/testeranto.js +0 -68
- package/dist/module/tsconfig.module.tsbuildinfo +0 -1
- package/dist/prebuild/chunk-QLT7PNPK.mjs +0 -162
- package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +0 -20
- package/dist/prebuild/init-docs.mjs +0 -56
- package/dist/prebuild/server/runtimes/node/node.mjs +0 -80
- package/dist/prebuild/server/runtimes/web/hoist.mjs +0 -12
- package/dist/prebuild/server/runtimes/web/web.mjs +0 -162
- package/dist/prebuild/testeranto-6SAYRVSE.mjs +0 -72
- package/dist/prebuild/testeranto.mjs +0 -1692
- package/dist/types/src/Init.d.ts +0 -2
- package/dist/types/src/Types.d.ts +0 -87
- package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
- package/dist/types/src/esbuildConfigs/index.d.ts +0 -3
- package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
- package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
- package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
- package/dist/types/src/init-docs.d.ts +0 -1
- package/dist/types/src/lib/tiposkripto/BaseGiven.d.ts +0 -42
- package/dist/types/src/lib/tiposkripto/BaseSuite.d.ts +0 -46
- package/dist/types/src/lib/tiposkripto/BaseThen.d.ts +0 -28
- package/dist/types/src/lib/tiposkripto/BaseTiposkripto.d.ts +0 -35
- package/dist/types/src/lib/tiposkripto/BaseWhen.d.ts +0 -27
- package/dist/types/src/lib/tiposkripto/CoreTypes.d.ts +0 -51
- package/dist/types/src/lib/tiposkripto/Node.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/Tiposkripto.d.ts +0 -5
- package/dist/types/src/lib/tiposkripto/Types.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/Web.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockGiven.d.ts +0 -9
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockThen.d.ts +0 -6
- package/dist/types/src/lib/tiposkripto/abstractBase.test/MockWhen.d.ts +0 -6
- package/dist/types/src/lib/tiposkripto/abstractBase.test/adapter.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/implementation.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/index.d.ts +0 -28
- package/dist/types/src/lib/tiposkripto/abstractBase.test/specification.d.ts +0 -3
- package/dist/types/src/lib/tiposkripto/abstractBase.test/types.d.ts +0 -39
- package/dist/types/src/lib/tiposkripto/index.d.ts +0 -56
- package/dist/types/src/runtimes.d.ts +0 -2
- package/dist/types/src/server/aider/configParser.d.ts +0 -11
- package/dist/types/src/server/aider/docker.d.ts +0 -2
- package/dist/types/src/server/getRunnables.d.ts +0 -3
- package/dist/types/src/server/htmlTemplate.d.ts +0 -2
- package/dist/types/src/server/nodeVersion.d.ts +0 -2
- package/dist/types/src/server/runtimes/common.d.ts +0 -12
- package/dist/types/src/server/runtimes/golang/docker.d.ts +0 -5
- package/dist/types/src/server/runtimes/java/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/node/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/node/esbuild.d.ts +0 -4
- package/dist/types/src/server/runtimes/node/node.d.ts +0 -1
- package/dist/types/src/server/runtimes/python/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/ruby/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/rust/docker.d.ts +0 -14
- package/dist/types/src/server/runtimes/web/docker.d.ts +0 -15
- package/dist/types/src/server/runtimes/web/esbuild.d.ts +0 -4
- package/dist/types/src/server/runtimes/web/hoist.d.ts +0 -1
- package/dist/types/src/server/runtimes/web/web.d.ts +0 -1
- package/dist/types/src/server/serverClasees/Server.d.ts +0 -8
- package/dist/types/src/server/serverClasees/Server_Base.d.ts +0 -9
- package/dist/types/src/server/serverClasees/Server_Docker.d.ts +0 -81
- package/dist/types/src/server/serverClasees/Server_FS.d.ts +0 -0
- package/dist/types/src/server/serverClasees/Server_HTTP.d.ts +0 -20
- package/dist/types/src/server/serverClasees/Server_WS.d.ts +0 -23
- package/dist/types/src/server/serverManagers/DockerManager.d.ts +0 -0
- package/dist/types/src/server/serverManagers/HttpManager.d.ts +0 -9
- package/dist/types/src/server/serverManagers/WsManager.d.ts +0 -10
- package/dist/types/src/server/serverManagers/fs.d.ts +0 -0
- package/dist/types/src/server/serverManagers/tcp.d.ts +0 -27
- package/dist/types/src/server/types.d.ts +0 -68
- package/dist/types/src/testeranto.d.ts +0 -1
- package/dist/types/src/vscode/TerminalManager.d.ts +0 -18
- package/dist/types/src/vscode/TestTreeItem.d.ts +0 -13
- package/dist/types/src/vscode/extension.d.ts +0 -3
- package/dist/types/src/vscode/providers/FeaturesTreeDataProvider.d.ts +0 -17
- package/dist/types/src/vscode/providers/FileTreeDataProvider.d.ts +0 -13
- package/dist/types/src/vscode/providers/ProcessesTreeDataProvider.d.ts +0 -23
- package/dist/types/src/vscode/providers/ResultsTreeDataProvider.d.ts +0 -10
- package/dist/types/src/vscode/providers/TestTreeDataProvider.d.ts +0 -16
- package/dist/types/src/vscode/types.d.ts +0 -14
- package/dist/types/testeranto/testeranto.d.ts +0 -3
- package/dist/types/tsconfig.types.tsbuildinfo +0 -1
- package/dist/vscode/extension.mjs +0 -5116
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HttpManager = void 0;
|
|
4
|
-
class HttpManager {
|
|
5
|
-
routeName(req) {
|
|
6
|
-
const url = new URL(req.url, `http://${req.headers.host}`);
|
|
7
|
-
const urlPath = url.pathname;
|
|
8
|
-
// Extract route name (remove /~/ prefix)
|
|
9
|
-
return urlPath.slice(3); // Remove '/~/'
|
|
10
|
-
}
|
|
11
|
-
decodedPath(req) {
|
|
12
|
-
const urlPath = new URL(req.url, `http://${req.headers.host}`).pathname;
|
|
13
|
-
// Prevent directory traversal attacks
|
|
14
|
-
const decodedPath = decodeURIComponent(urlPath);
|
|
15
|
-
// Remove leading slash to make it relative
|
|
16
|
-
return decodedPath.startsWith("/")
|
|
17
|
-
? decodedPath.slice(1)
|
|
18
|
-
: decodedPath;
|
|
19
|
-
}
|
|
20
|
-
matchRoute(routeName, routes) {
|
|
21
|
-
// First, try exact match
|
|
22
|
-
if (routes && routes[routeName]) {
|
|
23
|
-
return { handler: routes[routeName], params: {} };
|
|
24
|
-
}
|
|
25
|
-
// Then, try pattern matching
|
|
26
|
-
for (const [pattern, handler] of Object.entries(routes)) {
|
|
27
|
-
if (pattern.includes(':')) {
|
|
28
|
-
// Split pattern into parts
|
|
29
|
-
const patternParts = pattern.split('/');
|
|
30
|
-
const routeParts = routeName.split('/');
|
|
31
|
-
// Check if the last pattern part ends with .xml and contains a parameter
|
|
32
|
-
const lastPatternPart = patternParts[patternParts.length - 1];
|
|
33
|
-
const isLastParamWithExtension = lastPatternPart.includes(':') && lastPatternPart.includes('.xml');
|
|
34
|
-
if (isLastParamWithExtension) {
|
|
35
|
-
// For patterns like 'process_manager/:runtime/:testname.xml'
|
|
36
|
-
let matches = true;
|
|
37
|
-
const params = {};
|
|
38
|
-
// Match all parts except the last one
|
|
39
|
-
for (let i = 0; i < patternParts.length - 1; i++) {
|
|
40
|
-
const patternPart = patternParts[i];
|
|
41
|
-
const routePart = routeParts[i];
|
|
42
|
-
if (patternPart.startsWith(':')) {
|
|
43
|
-
// It's a parameter
|
|
44
|
-
const paramName = patternPart.slice(1);
|
|
45
|
-
params[paramName] = routePart;
|
|
46
|
-
}
|
|
47
|
-
else if (patternPart !== routePart) {
|
|
48
|
-
matches = false;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (matches) {
|
|
53
|
-
// The last parameter should capture all remaining route parts
|
|
54
|
-
const lastParamName = lastPatternPart.slice(1, lastPatternPart.indexOf('.xml'));
|
|
55
|
-
const remainingParts = routeParts.slice(patternParts.length - 1);
|
|
56
|
-
let paramValue = remainingParts.join('/');
|
|
57
|
-
// Remove .xml from the end if present
|
|
58
|
-
if (paramValue.endsWith('.xml')) {
|
|
59
|
-
paramValue = paramValue.slice(0, -4);
|
|
60
|
-
}
|
|
61
|
-
params[lastParamName] = paramValue;
|
|
62
|
-
return { handler, params };
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
// Original logic for patterns without special handling
|
|
67
|
-
if (patternParts.length !== routeParts.length) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
let matches = true;
|
|
71
|
-
const params = {};
|
|
72
|
-
for (let i = 0; i < patternParts.length; i++) {
|
|
73
|
-
const patternPart = patternParts[i];
|
|
74
|
-
const routePart = routeParts[i];
|
|
75
|
-
if (patternPart.startsWith(':')) {
|
|
76
|
-
// It's a parameter
|
|
77
|
-
const paramName = patternPart.slice(1);
|
|
78
|
-
params[paramName] = routePart;
|
|
79
|
-
}
|
|
80
|
-
else if (patternPart !== routePart) {
|
|
81
|
-
matches = false;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (matches) {
|
|
86
|
-
return { handler, params };
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
extractParams(pattern, routeName) {
|
|
94
|
-
const patternParts = pattern.split('/');
|
|
95
|
-
const routeParts = routeName.split('/');
|
|
96
|
-
if (patternParts.length !== routeParts.length) {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
const params = {};
|
|
100
|
-
for (let i = 0; i < patternParts.length; i++) {
|
|
101
|
-
const patternPart = patternParts[i];
|
|
102
|
-
const routePart = routeParts[i];
|
|
103
|
-
if (patternPart.startsWith(':')) {
|
|
104
|
-
const paramName = patternPart.slice(1);
|
|
105
|
-
params[paramName] = routePart;
|
|
106
|
-
}
|
|
107
|
-
else if (patternPart !== routePart) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return params;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
exports.HttpManager = HttpManager;
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WsManager = void 0;
|
|
4
|
-
class WsManager {
|
|
5
|
-
constructor() { }
|
|
6
|
-
escapeXml(unsafe) {
|
|
7
|
-
if (!unsafe)
|
|
8
|
-
return '';
|
|
9
|
-
return unsafe.replace(/[<>&'"]/g, (c) => {
|
|
10
|
-
switch (c) {
|
|
11
|
-
case '<': return '<';
|
|
12
|
-
case '>': return '>';
|
|
13
|
-
case '&': return '&';
|
|
14
|
-
case '\'': return ''';
|
|
15
|
-
case '"': return '"';
|
|
16
|
-
default: return c;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
// Process message and return response data
|
|
21
|
-
processMessage(type, data, getProcessSummary, getProcessLogs) {
|
|
22
|
-
console.log("[WsManager] Processing message:", type);
|
|
23
|
-
switch (type) {
|
|
24
|
-
case "ping":
|
|
25
|
-
return {
|
|
26
|
-
type: "pong",
|
|
27
|
-
timestamp: new Date().toISOString()
|
|
28
|
-
};
|
|
29
|
-
case "getProcesses":
|
|
30
|
-
if (getProcessSummary) {
|
|
31
|
-
const summary = getProcessSummary();
|
|
32
|
-
return {
|
|
33
|
-
type: "processes",
|
|
34
|
-
data: summary,
|
|
35
|
-
timestamp: new Date().toISOString()
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
return {
|
|
40
|
-
type: "processes",
|
|
41
|
-
data: { processes: [], totalProcesses: 0, running: 0 },
|
|
42
|
-
timestamp: new Date().toISOString()
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
case "getLogs":
|
|
46
|
-
const { processId } = data || {};
|
|
47
|
-
if (!processId) {
|
|
48
|
-
return {
|
|
49
|
-
type: "logs",
|
|
50
|
-
status: "error",
|
|
51
|
-
message: "Missing processId",
|
|
52
|
-
timestamp: new Date().toISOString()
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
if (getProcessLogs) {
|
|
56
|
-
const logs = getProcessLogs(processId);
|
|
57
|
-
return {
|
|
58
|
-
type: "logs",
|
|
59
|
-
processId,
|
|
60
|
-
logs: logs.map((log) => {
|
|
61
|
-
let level = "info";
|
|
62
|
-
let source = "process";
|
|
63
|
-
let message = log;
|
|
64
|
-
const match = log.match(/\[(.*?)\] \[(.*?)\] (.*)/);
|
|
65
|
-
if (match) {
|
|
66
|
-
const timestamp = match[1];
|
|
67
|
-
source = match[2];
|
|
68
|
-
message = match[3];
|
|
69
|
-
if (source === "stderr" || source === "error") {
|
|
70
|
-
level = "error";
|
|
71
|
-
}
|
|
72
|
-
else if (source === "warn") {
|
|
73
|
-
level = "warn";
|
|
74
|
-
}
|
|
75
|
-
else if (source === "debug") {
|
|
76
|
-
level = "debug";
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
level = "info";
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
timestamp: new Date().toISOString(),
|
|
84
|
-
level: level,
|
|
85
|
-
message: message,
|
|
86
|
-
source: source
|
|
87
|
-
};
|
|
88
|
-
}),
|
|
89
|
-
timestamp: new Date().toISOString()
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
return {
|
|
94
|
-
type: "logs",
|
|
95
|
-
processId,
|
|
96
|
-
logs: [],
|
|
97
|
-
timestamp: new Date().toISOString()
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
case "subscribeToLogs":
|
|
101
|
-
const { processId: subProcessId } = data || {};
|
|
102
|
-
if (!subProcessId) {
|
|
103
|
-
return {
|
|
104
|
-
type: "logSubscription",
|
|
105
|
-
status: "error",
|
|
106
|
-
message: "Missing processId",
|
|
107
|
-
timestamp: new Date().toISOString()
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
type: "logSubscription",
|
|
112
|
-
status: "subscribed",
|
|
113
|
-
processId: subProcessId,
|
|
114
|
-
timestamp: new Date().toISOString()
|
|
115
|
-
};
|
|
116
|
-
case "sourceFilesUpdated":
|
|
117
|
-
const { testName, hash, files, runtime } = data || {};
|
|
118
|
-
if (!testName || !hash || !files || !runtime) {
|
|
119
|
-
return {
|
|
120
|
-
type: "sourceFilesUpdated",
|
|
121
|
-
status: "error",
|
|
122
|
-
message: "Missing required fields: testName, hash, files, or runtime",
|
|
123
|
-
timestamp: new Date().toISOString()
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
// Note: Actual processing needs to be done by the server
|
|
127
|
-
return {
|
|
128
|
-
type: "sourceFilesUpdated",
|
|
129
|
-
status: "success",
|
|
130
|
-
testName,
|
|
131
|
-
runtime,
|
|
132
|
-
message: "Build update processed successfully",
|
|
133
|
-
timestamp: new Date().toISOString()
|
|
134
|
-
};
|
|
135
|
-
case "getBuildListenerState":
|
|
136
|
-
// This needs server-side implementation
|
|
137
|
-
return {
|
|
138
|
-
type: "buildListenerState",
|
|
139
|
-
status: "error",
|
|
140
|
-
message: "Build listener state not available",
|
|
141
|
-
timestamp: new Date().toISOString()
|
|
142
|
-
};
|
|
143
|
-
case "getBuildEvents":
|
|
144
|
-
// This needs server-side implementation
|
|
145
|
-
return {
|
|
146
|
-
type: "buildEvents",
|
|
147
|
-
status: "error",
|
|
148
|
-
message: "Build events not available",
|
|
149
|
-
timestamp: new Date().toISOString()
|
|
150
|
-
};
|
|
151
|
-
default:
|
|
152
|
-
return {
|
|
153
|
-
type: "error",
|
|
154
|
-
message: `Unknown message type: ${type}`,
|
|
155
|
-
timestamp: new Date().toISOString()
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
// Helper methods for specific message types
|
|
160
|
-
getProcessesResponse(processSummary) {
|
|
161
|
-
return {
|
|
162
|
-
type: "processes",
|
|
163
|
-
data: processSummary,
|
|
164
|
-
timestamp: new Date().toISOString()
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
getLogsResponse(processId, logs) {
|
|
168
|
-
return {
|
|
169
|
-
type: "logs",
|
|
170
|
-
processId,
|
|
171
|
-
logs: logs.map((log) => {
|
|
172
|
-
let level = "info";
|
|
173
|
-
let source = "process";
|
|
174
|
-
let message = log;
|
|
175
|
-
const match = log.match(/\[(.*?)\] \[(.*?)\] (.*)/);
|
|
176
|
-
if (match) {
|
|
177
|
-
const timestamp = match[1];
|
|
178
|
-
source = match[2];
|
|
179
|
-
message = match[3];
|
|
180
|
-
if (source === "stderr" || source === "error") {
|
|
181
|
-
level = "error";
|
|
182
|
-
}
|
|
183
|
-
else if (source === "warn") {
|
|
184
|
-
level = "warn";
|
|
185
|
-
}
|
|
186
|
-
else if (source === "debug") {
|
|
187
|
-
level = "debug";
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
level = "info";
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return {
|
|
194
|
-
timestamp: new Date().toISOString(),
|
|
195
|
-
level: level,
|
|
196
|
-
message: message,
|
|
197
|
-
source: source
|
|
198
|
-
};
|
|
199
|
-
}),
|
|
200
|
-
timestamp: new Date().toISOString()
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
getSourceFilesUpdatedResponse(testName, runtime, status, message) {
|
|
204
|
-
return {
|
|
205
|
-
type: "sourceFilesUpdated",
|
|
206
|
-
status,
|
|
207
|
-
testName,
|
|
208
|
-
runtime,
|
|
209
|
-
message: message || "Build update processed successfully",
|
|
210
|
-
timestamp: new Date().toISOString()
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
getErrorResponse(type, errorMessage) {
|
|
214
|
-
return {
|
|
215
|
-
type: type,
|
|
216
|
-
status: "error",
|
|
217
|
-
message: errorMessage,
|
|
218
|
-
timestamp: new Date().toISOString()
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
getSuccessResponse(type, data) {
|
|
222
|
-
return {
|
|
223
|
-
type: type,
|
|
224
|
-
status: "success",
|
|
225
|
-
data: data,
|
|
226
|
-
timestamp: new Date().toISOString()
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
exports.WsManager = WsManager;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// // Do not allow imports from outside the project
|
|
3
|
-
// const getBaseHtml = (title: string) => `
|
|
4
|
-
// <!DOCTYPE html>
|
|
5
|
-
// <html lang="en">
|
|
6
|
-
// <head>
|
|
7
|
-
// <meta name="description" content="Webpage description goes here" />
|
|
8
|
-
// <meta charset="utf-8" />
|
|
9
|
-
// <title>${title} - testeranto</title>
|
|
10
|
-
// <meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
11
|
-
// <meta name="author" content="" />
|
|
12
|
-
// `;
|
|
13
|
-
// export const ProcessMangerHtml = () => `
|
|
14
|
-
// ${getBaseHtml("Testeranto")}
|
|
15
|
-
// <link rel="stylesheet" href="ProcessManger.css" />
|
|
16
|
-
// <script src="ProcessManger.js"></script>
|
|
17
|
-
// </head>
|
|
18
|
-
// <body>
|
|
19
|
-
// <div id="root"></div>
|
|
20
|
-
// </body>
|
|
21
|
-
// </html>
|
|
22
|
-
// `;
|
|
23
|
-
// export const IndexHtml = () => `
|
|
24
|
-
// ${getBaseHtml("Testeranto")}
|
|
25
|
-
// <link rel="stylesheet" href="Index.css" />
|
|
26
|
-
// <script src="Index.js"></script>
|
|
27
|
-
// </head>
|
|
28
|
-
// <body>
|
|
29
|
-
// <div id="root"></div>
|
|
30
|
-
// </body>
|
|
31
|
-
// </html>
|
|
32
|
-
// `;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Do not allow imports from outside the project
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.CONTENT_TYPES = exports.SERVER_CONSTANTS = void 0;
|
|
5
|
-
exports.getContentType = getContentType;
|
|
6
|
-
/**
|
|
7
|
-
* Constants for Server_TCP configuration
|
|
8
|
-
*/
|
|
9
|
-
exports.SERVER_CONSTANTS = {
|
|
10
|
-
HOST: "0.0.0.0",
|
|
11
|
-
};
|
|
12
|
-
exports.CONTENT_TYPES = {
|
|
13
|
-
PLAIN: "text/plain",
|
|
14
|
-
HTML: "text/html",
|
|
15
|
-
JAVASCRIPT: "application/javascript",
|
|
16
|
-
CSS: "text/css",
|
|
17
|
-
JSON: "application/json",
|
|
18
|
-
PNG: "image/png",
|
|
19
|
-
JPEG: "image/jpeg",
|
|
20
|
-
GIF: "image/gif",
|
|
21
|
-
SVG: "image/svg+xml",
|
|
22
|
-
ICO: "image/x-icon",
|
|
23
|
-
WOFF: "font/woff",
|
|
24
|
-
WOFF2: "font/woff2",
|
|
25
|
-
TTF: "font/ttf",
|
|
26
|
-
EOT: "application/vnd.ms-fontobject",
|
|
27
|
-
XML: "application/xml",
|
|
28
|
-
PDF: "application/pdf",
|
|
29
|
-
ZIP: "application/zip",
|
|
30
|
-
OCTET_STREAM: "application/octet-stream",
|
|
31
|
-
};
|
|
32
|
-
function getContentType(filePath) {
|
|
33
|
-
if (filePath.endsWith(".html"))
|
|
34
|
-
return exports.CONTENT_TYPES.HTML;
|
|
35
|
-
else if (filePath.endsWith(".js") || filePath.endsWith(".mjs"))
|
|
36
|
-
return exports.CONTENT_TYPES.JAVASCRIPT;
|
|
37
|
-
else if (filePath.endsWith(".css"))
|
|
38
|
-
return exports.CONTENT_TYPES.CSS;
|
|
39
|
-
else if (filePath.endsWith(".json"))
|
|
40
|
-
return exports.CONTENT_TYPES.JSON;
|
|
41
|
-
else if (filePath.endsWith(".png"))
|
|
42
|
-
return exports.CONTENT_TYPES.PNG;
|
|
43
|
-
else if (filePath.endsWith(".jpg") || filePath.endsWith(".jpeg"))
|
|
44
|
-
return exports.CONTENT_TYPES.JPEG;
|
|
45
|
-
else if (filePath.endsWith(".gif"))
|
|
46
|
-
return exports.CONTENT_TYPES.GIF;
|
|
47
|
-
else if (filePath.endsWith(".svg"))
|
|
48
|
-
return exports.CONTENT_TYPES.SVG;
|
|
49
|
-
else
|
|
50
|
-
return exports.CONTENT_TYPES.PLAIN;
|
|
51
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
37
|
-
// const yaml = await import('yaml');
|
|
38
|
-
// import path from "path";
|
|
39
|
-
const Server_1 = require("./server/serverClasees/Server");
|
|
40
|
-
const mode = process.argv[3];
|
|
41
|
-
if (mode !== "once" && mode !== "dev") {
|
|
42
|
-
console.error(`The 3rd argument should be 'dev' or 'once', not '${mode}'.`);
|
|
43
|
-
process.exit(-1);
|
|
44
|
-
}
|
|
45
|
-
const main = async () => {
|
|
46
|
-
// const yamlPath = path.join(process.cwd(), 'testeranto/testeranto.yml');
|
|
47
|
-
// const yamlContent = await fs.readFile(yamlPath, 'utf-8');
|
|
48
|
-
// const parsed = yaml.parse(yamlContent);
|
|
49
|
-
// const config: ITestconfigV2 = new Map();
|
|
50
|
-
// for (const [key, value] of Object.entries(parsed)) {
|
|
51
|
-
// if (Array.isArray(value) && value.length >= 4) {
|
|
52
|
-
// // The first three elements are runtime, dockerfile, script
|
|
53
|
-
// const runtime = String(value[0]) as IRunTime;
|
|
54
|
-
// const dockerfile = String(value[1]);
|
|
55
|
-
// const script = String(value[2]);
|
|
56
|
-
// // The fourth element should be an object with tests
|
|
57
|
-
// let testsObj = { tests: [] as string[] };
|
|
58
|
-
// const fourth = value[3];
|
|
59
|
-
// if (fourth && typeof fourth === 'object' && fourth !== null) {
|
|
60
|
-
// const testsData = fourth as any;
|
|
61
|
-
// if (testsData.tests && Array.isArray(testsData.tests)) {
|
|
62
|
-
// testsObj.tests = testsData.tests.map((t: any) => String(t));
|
|
63
|
-
// }
|
|
64
|
-
// }
|
|
65
|
-
// config.set(key, [runtime, dockerfile, script, testsObj]);
|
|
66
|
-
// } else {
|
|
67
|
-
// console.warn(`Skipping entry ${key}: expected array with at least 4 elements, got`, value);
|
|
68
|
-
// }
|
|
69
|
-
// }
|
|
70
|
-
// console.log('Parsed config:', Array.from(config.entries()));
|
|
71
|
-
const config = (await Promise.resolve().then(() => __importStar(require('../testeranto/testeranto.ts')))).default;
|
|
72
|
-
console.log("mark123", config);
|
|
73
|
-
await new Server_1.Server(config, mode).start();
|
|
74
|
-
};
|
|
75
|
-
main();
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.TerminalManager = void 0;
|
|
37
|
-
const vscode = __importStar(require("vscode"));
|
|
38
|
-
class TerminalManager {
|
|
39
|
-
constructor() {
|
|
40
|
-
this.terminals = new Map();
|
|
41
|
-
}
|
|
42
|
-
getTerminalKey(runtime, testName) {
|
|
43
|
-
return `${runtime}:${testName}`;
|
|
44
|
-
}
|
|
45
|
-
createTerminal(runtime, testName) {
|
|
46
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
47
|
-
const terminal = vscode.window.createTerminal(`Testeranto: ${testName} (${runtime})`);
|
|
48
|
-
this.terminals.set(key, terminal);
|
|
49
|
-
return terminal;
|
|
50
|
-
}
|
|
51
|
-
getTerminal(runtime, testName) {
|
|
52
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
53
|
-
return this.terminals.get(key);
|
|
54
|
-
}
|
|
55
|
-
showTerminal(runtime, testName) {
|
|
56
|
-
const terminal = this.getTerminal(runtime, testName);
|
|
57
|
-
if (terminal) {
|
|
58
|
-
terminal.show();
|
|
59
|
-
}
|
|
60
|
-
return terminal;
|
|
61
|
-
}
|
|
62
|
-
sendTextToTerminal(runtime, testName, text) {
|
|
63
|
-
const terminal = this.getTerminal(runtime, testName);
|
|
64
|
-
if (terminal) {
|
|
65
|
-
terminal.sendText(text);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
disposeTerminal(runtime, testName) {
|
|
69
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
70
|
-
const terminal = this.terminals.get(key);
|
|
71
|
-
if (terminal) {
|
|
72
|
-
terminal.dispose();
|
|
73
|
-
this.terminals.delete(key);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
disposeAll() {
|
|
77
|
-
for (const terminal of this.terminals.values()) {
|
|
78
|
-
terminal.dispose();
|
|
79
|
-
}
|
|
80
|
-
this.terminals.clear();
|
|
81
|
-
}
|
|
82
|
-
getAllTestConfigs() {
|
|
83
|
-
const configs = [];
|
|
84
|
-
const runtimes = ["node", "web", "python", "golang"];
|
|
85
|
-
for (const runtime of runtimes) {
|
|
86
|
-
let testNames = [];
|
|
87
|
-
switch (runtime) {
|
|
88
|
-
case "node":
|
|
89
|
-
testNames = ["Calculator.test.ts"];
|
|
90
|
-
break;
|
|
91
|
-
case "web":
|
|
92
|
-
testNames = ["Calculator.test.ts"];
|
|
93
|
-
break;
|
|
94
|
-
case "python":
|
|
95
|
-
testNames = ["Calculator.pitono.test.py"];
|
|
96
|
-
break;
|
|
97
|
-
case "golang":
|
|
98
|
-
testNames = ["Calculator.golingvu.test.go"];
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
for (const testName of testNames) {
|
|
102
|
-
configs.push({ runtime, testName });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return configs;
|
|
106
|
-
}
|
|
107
|
-
createAiderTerminal(runtime, testName) {
|
|
108
|
-
const key = this.getTerminalKey(runtime, testName);
|
|
109
|
-
let terminal = this.terminals.get(key);
|
|
110
|
-
if (terminal && terminal.exitStatus === undefined) {
|
|
111
|
-
return terminal;
|
|
112
|
-
}
|
|
113
|
-
terminal = vscode.window.createTerminal(`Aider: ${testName} (${runtime})`);
|
|
114
|
-
this.terminals.set(key, terminal);
|
|
115
|
-
return terminal;
|
|
116
|
-
}
|
|
117
|
-
createAllTerminals() {
|
|
118
|
-
const configs = this.getAllTestConfigs();
|
|
119
|
-
for (const { runtime, testName } of configs) {
|
|
120
|
-
try {
|
|
121
|
-
this.createTerminal(runtime, testName);
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
console.error(`Failed to create terminal for ${testName} (${runtime}):`, error);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.TerminalManager = TerminalManager;
|