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.
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,445 +0,0 @@
1
- "use strict";
2
- // This component shows a tree
3
- // It first breaksdown matching the file structure.
4
- // tests.json are further broken done via given-when-then
5
- // features are also spread into the tree
6
- // example: "testeranto/reports/allTests/example/node.Calculator.test.ts.json"
7
- // the tree should spread to "example/Calculator.test.ts"
8
- // then the json file is spread from there
9
- // • example(folder)
10
- // • Calculator.test.ts(file)
11
- // • node(runtime - specific results)
12
- // • Overall status
13
- // • Features
14
- // • Test Scenarios
15
- // • Scenario 1: ...
16
- // • GIVEN: ...
17
- // • Features
18
- // • WHEN Steps
19
- // • THEN Assertions
20
- // • python(runtime - specific results)
21
- // • ...
22
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
- if (k2 === undefined) k2 = k;
24
- var desc = Object.getOwnPropertyDescriptor(m, k);
25
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
- desc = { enumerable: true, get: function() { return m[k]; } };
27
- }
28
- Object.defineProperty(o, k2, desc);
29
- }) : (function(o, m, k, k2) {
30
- if (k2 === undefined) k2 = k;
31
- o[k2] = m[k];
32
- }));
33
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
- Object.defineProperty(o, "default", { enumerable: true, value: v });
35
- }) : function(o, v) {
36
- o["default"] = v;
37
- });
38
- var __importStar = (this && this.__importStar) || (function () {
39
- var ownKeys = function(o) {
40
- ownKeys = Object.getOwnPropertyNames || function (o) {
41
- var ar = [];
42
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
43
- return ar;
44
- };
45
- return ownKeys(o);
46
- };
47
- return function (mod) {
48
- if (mod && mod.__esModule) return mod;
49
- var result = {};
50
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
51
- __setModuleDefault(result, mod);
52
- return result;
53
- };
54
- })();
55
- Object.defineProperty(exports, "__esModule", { value: true });
56
- exports.FeaturesTreeDataProvider = void 0;
57
- const vscode = __importStar(require("vscode"));
58
- const TestTreeItem_1 = require("../TestTreeItem");
59
- const types_1 = require("../types");
60
- const fs = __importStar(require("fs"));
61
- const path = __importStar(require("path"));
62
- class FeaturesTreeDataProvider {
63
- constructor() {
64
- this._onDidChangeTreeData = new vscode.EventEmitter();
65
- this.onDidChangeTreeData = this._onDidChangeTreeData.event;
66
- // Determine the workspace root
67
- const workspaceFolders = vscode.workspace.workspaceFolders;
68
- if (workspaceFolders && workspaceFolders.length > 0) {
69
- this.resultsDir = path.join(workspaceFolders[0].uri.fsPath, 'testeranto', 'reports', 'allTests', 'example');
70
- }
71
- else {
72
- this.resultsDir = path.join(process.cwd(), 'testeranto', 'reports', 'allTests', 'example');
73
- }
74
- }
75
- refresh() {
76
- this._onDidChangeTreeData.fire();
77
- }
78
- getTreeItem(element) {
79
- return element;
80
- }
81
- getChildren(element) {
82
- if (!element) {
83
- return Promise.resolve(this.getSourceStructure());
84
- }
85
- else {
86
- const data = element.data;
87
- if (data === null || data === void 0 ? void 0 : data.sourcePath) {
88
- // Always get children for the source path
89
- return Promise.resolve(this.getSourceChildren(data.sourcePath));
90
- }
91
- else if ((data === null || data === void 0 ? void 0 : data.testFile) && data.testResultIndex === undefined) {
92
- // This handles the case when we're showing test results
93
- return Promise.resolve(this.getTestResults(data.testFile));
94
- }
95
- else if ((data === null || data === void 0 ? void 0 : data.testResultIndex) !== undefined) {
96
- return Promise.resolve(this.getTestDetails(data.testFile, data.testResultIndex));
97
- }
98
- }
99
- return Promise.resolve([]);
100
- }
101
- getSourceStructure() {
102
- // Check if results directory exists
103
- if (!fs.existsSync(this.resultsDir)) {
104
- return [
105
- new TestTreeItem_1.TestTreeItem('No test results found', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
106
- description: 'Run tests to generate results in testeranto/reports/allTests/example/'
107
- }, undefined, new vscode.ThemeIcon('info'))
108
- ];
109
- }
110
- // Get all JSON files in the results directory
111
- const files = fs.readdirSync(this.resultsDir).filter(file => file.endsWith('.json'));
112
- if (files.length === 0) {
113
- return [
114
- new TestTreeItem_1.TestTreeItem('No test results found', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
115
- description: 'Run tests to generate results'
116
- }, undefined, new vscode.ThemeIcon('info'))
117
- ];
118
- }
119
- // Build a tree structure based on file paths
120
- // First level: 'example' directory
121
- const treeRoot = { name: '', children: new Map(), fullPath: '', isFile: false };
122
- // Add 'example' node
123
- const exampleNode = {
124
- name: 'example',
125
- children: new Map(),
126
- fullPath: 'example',
127
- isFile: false
128
- };
129
- treeRoot.children.set('example', exampleNode);
130
- for (const file of files) {
131
- // Extract test name from filename (e.g., "node.Calculator.test.ts.json" -> "Calculator.test.ts")
132
- // Remove runtime prefix and .json extension
133
- const match = file.match(/^\w+\.(.+)\.json$/);
134
- if (match) {
135
- const testFileName = match[1]; // e.g., "Calculator.test.ts"
136
- // Add test file under 'example'
137
- if (!exampleNode.children.has(testFileName)) {
138
- exampleNode.children.set(testFileName, {
139
- name: testFileName,
140
- children: new Map(),
141
- fullPath: `example/${testFileName}`,
142
- isFile: true,
143
- fileName: file
144
- });
145
- }
146
- }
147
- }
148
- // Convert tree to TestTreeItems
149
- return this.buildSourceTreeItems(treeRoot);
150
- }
151
- buildSourceTreeItems(node) {
152
- const items = [];
153
- // Sort children: directories first, then files, alphabetically
154
- const sortedChildren = Array.from(node.children.values()).sort((a, b) => {
155
- if (a.isFile && !b.isFile)
156
- return 1;
157
- if (!a.isFile && b.isFile)
158
- return -1;
159
- return a.name.localeCompare(b.name);
160
- });
161
- for (const child of sortedChildren) {
162
- // Set collapsible state based on whether it's a file or directory
163
- // Directories can be expanded, files can be expanded to show test results
164
- const collapsibleState = vscode.TreeItemCollapsibleState.Collapsed;
165
- const treeItem = new TestTreeItem_1.TestTreeItem(child.name, types_1.TreeItemType.File, collapsibleState, {
166
- sourcePath: child.fullPath,
167
- testFile: child.fileName,
168
- fileName: child.fileName,
169
- // Add a flag to indicate if it's a file or directory
170
- isFile: child.isFile
171
- }, undefined, child.isFile ? new vscode.ThemeIcon("file-code") : new vscode.ThemeIcon("folder"));
172
- items.push(treeItem);
173
- }
174
- return items;
175
- }
176
- getSourceChildren(sourcePath) {
177
- // Check if results directory exists
178
- if (!fs.existsSync(this.resultsDir)) {
179
- return [];
180
- }
181
- // Get all JSON files in the results directory
182
- const files = fs.readdirSync(this.resultsDir).filter(file => file.endsWith('.json'));
183
- // Split sourcePath into parts
184
- const parts = sourcePath.split('/').filter(p => p.length > 0);
185
- // If we're at the root level, show 'example' directory
186
- if (parts.length === 0) {
187
- return [
188
- new TestTreeItem_1.TestTreeItem('example', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
189
- sourcePath: 'example',
190
- isFile: false
191
- }, undefined, new vscode.ThemeIcon('folder'))
192
- ];
193
- }
194
- // If we're at the 'example' level, show test files
195
- if (parts.length === 1 && parts[0] === 'example') {
196
- // Group files by test name (without runtime prefix)
197
- const testFiles = new Map(); // testName -> list of runtime files
198
- for (const file of files) {
199
- const match = file.match(/^(\w+)\.(.+)\.json$/);
200
- if (match) {
201
- const runtime = match[1];
202
- const testName = match[2];
203
- if (!testFiles.has(testName)) {
204
- testFiles.set(testName, []);
205
- }
206
- testFiles.get(testName).push(file);
207
- }
208
- }
209
- // Create test file items
210
- const items = [];
211
- for (const [testName, runtimeFiles] of testFiles) {
212
- // Count passed/failed for this test across all runtimes
213
- let passedCount = 0;
214
- let failedCount = 0;
215
- for (const file of runtimeFiles) {
216
- try {
217
- const filePath = path.join(this.resultsDir, file);
218
- const content = fs.readFileSync(filePath, 'utf-8');
219
- const result = JSON.parse(content);
220
- if (result.status === true || result.failed === false) {
221
- passedCount++;
222
- }
223
- else {
224
- failedCount++;
225
- }
226
- }
227
- catch (_a) {
228
- // Skip if can't parse
229
- }
230
- }
231
- const total = runtimeFiles.length;
232
- const description = `${passedCount} passed, ${failedCount} failed`;
233
- items.push(new TestTreeItem_1.TestTreeItem(testName, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
234
- sourcePath: `example/${testName}`,
235
- testName: testName,
236
- isFile: true,
237
- description: description
238
- }, undefined, failedCount === 0 ?
239
- new vscode.ThemeIcon('file-code', new vscode.ThemeColor('testing.iconPassed')) :
240
- new vscode.ThemeIcon('file-code', new vscode.ThemeColor('testing.iconFailed'))));
241
- }
242
- return items.sort((a, b) => a.label.localeCompare(b.label));
243
- }
244
- // If we're at the test file level (e.g., "example/Calculator.test.ts"), show runtime-specific results
245
- if (parts.length === 2 && parts[0] === 'example') {
246
- const testName = parts[1];
247
- // Find all runtime files for this test
248
- const runtimeFiles = files.filter(file => {
249
- const match = file.match(/^(\w+)\.(.+)\.json$/);
250
- return match && match[2] === testName;
251
- });
252
- return runtimeFiles.map(file => {
253
- const match = file.match(/^(\w+)\.(.+)\.json$/);
254
- const runtime = match ? match[1] : 'unknown';
255
- // Read the file to get status
256
- let icon = new vscode.ThemeIcon('file-code');
257
- let description = '';
258
- try {
259
- const filePath = path.join(this.resultsDir, file);
260
- const content = fs.readFileSync(filePath, 'utf-8');
261
- const result = JSON.parse(content);
262
- if (result.status === true || result.failed === false) {
263
- icon = new vscode.ThemeIcon('check', new vscode.ThemeColor('testing.iconPassed'));
264
- description = 'PASSED';
265
- }
266
- else {
267
- icon = new vscode.ThemeIcon('error', new vscode.ThemeColor('testing.iconFailed'));
268
- description = `FAILED: ${result.fails || 0} failures`;
269
- }
270
- }
271
- catch (_a) {
272
- description = 'Error reading file';
273
- icon = new vscode.ThemeIcon('warning');
274
- }
275
- return new TestTreeItem_1.TestTreeItem(runtime, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
276
- sourcePath: `example/${testName}/${runtime}`,
277
- testFile: file,
278
- fileName: file,
279
- isFile: true,
280
- description: description
281
- }, undefined, icon);
282
- }).sort((a, b) => a.label.localeCompare(b.label));
283
- }
284
- // If we're at the runtime level under a test file (e.g., "example/Calculator.test.ts/node"), show test results
285
- if (parts.length === 3 && parts[0] === 'example') {
286
- const testName = parts[1];
287
- const runtime = parts[2];
288
- // Find the actual file
289
- const fileName = `${runtime}.${testName}.json`;
290
- if (files.includes(fileName)) {
291
- // Return the test results for this file
292
- return this.getTestResults(fileName);
293
- }
294
- }
295
- return [];
296
- }
297
- getTestFilesForRuntime(runtime) {
298
- const files = fs.readdirSync(this.resultsDir).filter(file => file.startsWith(runtime + '.') && file.endsWith('.json'));
299
- return files.map(file => {
300
- const filePath = path.join(this.resultsDir, file);
301
- try {
302
- const content = fs.readFileSync(filePath, 'utf-8');
303
- const result = JSON.parse(content);
304
- let icon;
305
- let description = '';
306
- if (result.status === true || result.failed === false) {
307
- icon = new vscode.ThemeIcon('check', new vscode.ThemeColor('testing.iconPassed'));
308
- description = 'All tests passed';
309
- }
310
- else {
311
- icon = new vscode.ThemeIcon('error', new vscode.ThemeColor('testing.iconFailed'));
312
- description = `${result.fails || 0} tests failed`;
313
- }
314
- return new TestTreeItem_1.TestTreeItem(file, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
315
- testFile: file,
316
- description: description
317
- }, undefined, icon);
318
- }
319
- catch (error) {
320
- return new TestTreeItem_1.TestTreeItem(file, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
321
- testFile: file,
322
- description: 'Error reading file'
323
- }, undefined, new vscode.ThemeIcon('warning'));
324
- }
325
- });
326
- }
327
- getTestResults(testFile) {
328
- var _a;
329
- const filePath = path.join(this.resultsDir, testFile);
330
- try {
331
- const content = fs.readFileSync(filePath, 'utf-8');
332
- const result = JSON.parse(content);
333
- const items = [];
334
- // Add overall status
335
- const overallPassed = result.status === true || result.failed === false;
336
- items.push(new TestTreeItem_1.TestTreeItem(`Overall: ${overallPassed ? 'PASSED' : 'FAILED'}`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
337
- description: `Fails: ${result.fails || 0} | Features: ${((_a = result.features) === null || _a === void 0 ? void 0 : _a.length) || 0}`
338
- }, undefined, overallPassed ?
339
- new vscode.ThemeIcon('check', new vscode.ThemeColor('testing.iconPassed')) :
340
- new vscode.ThemeIcon('error', new vscode.ThemeColor('testing.iconFailed'))));
341
- // Add features section
342
- if (result.features && result.features.length > 0) {
343
- const featuresItem = new TestTreeItem_1.TestTreeItem(`Features (${result.features.length})`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
344
- description: 'All test features'
345
- }, undefined, new vscode.ThemeIcon('symbol-array'));
346
- items.push(featuresItem);
347
- }
348
- // Add Givens section (test scenarios)
349
- if (result.givens && result.givens.length > 0) {
350
- const givensItem = new TestTreeItem_1.TestTreeItem(`Test Scenarios (${result.givens.length})`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
351
- description: 'Given-When-Then test cases'
352
- }, undefined, new vscode.ThemeIcon('list-tree'));
353
- items.push(givensItem);
354
- // Add each given as a child
355
- for (let i = 0; i < result.givens.length; i++) {
356
- const given = result.givens[i];
357
- const givenPassed = given.status === true || given.failed === false;
358
- const givenItem = new TestTreeItem_1.TestTreeItem(`Scenario ${i + 1}: ${given.key || 'Unnamed'}`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, {
359
- testFile: testFile,
360
- testResultIndex: i,
361
- description: givenPassed ? 'PASSED' : 'FAILED'
362
- }, undefined, givenPassed ?
363
- new vscode.ThemeIcon('check', new vscode.ThemeColor('testing.iconPassed')) :
364
- new vscode.ThemeIcon('error', new vscode.ThemeColor('testing.iconFailed')));
365
- items.push(givenItem);
366
- }
367
- }
368
- return items;
369
- }
370
- catch (error) {
371
- return [
372
- new TestTreeItem_1.TestTreeItem('Error reading test results', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
373
- description: String(error)
374
- }, undefined, new vscode.ThemeIcon('error'))
375
- ];
376
- }
377
- }
378
- getTestDetails(testFile, index) {
379
- const filePath = path.join(this.resultsDir, testFile);
380
- try {
381
- const content = fs.readFileSync(filePath, 'utf-8');
382
- const result = JSON.parse(content);
383
- if (!result.givens || index >= result.givens.length) {
384
- return [
385
- new TestTreeItem_1.TestTreeItem('Test scenario not found', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, { description: 'Invalid test scenario index' }, undefined, new vscode.ThemeIcon('warning'))
386
- ];
387
- }
388
- const given = result.givens[index];
389
- const items = [];
390
- // Add GIVEN section
391
- const givenPassed = given.status === true || given.failed === false;
392
- items.push(new TestTreeItem_1.TestTreeItem(`GIVEN: ${given.key || 'Test Scenario'}`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, { description: givenPassed ? 'PASSED' : 'FAILED' }, undefined, givenPassed ?
393
- new vscode.ThemeIcon('check') :
394
- new vscode.ThemeIcon('error')));
395
- // Add features for this given
396
- if (given.features && given.features.length > 0) {
397
- const featuresItem = new TestTreeItem_1.TestTreeItem(`Features (${given.features.length})`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, { description: 'Features tested in this scenario' }, undefined, new vscode.ThemeIcon('symbol-array'));
398
- items.push(featuresItem);
399
- for (const feature of given.features) {
400
- items.push(new TestTreeItem_1.TestTreeItem(feature, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, { description: 'Feature' }, undefined, new vscode.ThemeIcon('symbol-string')));
401
- }
402
- }
403
- // Add WHEN steps
404
- if (given.whens && given.whens.length > 0) {
405
- const whensItem = new TestTreeItem_1.TestTreeItem(`WHEN Steps (${given.whens.length})`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, { description: 'Actions performed' }, undefined, new vscode.ThemeIcon('list-ordered'));
406
- items.push(whensItem);
407
- for (let i = 0; i < given.whens.length; i++) {
408
- const when = given.whens[i];
409
- items.push(new TestTreeItem_1.TestTreeItem(`Step ${i + 1}: ${when.name || 'Action'}`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
410
- description: when.status || 'No status',
411
- tooltip: when.error ? `Error: ${when.error}` : undefined
412
- }, undefined, when.error ?
413
- new vscode.ThemeIcon('error') :
414
- new vscode.ThemeIcon('circle')));
415
- }
416
- }
417
- // Add THEN assertions
418
- if (given.thens && given.thens.length > 0) {
419
- const thensItem = new TestTreeItem_1.TestTreeItem(`THEN Assertions (${given.thens.length})`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.Collapsed, { description: 'Expected outcomes' }, undefined, new vscode.ThemeIcon('checklist'));
420
- items.push(thensItem);
421
- for (let i = 0; i < given.thens.length; i++) {
422
- const then = given.thens[i];
423
- const assertionPassed = !then.error;
424
- items.push(new TestTreeItem_1.TestTreeItem(`Assertion ${i + 1}: ${then.name || 'Check'}`, types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, {
425
- description: assertionPassed ? 'PASSED' : 'FAILED',
426
- tooltip: then.error ? `Error: ${then.error}` : undefined
427
- }, undefined, assertionPassed ?
428
- new vscode.ThemeIcon('check') :
429
- new vscode.ThemeIcon('error')));
430
- }
431
- }
432
- // Add error if present
433
- if (given.error) {
434
- items.push(new TestTreeItem_1.TestTreeItem('Error Details', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, { description: given.error }, undefined, new vscode.ThemeIcon('warning')));
435
- }
436
- return items;
437
- }
438
- catch (error) {
439
- return [
440
- new TestTreeItem_1.TestTreeItem('Error reading test details', types_1.TreeItemType.File, vscode.TreeItemCollapsibleState.None, { description: String(error) }, undefined, new vscode.ThemeIcon('error'))
441
- ];
442
- }
443
- }
444
- }
445
- exports.FeaturesTreeDataProvider = FeaturesTreeDataProvider;
@@ -1,190 +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.FileTreeDataProvider = void 0;
37
- const vscode = __importStar(require("vscode"));
38
- const TestTreeItem_1 = require("../TestTreeItem");
39
- const types_1 = require("../types");
40
- class FileTreeDataProvider {
41
- constructor() {
42
- this._onDidChangeTreeData = new vscode.EventEmitter();
43
- this.onDidChangeTreeData = this._onDidChangeTreeData.event;
44
- }
45
- refresh() {
46
- this._onDidChangeTreeData.fire();
47
- }
48
- getTreeItem(element) {
49
- return element;
50
- }
51
- getChildren(element) {
52
- var _a;
53
- if (!element) {
54
- return this.getRootItems();
55
- }
56
- else {
57
- const path = (_a = element.data) === null || _a === void 0 ? void 0 : _a.path;
58
- return this.getDirectoryItems(path);
59
- }
60
- }
61
- async getRootItems() {
62
- const tree = await this.buildFileTree();
63
- if (!tree) {
64
- return [];
65
- }
66
- return this.buildTreeItems(tree);
67
- }
68
- async getDirectoryItems(path) {
69
- if (!path) {
70
- return [];
71
- }
72
- const tree = await this.buildFileTree();
73
- if (!tree) {
74
- return [];
75
- }
76
- // Find the node corresponding to the path
77
- const parts = path.split('/').filter(p => p.length > 0);
78
- let currentNode = tree;
79
- for (const part of parts) {
80
- if (currentNode.children.has(part)) {
81
- currentNode = currentNode.children.get(part);
82
- }
83
- else {
84
- return [];
85
- }
86
- }
87
- return this.buildTreeItems(currentNode);
88
- }
89
- async buildFileTree() {
90
- const jsonFilePaths = [
91
- "testeranto/bundles/allTests/golang/example/Calculator.test.go-inputFiles.json",
92
- "testeranto/bundles/allTests/node/example/Calculator.test.mjs-inputFiles.json",
93
- "testeranto/bundles/allTests/web/example/Calculator.test.mjs-inputFiles.json",
94
- "testeranto/bundles/allTests/python/example/Calculator.test.py-inputFiles.json",
95
- "testeranto/bundles/allTests/ruby/example/Calculator.test.rb-inputFiles.json"
96
- ];
97
- const allFiles = new Set();
98
- const workspaceFolders = vscode.workspace.workspaceFolders;
99
- if (!workspaceFolders || workspaceFolders.length === 0) {
100
- console.error("No workspace folder open");
101
- return null;
102
- }
103
- const workspaceRoot = workspaceFolders[0].uri;
104
- // Add files from JSON input files
105
- for (const jsonFilePath of jsonFilePaths) {
106
- try {
107
- const jsonFileUri = vscode.Uri.joinPath(workspaceRoot, jsonFilePath);
108
- const fileContent = await vscode.workspace.fs.readFile(jsonFileUri);
109
- const files = JSON.parse(Buffer.from(fileContent).toString('utf-8'));
110
- files.forEach(file => allFiles.add(file));
111
- }
112
- catch (error) {
113
- console.error(`Failed to read JSON file ${jsonFilePath}:`, error);
114
- // Continue with other files
115
- }
116
- }
117
- // Add report files from testeranto/reports/allTests/example/
118
- try {
119
- const reportsDir = vscode.Uri.joinPath(workspaceRoot, "testeranto/reports/allTests/example");
120
- // Check if directory exists
121
- try {
122
- await vscode.workspace.fs.stat(reportsDir);
123
- // Read directory contents
124
- const entries = await vscode.workspace.fs.readDirectory(reportsDir);
125
- for (const [name, type] of entries) {
126
- if (type === vscode.FileType.File && name.endsWith('.json')) {
127
- // Add the report file path
128
- const reportFilePath = `testeranto/reports/allTests/example/${name}`;
129
- allFiles.add(reportFilePath);
130
- }
131
- }
132
- }
133
- catch (error) {
134
- console.log(`Reports directory doesn't exist or can't be read: ${reportsDir.fsPath}`);
135
- }
136
- }
137
- catch (error) {
138
- console.error(`Failed to scan reports directory:`, error);
139
- }
140
- // Build tree structure
141
- const treeRoot = { name: '', children: new Map(), fullPath: '', isFile: false };
142
- for (const rawFileName of Array.from(allFiles)) {
143
- // Remove leading '/' if present
144
- const fileName = rawFileName.startsWith('/') ? rawFileName.substring(1) : rawFileName;
145
- const parts = fileName.split('/');
146
- let currentNode = treeRoot;
147
- for (let i = 0; i < parts.length; i++) {
148
- const part = parts[i];
149
- const isLast = i === parts.length - 1;
150
- if (!currentNode.children.has(part)) {
151
- currentNode.children.set(part, {
152
- name: part,
153
- children: new Map(),
154
- fullPath: parts.slice(0, i + 1).join('/'),
155
- isFile: isLast
156
- });
157
- }
158
- currentNode = currentNode.children.get(part);
159
- }
160
- }
161
- return treeRoot;
162
- }
163
- buildTreeItems(node) {
164
- const items = [];
165
- // Sort children: directories first, then files, alphabetically
166
- const sortedChildren = Array.from(node.children.values()).sort((a, b) => {
167
- if (a.isFile && !b.isFile)
168
- return 1;
169
- if (!a.isFile && b.isFile)
170
- return -1;
171
- return a.name.localeCompare(b.name);
172
- });
173
- for (const child of sortedChildren) {
174
- const collapsibleState = child.isFile
175
- ? vscode.TreeItemCollapsibleState.None
176
- : vscode.TreeItemCollapsibleState.Collapsed;
177
- const treeItem = new TestTreeItem_1.TestTreeItem(child.name, types_1.TreeItemType.File, collapsibleState, {
178
- path: child.fullPath,
179
- fileName: child.fullPath
180
- }, child.isFile ? {
181
- command: "vscode.open",
182
- title: "Open File",
183
- arguments: [vscode.Uri.file(child.fullPath)]
184
- } : undefined, child.isFile ? new vscode.ThemeIcon("file") : new vscode.ThemeIcon("folder"));
185
- items.push(treeItem);
186
- }
187
- return items;
188
- }
189
- }
190
- exports.FileTreeDataProvider = FileTreeDataProvider;