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.
Files changed (237) hide show
  1. package/package.json +1 -1
  2. package/src/testeranto.ts +1 -1
  3. package/dist/common/allTestsUtils.js +0 -17
  4. package/dist/common/package.json +0 -3
  5. package/dist/common/scripts/build-example.js +0 -105
  6. package/dist/common/src/Init.js +0 -38
  7. package/dist/common/src/Types.js +0 -63
  8. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
  9. package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
  10. package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
  11. package/dist/common/src/esbuildConfigs/index.js +0 -22
  12. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
  13. package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
  14. package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
  15. package/dist/common/src/init-docs.js +0 -9
  16. package/dist/common/src/lib/tiposkripto/BaseGiven.js +0 -96
  17. package/dist/common/src/lib/tiposkripto/BaseSuite.js +0 -134
  18. package/dist/common/src/lib/tiposkripto/BaseThen.js +0 -65
  19. package/dist/common/src/lib/tiposkripto/BaseTiposkripto.js +0 -193
  20. package/dist/common/src/lib/tiposkripto/BaseWhen.js +0 -46
  21. package/dist/common/src/lib/tiposkripto/CoreTypes.js +0 -2
  22. package/dist/common/src/lib/tiposkripto/Node.js +0 -40
  23. package/dist/common/src/lib/tiposkripto/Tiposkripto.js +0 -49
  24. package/dist/common/src/lib/tiposkripto/Types.js +0 -2
  25. package/dist/common/src/lib/tiposkripto/Web.js +0 -70
  26. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -22
  27. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -16
  28. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -18
  29. package/dist/common/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -24
  30. package/dist/common/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -38
  31. package/dist/common/src/lib/tiposkripto/abstractBase.test/index.js +0 -17
  32. package/dist/common/src/lib/tiposkripto/abstractBase.test/specification.js +0 -19
  33. package/dist/common/src/lib/tiposkripto/abstractBase.test/types.js +0 -2
  34. package/dist/common/src/lib/tiposkripto/index.js +0 -29
  35. package/dist/common/src/runtimes.js +0 -4
  36. package/dist/common/src/server/aider/configParser.js +0 -124
  37. package/dist/common/src/server/aider/docker.js +0 -30
  38. package/dist/common/src/server/getRunnables.js +0 -36
  39. package/dist/common/src/server/htmlTemplate.js +0 -44
  40. package/dist/common/src/server/nodeVersion.js +0 -5
  41. package/dist/common/src/server/runtimes/common.js +0 -136
  42. package/dist/common/src/server/runtimes/golang/docker.js +0 -62
  43. package/dist/common/src/server/runtimes/java/docker.js +0 -46
  44. package/dist/common/src/server/runtimes/node/docker.js +0 -42
  45. package/dist/common/src/server/runtimes/node/esbuild.js +0 -40
  46. package/dist/common/src/server/runtimes/node/node.js +0 -75
  47. package/dist/common/src/server/runtimes/python/docker.js +0 -31
  48. package/dist/common/src/server/runtimes/ruby/docker.js +0 -34
  49. package/dist/common/src/server/runtimes/rust/docker.js +0 -35
  50. package/dist/common/src/server/runtimes/web/docker.js +0 -42
  51. package/dist/common/src/server/runtimes/web/esbuild.js +0 -29
  52. package/dist/common/src/server/runtimes/web/hoist.js +0 -16
  53. package/dist/common/src/server/runtimes/web/web.js +0 -157
  54. package/dist/common/src/server/serverClasees/Server.js +0 -47
  55. package/dist/common/src/server/serverClasees/Server_Base.js +0 -18
  56. package/dist/common/src/server/serverClasees/Server_Docker.js +0 -904
  57. package/dist/common/src/server/serverClasees/Server_FS.js +0 -119
  58. package/dist/common/src/server/serverClasees/Server_HTTP.js +0 -189
  59. package/dist/common/src/server/serverClasees/Server_WS.js +0 -262
  60. package/dist/common/src/server/serverManagers/DockerManager.js +0 -28
  61. package/dist/common/src/server/serverManagers/HttpManager.js +0 -114
  62. package/dist/common/src/server/serverManagers/WsManager.js +0 -230
  63. package/dist/common/src/server/serverManagers/fs.js +0 -32
  64. package/dist/common/src/server/serverManagers/tcp.js +0 -51
  65. package/dist/common/src/server/types.js +0 -2
  66. package/dist/common/src/testeranto.js +0 -75
  67. package/dist/common/src/vscode/TerminalManager.js +0 -129
  68. package/dist/common/src/vscode/TestTreeItem.js +0 -77
  69. package/dist/common/src/vscode/extension.js +0 -185
  70. package/dist/common/src/vscode/providers/FeaturesTreeDataProvider.js +0 -445
  71. package/dist/common/src/vscode/providers/FileTreeDataProvider.js +0 -190
  72. package/dist/common/src/vscode/providers/ProcessesTreeDataProvider.js +0 -270
  73. package/dist/common/src/vscode/providers/ResultsTreeDataProvider.js +0 -87
  74. package/dist/common/src/vscode/providers/TestTreeDataProvider.js +0 -309
  75. package/dist/common/src/vscode/types.js +0 -9
  76. package/dist/common/testeranto/runtimes/node/node.js +0 -7
  77. package/dist/common/testeranto/runtimes/web/web.js +0 -6
  78. package/dist/common/testeranto/testeranto.js +0 -70
  79. package/dist/common/tsconfig.common.tsbuildinfo +0 -1
  80. package/dist/module/allTestsUtils.js +0 -13
  81. package/dist/module/package.json +0 -3
  82. package/dist/module/scripts/build-example.js +0 -100
  83. package/dist/module/src/Init.js +0 -33
  84. package/dist/module/src/Types.js +0 -62
  85. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
  86. package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
  87. package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
  88. package/dist/module/src/esbuildConfigs/index.js +0 -20
  89. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
  90. package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
  91. package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
  92. package/dist/module/src/init-docs.js +0 -4
  93. package/dist/module/src/lib/tiposkripto/BaseGiven.js +0 -92
  94. package/dist/module/src/lib/tiposkripto/BaseSuite.js +0 -130
  95. package/dist/module/src/lib/tiposkripto/BaseThen.js +0 -61
  96. package/dist/module/src/lib/tiposkripto/BaseTiposkripto.js +0 -190
  97. package/dist/module/src/lib/tiposkripto/BaseWhen.js +0 -42
  98. package/dist/module/src/lib/tiposkripto/CoreTypes.js +0 -1
  99. package/dist/module/src/lib/tiposkripto/Node.js +0 -33
  100. package/dist/module/src/lib/tiposkripto/Tiposkripto.js +0 -14
  101. package/dist/module/src/lib/tiposkripto/Types.js +0 -1
  102. package/dist/module/src/lib/tiposkripto/Web.js +0 -63
  103. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -18
  104. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -12
  105. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -14
  106. package/dist/module/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -21
  107. package/dist/module/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -35
  108. package/dist/module/src/lib/tiposkripto/abstractBase.test/index.js +0 -12
  109. package/dist/module/src/lib/tiposkripto/abstractBase.test/specification.js +0 -15
  110. package/dist/module/src/lib/tiposkripto/abstractBase.test/types.js +0 -1
  111. package/dist/module/src/lib/tiposkripto/index.js +0 -24
  112. package/dist/module/src/runtimes.js +0 -1
  113. package/dist/module/src/server/aider/configParser.js +0 -116
  114. package/dist/module/src/server/aider/docker.js +0 -28
  115. package/dist/module/src/server/getRunnables.js +0 -29
  116. package/dist/module/src/server/htmlTemplate.js +0 -40
  117. package/dist/module/src/server/nodeVersion.js +0 -2
  118. package/dist/module/src/server/runtimes/common.js +0 -127
  119. package/dist/module/src/server/runtimes/golang/docker.js +0 -55
  120. package/dist/module/src/server/runtimes/java/docker.js +0 -40
  121. package/dist/module/src/server/runtimes/node/docker.js +0 -36
  122. package/dist/module/src/server/runtimes/node/esbuild.js +0 -35
  123. package/dist/module/src/server/runtimes/node/node.js +0 -37
  124. package/dist/module/src/server/runtimes/python/docker.js +0 -25
  125. package/dist/module/src/server/runtimes/ruby/docker.js +0 -28
  126. package/dist/module/src/server/runtimes/rust/docker.js +0 -29
  127. package/dist/module/src/server/runtimes/web/docker.js +0 -36
  128. package/dist/module/src/server/runtimes/web/esbuild.js +0 -24
  129. package/dist/module/src/server/runtimes/web/hoist.js +0 -11
  130. package/dist/module/src/server/runtimes/web/web.js +0 -119
  131. package/dist/module/src/server/serverClasees/Server.js +0 -40
  132. package/dist/module/src/server/serverClasees/Server_Base.js +0 -14
  133. package/dist/module/src/server/serverClasees/Server_Docker.js +0 -897
  134. package/dist/module/src/server/serverClasees/Server_FS.js +0 -119
  135. package/dist/module/src/server/serverClasees/Server_HTTP.js +0 -182
  136. package/dist/module/src/server/serverClasees/Server_WS.js +0 -258
  137. package/dist/module/src/server/serverManagers/DockerManager.js +0 -28
  138. package/dist/module/src/server/serverManagers/HttpManager.js +0 -110
  139. package/dist/module/src/server/serverManagers/WsManager.js +0 -226
  140. package/dist/module/src/server/serverManagers/fs.js +0 -32
  141. package/dist/module/src/server/serverManagers/tcp.js +0 -47
  142. package/dist/module/src/server/types.js +0 -1
  143. package/dist/module/src/testeranto.js +0 -40
  144. package/dist/module/src/vscode/TerminalManager.js +0 -92
  145. package/dist/module/src/vscode/TestTreeItem.js +0 -40
  146. package/dist/module/src/vscode/extension.js +0 -148
  147. package/dist/module/src/vscode/providers/FeaturesTreeDataProvider.js +0 -408
  148. package/dist/module/src/vscode/providers/FileTreeDataProvider.js +0 -153
  149. package/dist/module/src/vscode/providers/ProcessesTreeDataProvider.js +0 -233
  150. package/dist/module/src/vscode/providers/ResultsTreeDataProvider.js +0 -50
  151. package/dist/module/src/vscode/providers/TestTreeDataProvider.js +0 -272
  152. package/dist/module/src/vscode/types.js +0 -6
  153. package/dist/module/testeranto/runtimes/node/node.js +0 -5
  154. package/dist/module/testeranto/runtimes/web/web.js +0 -4
  155. package/dist/module/testeranto/testeranto.js +0 -68
  156. package/dist/module/tsconfig.module.tsbuildinfo +0 -1
  157. package/dist/prebuild/chunk-QLT7PNPK.mjs +0 -162
  158. package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +0 -20
  159. package/dist/prebuild/init-docs.mjs +0 -56
  160. package/dist/prebuild/server/runtimes/node/node.mjs +0 -80
  161. package/dist/prebuild/server/runtimes/web/hoist.mjs +0 -12
  162. package/dist/prebuild/server/runtimes/web/web.mjs +0 -162
  163. package/dist/prebuild/testeranto-6SAYRVSE.mjs +0 -72
  164. package/dist/prebuild/testeranto.mjs +0 -1692
  165. package/dist/types/src/Init.d.ts +0 -2
  166. package/dist/types/src/Types.d.ts +0 -87
  167. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
  168. package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
  169. package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
  170. package/dist/types/src/esbuildConfigs/index.d.ts +0 -3
  171. package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
  172. package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
  173. package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
  174. package/dist/types/src/init-docs.d.ts +0 -1
  175. package/dist/types/src/lib/tiposkripto/BaseGiven.d.ts +0 -42
  176. package/dist/types/src/lib/tiposkripto/BaseSuite.d.ts +0 -46
  177. package/dist/types/src/lib/tiposkripto/BaseThen.d.ts +0 -28
  178. package/dist/types/src/lib/tiposkripto/BaseTiposkripto.d.ts +0 -35
  179. package/dist/types/src/lib/tiposkripto/BaseWhen.d.ts +0 -27
  180. package/dist/types/src/lib/tiposkripto/CoreTypes.d.ts +0 -51
  181. package/dist/types/src/lib/tiposkripto/Node.d.ts +0 -9
  182. package/dist/types/src/lib/tiposkripto/Tiposkripto.d.ts +0 -5
  183. package/dist/types/src/lib/tiposkripto/Types.d.ts +0 -9
  184. package/dist/types/src/lib/tiposkripto/Web.d.ts +0 -9
  185. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockGiven.d.ts +0 -9
  186. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockThen.d.ts +0 -6
  187. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockWhen.d.ts +0 -6
  188. package/dist/types/src/lib/tiposkripto/abstractBase.test/adapter.d.ts +0 -3
  189. package/dist/types/src/lib/tiposkripto/abstractBase.test/implementation.d.ts +0 -3
  190. package/dist/types/src/lib/tiposkripto/abstractBase.test/index.d.ts +0 -28
  191. package/dist/types/src/lib/tiposkripto/abstractBase.test/specification.d.ts +0 -3
  192. package/dist/types/src/lib/tiposkripto/abstractBase.test/types.d.ts +0 -39
  193. package/dist/types/src/lib/tiposkripto/index.d.ts +0 -56
  194. package/dist/types/src/runtimes.d.ts +0 -2
  195. package/dist/types/src/server/aider/configParser.d.ts +0 -11
  196. package/dist/types/src/server/aider/docker.d.ts +0 -2
  197. package/dist/types/src/server/getRunnables.d.ts +0 -3
  198. package/dist/types/src/server/htmlTemplate.d.ts +0 -2
  199. package/dist/types/src/server/nodeVersion.d.ts +0 -2
  200. package/dist/types/src/server/runtimes/common.d.ts +0 -12
  201. package/dist/types/src/server/runtimes/golang/docker.d.ts +0 -5
  202. package/dist/types/src/server/runtimes/java/docker.d.ts +0 -14
  203. package/dist/types/src/server/runtimes/node/docker.d.ts +0 -14
  204. package/dist/types/src/server/runtimes/node/esbuild.d.ts +0 -4
  205. package/dist/types/src/server/runtimes/node/node.d.ts +0 -1
  206. package/dist/types/src/server/runtimes/python/docker.d.ts +0 -14
  207. package/dist/types/src/server/runtimes/ruby/docker.d.ts +0 -14
  208. package/dist/types/src/server/runtimes/rust/docker.d.ts +0 -14
  209. package/dist/types/src/server/runtimes/web/docker.d.ts +0 -15
  210. package/dist/types/src/server/runtimes/web/esbuild.d.ts +0 -4
  211. package/dist/types/src/server/runtimes/web/hoist.d.ts +0 -1
  212. package/dist/types/src/server/runtimes/web/web.d.ts +0 -1
  213. package/dist/types/src/server/serverClasees/Server.d.ts +0 -8
  214. package/dist/types/src/server/serverClasees/Server_Base.d.ts +0 -9
  215. package/dist/types/src/server/serverClasees/Server_Docker.d.ts +0 -81
  216. package/dist/types/src/server/serverClasees/Server_FS.d.ts +0 -0
  217. package/dist/types/src/server/serverClasees/Server_HTTP.d.ts +0 -20
  218. package/dist/types/src/server/serverClasees/Server_WS.d.ts +0 -23
  219. package/dist/types/src/server/serverManagers/DockerManager.d.ts +0 -0
  220. package/dist/types/src/server/serverManagers/HttpManager.d.ts +0 -9
  221. package/dist/types/src/server/serverManagers/WsManager.d.ts +0 -10
  222. package/dist/types/src/server/serverManagers/fs.d.ts +0 -0
  223. package/dist/types/src/server/serverManagers/tcp.d.ts +0 -27
  224. package/dist/types/src/server/types.d.ts +0 -68
  225. package/dist/types/src/testeranto.d.ts +0 -1
  226. package/dist/types/src/vscode/TerminalManager.d.ts +0 -18
  227. package/dist/types/src/vscode/TestTreeItem.d.ts +0 -13
  228. package/dist/types/src/vscode/extension.d.ts +0 -3
  229. package/dist/types/src/vscode/providers/FeaturesTreeDataProvider.d.ts +0 -17
  230. package/dist/types/src/vscode/providers/FileTreeDataProvider.d.ts +0 -13
  231. package/dist/types/src/vscode/providers/ProcessesTreeDataProvider.d.ts +0 -23
  232. package/dist/types/src/vscode/providers/ResultsTreeDataProvider.d.ts +0 -10
  233. package/dist/types/src/vscode/providers/TestTreeDataProvider.d.ts +0 -16
  234. package/dist/types/src/vscode/types.d.ts +0 -14
  235. package/dist/types/testeranto/testeranto.d.ts +0 -3
  236. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
  237. 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
- }