testeranto 0.219.13 → 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,153 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
import { TestTreeItem } from '../TestTreeItem';
|
|
3
|
-
import { TreeItemType } from '../types';
|
|
4
|
-
export class FileTreeDataProvider {
|
|
5
|
-
constructor() {
|
|
6
|
-
this._onDidChangeTreeData = new vscode.EventEmitter();
|
|
7
|
-
this.onDidChangeTreeData = this._onDidChangeTreeData.event;
|
|
8
|
-
}
|
|
9
|
-
refresh() {
|
|
10
|
-
this._onDidChangeTreeData.fire();
|
|
11
|
-
}
|
|
12
|
-
getTreeItem(element) {
|
|
13
|
-
return element;
|
|
14
|
-
}
|
|
15
|
-
getChildren(element) {
|
|
16
|
-
var _a;
|
|
17
|
-
if (!element) {
|
|
18
|
-
return this.getRootItems();
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
const path = (_a = element.data) === null || _a === void 0 ? void 0 : _a.path;
|
|
22
|
-
return this.getDirectoryItems(path);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
async getRootItems() {
|
|
26
|
-
const tree = await this.buildFileTree();
|
|
27
|
-
if (!tree) {
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
return this.buildTreeItems(tree);
|
|
31
|
-
}
|
|
32
|
-
async getDirectoryItems(path) {
|
|
33
|
-
if (!path) {
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
const tree = await this.buildFileTree();
|
|
37
|
-
if (!tree) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
// Find the node corresponding to the path
|
|
41
|
-
const parts = path.split('/').filter(p => p.length > 0);
|
|
42
|
-
let currentNode = tree;
|
|
43
|
-
for (const part of parts) {
|
|
44
|
-
if (currentNode.children.has(part)) {
|
|
45
|
-
currentNode = currentNode.children.get(part);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return this.buildTreeItems(currentNode);
|
|
52
|
-
}
|
|
53
|
-
async buildFileTree() {
|
|
54
|
-
const jsonFilePaths = [
|
|
55
|
-
"testeranto/bundles/allTests/golang/example/Calculator.test.go-inputFiles.json",
|
|
56
|
-
"testeranto/bundles/allTests/node/example/Calculator.test.mjs-inputFiles.json",
|
|
57
|
-
"testeranto/bundles/allTests/web/example/Calculator.test.mjs-inputFiles.json",
|
|
58
|
-
"testeranto/bundles/allTests/python/example/Calculator.test.py-inputFiles.json",
|
|
59
|
-
"testeranto/bundles/allTests/ruby/example/Calculator.test.rb-inputFiles.json"
|
|
60
|
-
];
|
|
61
|
-
const allFiles = new Set();
|
|
62
|
-
const workspaceFolders = vscode.workspace.workspaceFolders;
|
|
63
|
-
if (!workspaceFolders || workspaceFolders.length === 0) {
|
|
64
|
-
console.error("No workspace folder open");
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
const workspaceRoot = workspaceFolders[0].uri;
|
|
68
|
-
// Add files from JSON input files
|
|
69
|
-
for (const jsonFilePath of jsonFilePaths) {
|
|
70
|
-
try {
|
|
71
|
-
const jsonFileUri = vscode.Uri.joinPath(workspaceRoot, jsonFilePath);
|
|
72
|
-
const fileContent = await vscode.workspace.fs.readFile(jsonFileUri);
|
|
73
|
-
const files = JSON.parse(Buffer.from(fileContent).toString('utf-8'));
|
|
74
|
-
files.forEach(file => allFiles.add(file));
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
console.error(`Failed to read JSON file ${jsonFilePath}:`, error);
|
|
78
|
-
// Continue with other files
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Add report files from testeranto/reports/allTests/example/
|
|
82
|
-
try {
|
|
83
|
-
const reportsDir = vscode.Uri.joinPath(workspaceRoot, "testeranto/reports/allTests/example");
|
|
84
|
-
// Check if directory exists
|
|
85
|
-
try {
|
|
86
|
-
await vscode.workspace.fs.stat(reportsDir);
|
|
87
|
-
// Read directory contents
|
|
88
|
-
const entries = await vscode.workspace.fs.readDirectory(reportsDir);
|
|
89
|
-
for (const [name, type] of entries) {
|
|
90
|
-
if (type === vscode.FileType.File && name.endsWith('.json')) {
|
|
91
|
-
// Add the report file path
|
|
92
|
-
const reportFilePath = `testeranto/reports/allTests/example/${name}`;
|
|
93
|
-
allFiles.add(reportFilePath);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
console.log(`Reports directory doesn't exist or can't be read: ${reportsDir.fsPath}`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
console.error(`Failed to scan reports directory:`, error);
|
|
103
|
-
}
|
|
104
|
-
// Build tree structure
|
|
105
|
-
const treeRoot = { name: '', children: new Map(), fullPath: '', isFile: false };
|
|
106
|
-
for (const rawFileName of Array.from(allFiles)) {
|
|
107
|
-
// Remove leading '/' if present
|
|
108
|
-
const fileName = rawFileName.startsWith('/') ? rawFileName.substring(1) : rawFileName;
|
|
109
|
-
const parts = fileName.split('/');
|
|
110
|
-
let currentNode = treeRoot;
|
|
111
|
-
for (let i = 0; i < parts.length; i++) {
|
|
112
|
-
const part = parts[i];
|
|
113
|
-
const isLast = i === parts.length - 1;
|
|
114
|
-
if (!currentNode.children.has(part)) {
|
|
115
|
-
currentNode.children.set(part, {
|
|
116
|
-
name: part,
|
|
117
|
-
children: new Map(),
|
|
118
|
-
fullPath: parts.slice(0, i + 1).join('/'),
|
|
119
|
-
isFile: isLast
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
currentNode = currentNode.children.get(part);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return treeRoot;
|
|
126
|
-
}
|
|
127
|
-
buildTreeItems(node) {
|
|
128
|
-
const items = [];
|
|
129
|
-
// Sort children: directories first, then files, alphabetically
|
|
130
|
-
const sortedChildren = Array.from(node.children.values()).sort((a, b) => {
|
|
131
|
-
if (a.isFile && !b.isFile)
|
|
132
|
-
return 1;
|
|
133
|
-
if (!a.isFile && b.isFile)
|
|
134
|
-
return -1;
|
|
135
|
-
return a.name.localeCompare(b.name);
|
|
136
|
-
});
|
|
137
|
-
for (const child of sortedChildren) {
|
|
138
|
-
const collapsibleState = child.isFile
|
|
139
|
-
? vscode.TreeItemCollapsibleState.None
|
|
140
|
-
: vscode.TreeItemCollapsibleState.Collapsed;
|
|
141
|
-
const treeItem = new TestTreeItem(child.name, TreeItemType.File, collapsibleState, {
|
|
142
|
-
path: child.fullPath,
|
|
143
|
-
fileName: child.fullPath
|
|
144
|
-
}, child.isFile ? {
|
|
145
|
-
command: "vscode.open",
|
|
146
|
-
title: "Open File",
|
|
147
|
-
arguments: [vscode.Uri.file(child.fullPath)]
|
|
148
|
-
} : undefined, child.isFile ? new vscode.ThemeIcon("file") : new vscode.ThemeIcon("folder"));
|
|
149
|
-
items.push(treeItem);
|
|
150
|
-
}
|
|
151
|
-
return items;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
import { TestTreeItem } from '../TestTreeItem';
|
|
3
|
-
import { TreeItemType } from '../types';
|
|
4
|
-
export class ProcessesTreeDataProvider {
|
|
5
|
-
constructor() {
|
|
6
|
-
this._onDidChangeTreeData = new vscode.EventEmitter();
|
|
7
|
-
this.onDidChangeTreeData = this._onDidChangeTreeData.event;
|
|
8
|
-
this.processes = [];
|
|
9
|
-
this.refreshInterval = null;
|
|
10
|
-
this.ws = null;
|
|
11
|
-
this.isConnected = false;
|
|
12
|
-
this.connectionAttempts = 0;
|
|
13
|
-
this.maxConnectionAttempts = 5;
|
|
14
|
-
// Start WebSocket connection
|
|
15
|
-
this.connectWebSocket();
|
|
16
|
-
// Start periodic refresh
|
|
17
|
-
this.startRefreshing();
|
|
18
|
-
}
|
|
19
|
-
refresh() {
|
|
20
|
-
// Trigger a fresh fetch from the WebSocket server
|
|
21
|
-
this.fetchProcesses();
|
|
22
|
-
// Also fire the event to update the view
|
|
23
|
-
this._onDidChangeTreeData.fire();
|
|
24
|
-
}
|
|
25
|
-
getTreeItem(element) {
|
|
26
|
-
return element;
|
|
27
|
-
}
|
|
28
|
-
getChildren(element) {
|
|
29
|
-
if (!element) {
|
|
30
|
-
return Promise.resolve(this.getProcessItems());
|
|
31
|
-
}
|
|
32
|
-
return Promise.resolve([]);
|
|
33
|
-
}
|
|
34
|
-
getProcessItems() {
|
|
35
|
-
// If not connected, show connection status with retry option
|
|
36
|
-
if (!this.isConnected) {
|
|
37
|
-
const items = [];
|
|
38
|
-
// Check if we've exceeded max connection attempts
|
|
39
|
-
if (this.connectionAttempts >= this.maxConnectionAttempts) {
|
|
40
|
-
items.push(new TestTreeItem("❌ Failed to connect to Docker process server", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
41
|
-
description: "Make sure the Testeranto server is running on port 3456",
|
|
42
|
-
connectionFailed: true
|
|
43
|
-
}, {
|
|
44
|
-
command: "testeranto.retryConnection",
|
|
45
|
-
title: "Retry Connection",
|
|
46
|
-
arguments: [this]
|
|
47
|
-
}, new vscode.ThemeIcon("error", new vscode.ThemeColor("testing.iconFailed"))));
|
|
48
|
-
// Add a retry button
|
|
49
|
-
items.push(new TestTreeItem("Click to retry connection", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
50
|
-
description: "Or run the Testeranto server first",
|
|
51
|
-
retry: true
|
|
52
|
-
}, {
|
|
53
|
-
command: "testeranto.retryConnection",
|
|
54
|
-
title: "Retry Connection",
|
|
55
|
-
arguments: [this]
|
|
56
|
-
}, new vscode.ThemeIcon("refresh", new vscode.ThemeColor("testing.iconQueued"))));
|
|
57
|
-
// Show how to start the server
|
|
58
|
-
items.push(new TestTreeItem("To start the server, run:", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
59
|
-
description: "npm start in the project root",
|
|
60
|
-
info: true
|
|
61
|
-
}, undefined, new vscode.ThemeIcon("info", new vscode.ThemeColor("testing.iconUnset"))));
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
items.push(new TestTreeItem("Connecting to Docker process server...", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
65
|
-
description: `Attempt ${this.connectionAttempts + 1}/${this.maxConnectionAttempts} to WebSocket server on port 3456`,
|
|
66
|
-
connecting: true
|
|
67
|
-
}, undefined, new vscode.ThemeIcon("sync", new vscode.ThemeColor("testing.iconQueued"))));
|
|
68
|
-
// Add a manual refresh option
|
|
69
|
-
items.push(new TestTreeItem("Click to manually refresh", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
70
|
-
description: "Try to reconnect immediately",
|
|
71
|
-
manualRefresh: true
|
|
72
|
-
}, {
|
|
73
|
-
command: "testeranto.refresh",
|
|
74
|
-
title: "Refresh",
|
|
75
|
-
arguments: []
|
|
76
|
-
}, new vscode.ThemeIcon("refresh", new vscode.ThemeColor("testing.iconQueued"))));
|
|
77
|
-
}
|
|
78
|
-
return items;
|
|
79
|
-
}
|
|
80
|
-
// Connected but no processes
|
|
81
|
-
if (this.processes.length === 0) {
|
|
82
|
-
return [
|
|
83
|
-
new TestTreeItem("No Docker processes found", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
84
|
-
description: "Waiting for Docker containers to start",
|
|
85
|
-
noProcesses: true
|
|
86
|
-
}, undefined, new vscode.ThemeIcon("info", new vscode.ThemeColor("testing.iconUnset"))),
|
|
87
|
-
new TestTreeItem("Click to refresh", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
88
|
-
description: "Check for new Docker containers",
|
|
89
|
-
refresh: true
|
|
90
|
-
}, {
|
|
91
|
-
command: "testeranto.refresh",
|
|
92
|
-
title: "Refresh",
|
|
93
|
-
arguments: []
|
|
94
|
-
}, new vscode.ThemeIcon("refresh", new vscode.ThemeColor("testing.iconQueued")))
|
|
95
|
-
];
|
|
96
|
-
}
|
|
97
|
-
// Show connected status and processes
|
|
98
|
-
const items = [
|
|
99
|
-
new TestTreeItem(`✅ Connected to Docker process server`, TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
100
|
-
description: `Found ${this.processes.length} container(s)`,
|
|
101
|
-
connected: true
|
|
102
|
-
}, undefined, new vscode.ThemeIcon("check", new vscode.ThemeColor("testing.iconPassed"))),
|
|
103
|
-
new TestTreeItem("Click to refresh", TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
104
|
-
description: "Update Docker container list",
|
|
105
|
-
refresh: true
|
|
106
|
-
}, {
|
|
107
|
-
command: "testeranto.refresh",
|
|
108
|
-
title: "Refresh",
|
|
109
|
-
arguments: []
|
|
110
|
-
}, new vscode.ThemeIcon("refresh", new vscode.ThemeColor("testing.iconQueued")))
|
|
111
|
-
];
|
|
112
|
-
// Add all processes
|
|
113
|
-
items.push(...this.processes.map(process => {
|
|
114
|
-
let icon;
|
|
115
|
-
const status = process.status || '';
|
|
116
|
-
if (status.toLowerCase().includes('up') || status.toLowerCase().includes('running')) {
|
|
117
|
-
icon = new vscode.ThemeIcon("check", new vscode.ThemeColor("testing.iconPassed"));
|
|
118
|
-
}
|
|
119
|
-
else if (status.toLowerCase().includes('exited') || status.toLowerCase().includes('stopped')) {
|
|
120
|
-
icon = new vscode.ThemeIcon("error", new vscode.ThemeColor("testing.iconFailed"));
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
icon = new vscode.ThemeIcon("circle-outline", new vscode.ThemeColor("testing.iconUnset"));
|
|
124
|
-
}
|
|
125
|
-
const label = `${process.processId || process.name || 'Unknown'} - ${status || 'unknown'}`;
|
|
126
|
-
const description = process.command || process.image || 'No command';
|
|
127
|
-
return new TestTreeItem(label, TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
|
|
128
|
-
description: description,
|
|
129
|
-
status: status,
|
|
130
|
-
processId: process.processId,
|
|
131
|
-
runtime: process.runtime,
|
|
132
|
-
ports: process.ports
|
|
133
|
-
}, undefined, icon);
|
|
134
|
-
}));
|
|
135
|
-
return items;
|
|
136
|
-
}
|
|
137
|
-
connectWebSocket() {
|
|
138
|
-
if (this.connectionAttempts >= this.maxConnectionAttempts) {
|
|
139
|
-
console.error('Max WebSocket connection attempts reached');
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
this.connectionAttempts++;
|
|
143
|
-
try {
|
|
144
|
-
// Use the ws library for Node.js environment
|
|
145
|
-
const WS = require('ws');
|
|
146
|
-
// The WebSocket server runs on port 3456
|
|
147
|
-
this.ws = new WS('ws://localhost:3456/ws');
|
|
148
|
-
this.ws.on('open', () => {
|
|
149
|
-
console.log('WebSocket connected to process server');
|
|
150
|
-
this.isConnected = true;
|
|
151
|
-
this.connectionAttempts = 0;
|
|
152
|
-
// Request initial processes
|
|
153
|
-
this.requestProcesses();
|
|
154
|
-
});
|
|
155
|
-
this.ws.on('message', (data) => {
|
|
156
|
-
try {
|
|
157
|
-
const message = JSON.parse(data.toString());
|
|
158
|
-
this.handleWebSocketMessage(message);
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
console.error('Error parsing WebSocket message:', error);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
this.ws.on('error', (error) => {
|
|
165
|
-
console.error('WebSocket error:', error);
|
|
166
|
-
this.isConnected = false;
|
|
167
|
-
});
|
|
168
|
-
this.ws.on('close', () => {
|
|
169
|
-
console.log('WebSocket disconnected');
|
|
170
|
-
this.isConnected = false;
|
|
171
|
-
// Attempt to reconnect after 5 seconds
|
|
172
|
-
setTimeout(() => {
|
|
173
|
-
this.connectWebSocket();
|
|
174
|
-
}, 5000);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
console.error('Failed to create WebSocket:', error);
|
|
179
|
-
this.isConnected = false;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
handleWebSocketMessage(message) {
|
|
183
|
-
if (message.type === 'processes') {
|
|
184
|
-
if (message.data && message.data.processes) {
|
|
185
|
-
this.processes = message.data.processes;
|
|
186
|
-
this._onDidChangeTreeData.fire();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
else if (message.type === 'connected') {
|
|
190
|
-
console.log('Connected to process server:', message.message);
|
|
191
|
-
this.isConnected = true;
|
|
192
|
-
// Request processes after connection
|
|
193
|
-
this.requestProcesses();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
requestProcesses() {
|
|
197
|
-
if (this.ws && this.ws.readyState === 1) { // 1 = OPEN
|
|
198
|
-
this.ws.send(JSON.stringify({
|
|
199
|
-
type: 'getProcesses'
|
|
200
|
-
}));
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
console.warn('WebSocket not ready, cannot request processes');
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
async fetchProcesses() {
|
|
207
|
-
if (this.isConnected) {
|
|
208
|
-
this.requestProcesses();
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
// Try to reconnect if not connected
|
|
212
|
-
this.connectWebSocket();
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
startRefreshing() {
|
|
216
|
-
// Fetch immediately
|
|
217
|
-
this.fetchProcesses();
|
|
218
|
-
// Set up periodic refresh every 10 seconds
|
|
219
|
-
this.refreshInterval = setInterval(() => {
|
|
220
|
-
this.fetchProcesses();
|
|
221
|
-
}, 10000);
|
|
222
|
-
}
|
|
223
|
-
dispose() {
|
|
224
|
-
if (this.refreshInterval) {
|
|
225
|
-
clearInterval(this.refreshInterval);
|
|
226
|
-
this.refreshInterval = null;
|
|
227
|
-
}
|
|
228
|
-
if (this.ws) {
|
|
229
|
-
this.ws.close();
|
|
230
|
-
this.ws = null;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as vscode from 'vscode';
|
|
2
|
-
import { TestTreeItem } from '../TestTreeItem';
|
|
3
|
-
import { TreeItemType } from '../types';
|
|
4
|
-
export class ResultsTreeDataProvider {
|
|
5
|
-
constructor() {
|
|
6
|
-
this._onDidChangeTreeData = new vscode.EventEmitter();
|
|
7
|
-
this.onDidChangeTreeData = this._onDidChangeTreeData.event;
|
|
8
|
-
}
|
|
9
|
-
refresh() {
|
|
10
|
-
this._onDidChangeTreeData.fire();
|
|
11
|
-
}
|
|
12
|
-
getTreeItem(element) {
|
|
13
|
-
return element;
|
|
14
|
-
}
|
|
15
|
-
getChildren(element) {
|
|
16
|
-
if (!element) {
|
|
17
|
-
return Promise.resolve(this.getResultItems());
|
|
18
|
-
}
|
|
19
|
-
return Promise.resolve([]);
|
|
20
|
-
}
|
|
21
|
-
getResultItems() {
|
|
22
|
-
const results = [
|
|
23
|
-
{
|
|
24
|
-
label: "Calculator.test.ts - ✓ Passed",
|
|
25
|
-
test: "Calculator.test.ts",
|
|
26
|
-
status: "passed",
|
|
27
|
-
icon: new vscode.ThemeIcon("check", new vscode.ThemeColor("testing.iconPassed"))
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
label: "Calculator.pitono.test.py - ⏳ Running",
|
|
31
|
-
test: "Calculator.pitono.test.py",
|
|
32
|
-
status: "running",
|
|
33
|
-
icon: new vscode.ThemeIcon("sync", new vscode.ThemeColor("testing.iconQueued"))
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
label: "Calculator.golingvu.test.go - ✗ Failed",
|
|
37
|
-
test: "Calculator.golingvu.test.go",
|
|
38
|
-
status: "failed",
|
|
39
|
-
icon: new vscode.ThemeIcon("error", new vscode.ThemeColor("testing.iconFailed"))
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
label: "Calculator.test.ts (web) - ✓ Passed",
|
|
43
|
-
test: "Calculator.test.ts (web)",
|
|
44
|
-
status: "passed",
|
|
45
|
-
icon: new vscode.ThemeIcon("check", new vscode.ThemeColor("testing.iconPassed"))
|
|
46
|
-
}
|
|
47
|
-
];
|
|
48
|
-
return results.map(result => new TestTreeItem(result.label, TreeItemType.Test, vscode.TreeItemCollapsibleState.None, { test: result.test, status: result.status }, undefined, result.icon));
|
|
49
|
-
}
|
|
50
|
-
}
|