@walkeros/cli 0.7.0-next.0 → 0.8.0

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 (269) hide show
  1. package/README.md +123 -37
  2. package/dist/examples/flow-order-complete.json +0 -1
  3. package/dist/examples/flow-simple.json +0 -3
  4. package/dist/examples/flow.json +0 -1
  5. package/dist/index.d.ts +23 -13
  6. package/dist/index.js +882 -846
  7. package/dist/index.js.map +1 -1
  8. package/dist/runtime/main.d.ts +2 -0
  9. package/dist/runtime/main.js +271 -0
  10. package/dist/runtime/main.js.map +1 -0
  11. package/dist/walker.js +1 -1
  12. package/examples/flow-order-complete.json +0 -1
  13. package/examples/flow-simple.json +0 -3
  14. package/examples/flow.json +0 -1
  15. package/package.json +10 -7
  16. package/CHANGELOG.md +0 -159
  17. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +0 -2
  18. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +0 -1
  19. package/dist/__tests__/bundle/bundler-helpers.test.js +0 -151
  20. package/dist/__tests__/bundle/bundler-helpers.test.js.map +0 -1
  21. package/dist/__tests__/bundle/bundler.test.d.ts +0 -2
  22. package/dist/__tests__/bundle/bundler.test.d.ts.map +0 -1
  23. package/dist/__tests__/bundle/bundler.test.js +0 -353
  24. package/dist/__tests__/bundle/bundler.test.js.map +0 -1
  25. package/dist/__tests__/bundle/programmatic.test.d.ts +0 -2
  26. package/dist/__tests__/bundle/programmatic.test.d.ts.map +0 -1
  27. package/dist/__tests__/bundle/programmatic.test.js +0 -148
  28. package/dist/__tests__/bundle/programmatic.test.js.map +0 -1
  29. package/dist/__tests__/cli-e2e.test.d.ts +0 -8
  30. package/dist/__tests__/cli-e2e.test.d.ts.map +0 -1
  31. package/dist/__tests__/cli-e2e.test.js +0 -130
  32. package/dist/__tests__/cli-e2e.test.js.map +0 -1
  33. package/dist/__tests__/cli.test.d.ts +0 -2
  34. package/dist/__tests__/cli.test.d.ts.map +0 -1
  35. package/dist/__tests__/cli.test.js +0 -180
  36. package/dist/__tests__/cli.test.js.map +0 -1
  37. package/dist/__tests__/config-loader.test.d.ts +0 -7
  38. package/dist/__tests__/config-loader.test.d.ts.map +0 -1
  39. package/dist/__tests__/config-loader.test.js +0 -414
  40. package/dist/__tests__/config-loader.test.js.map +0 -1
  41. package/dist/__tests__/core/asset-resolver.test.d.ts +0 -2
  42. package/dist/__tests__/core/asset-resolver.test.d.ts.map +0 -1
  43. package/dist/__tests__/core/asset-resolver.test.js +0 -14
  44. package/dist/__tests__/core/asset-resolver.test.js.map +0 -1
  45. package/dist/__tests__/core/build-cache.test.d.ts +0 -2
  46. package/dist/__tests__/core/build-cache.test.d.ts.map +0 -1
  47. package/dist/__tests__/core/build-cache.test.js +0 -55
  48. package/dist/__tests__/core/build-cache.test.js.map +0 -1
  49. package/dist/__tests__/core/cache-utils.test.d.ts +0 -2
  50. package/dist/__tests__/core/cache-utils.test.d.ts.map +0 -1
  51. package/dist/__tests__/core/cache-utils.test.js +0 -70
  52. package/dist/__tests__/core/cache-utils.test.js.map +0 -1
  53. package/dist/__tests__/core/config.test.d.ts +0 -2
  54. package/dist/__tests__/core/config.test.d.ts.map +0 -1
  55. package/dist/__tests__/core/config.test.js +0 -72
  56. package/dist/__tests__/core/config.test.js.map +0 -1
  57. package/dist/__tests__/core/docker-url.test.d.ts +0 -2
  58. package/dist/__tests__/core/docker-url.test.d.ts.map +0 -1
  59. package/dist/__tests__/core/docker-url.test.js +0 -54
  60. package/dist/__tests__/core/docker-url.test.js.map +0 -1
  61. package/dist/__tests__/core/logger.test.d.ts +0 -2
  62. package/dist/__tests__/core/logger.test.d.ts.map +0 -1
  63. package/dist/__tests__/core/logger.test.js +0 -53
  64. package/dist/__tests__/core/logger.test.js.map +0 -1
  65. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +0 -8
  66. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +0 -1
  67. package/dist/__tests__/integration/bundle-run.integration.test.js +0 -54
  68. package/dist/__tests__/integration/bundle-run.integration.test.js.map +0 -1
  69. package/dist/__tests__/push/push.test.d.ts +0 -7
  70. package/dist/__tests__/push/push.test.d.ts.map +0 -1
  71. package/dist/__tests__/push/push.test.js +0 -197
  72. package/dist/__tests__/push/push.test.js.map +0 -1
  73. package/dist/__tests__/simulate/env-loader.test.d.ts +0 -2
  74. package/dist/__tests__/simulate/env-loader.test.d.ts.map +0 -1
  75. package/dist/__tests__/simulate/env-loader.test.js +0 -47
  76. package/dist/__tests__/simulate/env-loader.test.js.map +0 -1
  77. package/dist/__tests__/simulate/node-executor.test.d.ts +0 -5
  78. package/dist/__tests__/simulate/node-executor.test.d.ts.map +0 -1
  79. package/dist/__tests__/simulate/node-executor.test.js +0 -25
  80. package/dist/__tests__/simulate/node-executor.test.js.map +0 -1
  81. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +0 -5
  82. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +0 -1
  83. package/dist/__tests__/simulate/server-simulate.integration.test.js +0 -58
  84. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +0 -1
  85. package/dist/__tests__/smoke/production.smoke.test.d.ts +0 -8
  86. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +0 -1
  87. package/dist/__tests__/smoke/production.smoke.test.js +0 -65
  88. package/dist/__tests__/smoke/production.smoke.test.js.map +0 -1
  89. package/dist/commands/bundle/bundler.d.ts +0 -32
  90. package/dist/commands/bundle/bundler.d.ts.map +0 -1
  91. package/dist/commands/bundle/bundler.js +0 -583
  92. package/dist/commands/bundle/bundler.js.map +0 -1
  93. package/dist/commands/bundle/index.d.ts +0 -57
  94. package/dist/commands/bundle/index.d.ts.map +0 -1
  95. package/dist/commands/bundle/index.js +0 -200
  96. package/dist/commands/bundle/index.js.map +0 -1
  97. package/dist/commands/bundle/package-manager.d.ts +0 -8
  98. package/dist/commands/bundle/package-manager.d.ts.map +0 -1
  99. package/dist/commands/bundle/package-manager.js +0 -197
  100. package/dist/commands/bundle/package-manager.js.map +0 -1
  101. package/dist/commands/bundle/stats.d.ts +0 -23
  102. package/dist/commands/bundle/stats.d.ts.map +0 -1
  103. package/dist/commands/bundle/stats.js +0 -52
  104. package/dist/commands/bundle/stats.js.map +0 -1
  105. package/dist/commands/cache.d.ts +0 -3
  106. package/dist/commands/cache.d.ts.map +0 -1
  107. package/dist/commands/cache.js +0 -44
  108. package/dist/commands/cache.js.map +0 -1
  109. package/dist/commands/push/index.d.ts +0 -7
  110. package/dist/commands/push/index.d.ts.map +0 -1
  111. package/dist/commands/push/index.js +0 -257
  112. package/dist/commands/push/index.js.map +0 -1
  113. package/dist/commands/push/types.d.ts +0 -21
  114. package/dist/commands/push/types.d.ts.map +0 -1
  115. package/dist/commands/push/types.js +0 -2
  116. package/dist/commands/push/types.js.map +0 -1
  117. package/dist/commands/run/__tests__/run.integration.test.d.ts +0 -8
  118. package/dist/commands/run/__tests__/run.integration.test.d.ts.map +0 -1
  119. package/dist/commands/run/__tests__/run.integration.test.js +0 -52
  120. package/dist/commands/run/__tests__/run.integration.test.js.map +0 -1
  121. package/dist/commands/run/__tests__/validators.test.d.ts +0 -2
  122. package/dist/commands/run/__tests__/validators.test.d.ts.map +0 -1
  123. package/dist/commands/run/__tests__/validators.test.js +0 -80
  124. package/dist/commands/run/__tests__/validators.test.js.map +0 -1
  125. package/dist/commands/run/execution.d.ts +0 -14
  126. package/dist/commands/run/execution.d.ts.map +0 -1
  127. package/dist/commands/run/execution.js +0 -41
  128. package/dist/commands/run/execution.js.map +0 -1
  129. package/dist/commands/run/index.d.ts +0 -39
  130. package/dist/commands/run/index.d.ts.map +0 -1
  131. package/dist/commands/run/index.js +0 -191
  132. package/dist/commands/run/index.js.map +0 -1
  133. package/dist/commands/run/types.d.ts +0 -60
  134. package/dist/commands/run/types.d.ts.map +0 -1
  135. package/dist/commands/run/types.js +0 -7
  136. package/dist/commands/run/types.js.map +0 -1
  137. package/dist/commands/run/utils.d.ts +0 -29
  138. package/dist/commands/run/utils.d.ts.map +0 -1
  139. package/dist/commands/run/utils.js +0 -52
  140. package/dist/commands/run/utils.js.map +0 -1
  141. package/dist/commands/run/validators.d.ts +0 -33
  142. package/dist/commands/run/validators.d.ts.map +0 -1
  143. package/dist/commands/run/validators.js +0 -58
  144. package/dist/commands/run/validators.js.map +0 -1
  145. package/dist/commands/simulate/env-loader.d.ts +0 -19
  146. package/dist/commands/simulate/env-loader.d.ts.map +0 -1
  147. package/dist/commands/simulate/env-loader.js +0 -46
  148. package/dist/commands/simulate/env-loader.js.map +0 -1
  149. package/dist/commands/simulate/index.d.ts +0 -48
  150. package/dist/commands/simulate/index.d.ts.map +0 -1
  151. package/dist/commands/simulate/index.js +0 -116
  152. package/dist/commands/simulate/index.js.map +0 -1
  153. package/dist/commands/simulate/jsdom-executor.d.ts +0 -37
  154. package/dist/commands/simulate/jsdom-executor.d.ts.map +0 -1
  155. package/dist/commands/simulate/jsdom-executor.js +0 -137
  156. package/dist/commands/simulate/jsdom-executor.js.map +0 -1
  157. package/dist/commands/simulate/node-executor.d.ts +0 -28
  158. package/dist/commands/simulate/node-executor.d.ts.map +0 -1
  159. package/dist/commands/simulate/node-executor.js +0 -94
  160. package/dist/commands/simulate/node-executor.js.map +0 -1
  161. package/dist/commands/simulate/simulator.d.ts +0 -14
  162. package/dist/commands/simulate/simulator.d.ts.map +0 -1
  163. package/dist/commands/simulate/simulator.js +0 -162
  164. package/dist/commands/simulate/simulator.js.map +0 -1
  165. package/dist/commands/simulate/tracker.d.ts +0 -30
  166. package/dist/commands/simulate/tracker.d.ts.map +0 -1
  167. package/dist/commands/simulate/tracker.js +0 -96
  168. package/dist/commands/simulate/tracker.js.map +0 -1
  169. package/dist/commands/simulate/types.d.ts +0 -18
  170. package/dist/commands/simulate/types.d.ts.map +0 -1
  171. package/dist/commands/simulate/types.js +0 -2
  172. package/dist/commands/simulate/types.js.map +0 -1
  173. package/dist/config/build-defaults.d.ts +0 -49
  174. package/dist/config/build-defaults.d.ts.map +0 -1
  175. package/dist/config/build-defaults.js +0 -70
  176. package/dist/config/build-defaults.js.map +0 -1
  177. package/dist/config/index.d.ts +0 -13
  178. package/dist/config/index.d.ts.map +0 -1
  179. package/dist/config/index.js +0 -15
  180. package/dist/config/index.js.map +0 -1
  181. package/dist/config/loader.d.ts +0 -81
  182. package/dist/config/loader.d.ts.map +0 -1
  183. package/dist/config/loader.js +0 -155
  184. package/dist/config/loader.js.map +0 -1
  185. package/dist/config/utils.d.ts +0 -114
  186. package/dist/config/utils.d.ts.map +0 -1
  187. package/dist/config/utils.js +0 -257
  188. package/dist/config/utils.js.map +0 -1
  189. package/dist/config/validators.d.ts +0 -52
  190. package/dist/config/validators.d.ts.map +0 -1
  191. package/dist/config/validators.js +0 -85
  192. package/dist/config/validators.js.map +0 -1
  193. package/dist/core/asset-resolver.d.ts +0 -34
  194. package/dist/core/asset-resolver.d.ts.map +0 -1
  195. package/dist/core/asset-resolver.js +0 -70
  196. package/dist/core/asset-resolver.js.map +0 -1
  197. package/dist/core/build-cache.d.ts +0 -23
  198. package/dist/core/build-cache.d.ts.map +0 -1
  199. package/dist/core/build-cache.js +0 -43
  200. package/dist/core/build-cache.js.map +0 -1
  201. package/dist/core/cache-utils.d.ts +0 -27
  202. package/dist/core/cache-utils.d.ts.map +0 -1
  203. package/dist/core/cache-utils.js +0 -60
  204. package/dist/core/cache-utils.js.map +0 -1
  205. package/dist/core/docker.d.ts +0 -102
  206. package/dist/core/docker.d.ts.map +0 -1
  207. package/dist/core/docker.js +0 -278
  208. package/dist/core/docker.js.map +0 -1
  209. package/dist/core/execution.d.ts +0 -34
  210. package/dist/core/execution.d.ts.map +0 -1
  211. package/dist/core/execution.js +0 -64
  212. package/dist/core/execution.js.map +0 -1
  213. package/dist/core/index.d.ts +0 -10
  214. package/dist/core/index.d.ts.map +0 -1
  215. package/dist/core/index.js +0 -10
  216. package/dist/core/index.js.map +0 -1
  217. package/dist/core/local-packages.d.ts +0 -19
  218. package/dist/core/local-packages.d.ts.map +0 -1
  219. package/dist/core/local-packages.js +0 -60
  220. package/dist/core/local-packages.js.map +0 -1
  221. package/dist/core/logger.d.ts +0 -28
  222. package/dist/core/logger.d.ts.map +0 -1
  223. package/dist/core/logger.js +0 -88
  224. package/dist/core/logger.js.map +0 -1
  225. package/dist/core/output.d.ts +0 -30
  226. package/dist/core/output.d.ts.map +0 -1
  227. package/dist/core/output.js +0 -46
  228. package/dist/core/output.js.map +0 -1
  229. package/dist/core/temp-manager.d.ts +0 -51
  230. package/dist/core/temp-manager.d.ts.map +0 -1
  231. package/dist/core/temp-manager.js +0 -73
  232. package/dist/core/temp-manager.js.map +0 -1
  233. package/dist/core/timer.d.ts +0 -14
  234. package/dist/core/timer.d.ts.map +0 -1
  235. package/dist/core/timer.js +0 -29
  236. package/dist/core/timer.js.map +0 -1
  237. package/dist/core/utils.d.ts +0 -10
  238. package/dist/core/utils.d.ts.map +0 -1
  239. package/dist/core/utils.js +0 -12
  240. package/dist/core/utils.js.map +0 -1
  241. package/dist/index.d.ts.map +0 -1
  242. package/dist/schemas/index.d.ts +0 -9
  243. package/dist/schemas/index.d.ts.map +0 -1
  244. package/dist/schemas/index.js +0 -9
  245. package/dist/schemas/index.js.map +0 -1
  246. package/dist/schemas/primitives.d.ts +0 -37
  247. package/dist/schemas/primitives.d.ts.map +0 -1
  248. package/dist/schemas/primitives.js +0 -43
  249. package/dist/schemas/primitives.js.map +0 -1
  250. package/dist/schemas/run.d.ts +0 -23
  251. package/dist/schemas/run.d.ts.map +0 -1
  252. package/dist/schemas/run.js +0 -20
  253. package/dist/schemas/run.js.map +0 -1
  254. package/dist/types/bundle.d.ts +0 -141
  255. package/dist/types/bundle.d.ts.map +0 -1
  256. package/dist/types/bundle.js +0 -10
  257. package/dist/types/bundle.js.map +0 -1
  258. package/dist/types/global.d.ts +0 -51
  259. package/dist/types/global.d.ts.map +0 -1
  260. package/dist/types/global.js +0 -30
  261. package/dist/types/global.js.map +0 -1
  262. package/dist/types/index.d.ts +0 -8
  263. package/dist/types/index.d.ts.map +0 -1
  264. package/dist/types/index.js +0 -8
  265. package/dist/types/index.js.map +0 -1
  266. package/dist/version.d.ts +0 -3
  267. package/dist/version.d.ts.map +0 -1
  268. package/dist/version.js +0 -27
  269. package/dist/version.js.map +0 -1
@@ -1,72 +0,0 @@
1
- import fs from 'fs-extra';
2
- import path from 'path';
3
- import { loadJsonConfig, substituteEnvVariables, getTempDir, } from '../../config/index.js';
4
- import { getId } from '@walkeros/core';
5
- describe('Config utilities', () => {
6
- const testDir = path.join('.tmp', `config-test-${Date.now()}-${getId()}`);
7
- beforeEach(async () => {
8
- await fs.ensureDir(testDir);
9
- });
10
- afterEach(async () => {
11
- await fs.remove(testDir);
12
- });
13
- describe('loadJsonConfig', () => {
14
- it('should load valid JSON config', async () => {
15
- const configPath = path.join(testDir, 'valid.json');
16
- const config = { test: 'value', nested: { key: 'data' } };
17
- await fs.writeJson(configPath, config);
18
- const result = await loadJsonConfig(configPath);
19
- expect(result).toEqual(config);
20
- });
21
- it('should throw error for missing file', async () => {
22
- const configPath = path.join(testDir, 'missing.json');
23
- await expect(loadJsonConfig(configPath)).rejects.toThrow('Configuration file not found');
24
- });
25
- it('should throw error for invalid JSON', async () => {
26
- const configPath = path.join(testDir, 'invalid.json');
27
- await fs.writeFile(configPath, '{ invalid json }');
28
- await expect(loadJsonConfig(configPath)).rejects.toThrow('Invalid JSON in config file');
29
- });
30
- });
31
- describe('substituteEnvVariables', () => {
32
- it('should substitute environment variables', () => {
33
- process.env.TEST_VAR = 'test-value';
34
- const result = substituteEnvVariables('Hello ${TEST_VAR}!');
35
- expect(result).toBe('Hello test-value!');
36
- delete process.env.TEST_VAR;
37
- });
38
- it('should substitute multiple variables', () => {
39
- process.env.VAR1 = 'value1';
40
- process.env.VAR2 = 'value2';
41
- const result = substituteEnvVariables('${VAR1} and ${VAR2}');
42
- expect(result).toBe('value1 and value2');
43
- delete process.env.VAR1;
44
- delete process.env.VAR2;
45
- });
46
- it('should throw error for missing environment variable', () => {
47
- expect(() => {
48
- substituteEnvVariables('${MISSING_VAR}');
49
- }).toThrow('Environment variable MISSING_VAR not found');
50
- });
51
- it('should return unchanged string if no variables', () => {
52
- const input = 'no variables here';
53
- const result = substituteEnvVariables(input);
54
- expect(result).toBe(input);
55
- });
56
- });
57
- describe('getTempDir', () => {
58
- it('should generate unique temp directory', () => {
59
- const dir1 = getTempDir();
60
- const dir2 = getTempDir();
61
- expect(dir1).not.toBe(dir2);
62
- expect(dir1).toContain('cli-');
63
- expect(dir2).toContain('cli-');
64
- });
65
- it('should use custom temp directory name', () => {
66
- const customDir = getTempDir('custom-temp');
67
- expect(customDir).toContain('custom-temp');
68
- expect(customDir).toContain('cli-');
69
- });
70
- });
71
- });
72
- //# sourceMappingURL=config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/__tests__/core/config.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=docker-url.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker-url.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/core/docker-url.test.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- import { buildDockerCommand } from '../../core/docker.js';
2
- import { isUrl, downloadFromUrl } from '../../config/utils.js';
3
- import fs from 'fs-extra';
4
- import os from 'os';
5
- describe('Docker URL handling', () => {
6
- describe('URL utilities for Docker pre-download', () => {
7
- it('should detect HTTP URLs', () => {
8
- expect(isUrl('https://example.com/flow.json')).toBe(true);
9
- expect(isUrl('http://example.com/flow.json')).toBe(true);
10
- expect(isUrl('./local-flow.json')).toBe(false);
11
- expect(isUrl('/absolute/path/flow.json')).toBe(false);
12
- });
13
- it('should download URL to temp file with proper cleanup', async () => {
14
- // This tests the pre-download pattern that executeInDocker should use
15
- const testUrl = 'https://raw.githubusercontent.com/elbwalker/walkerOS/main/packages/cli/package.json';
16
- // Download URL to temp file
17
- const tempFile = await downloadFromUrl(testUrl);
18
- // Verify temp file exists and is in temp directory
19
- expect(await fs.pathExists(tempFile)).toBe(true);
20
- expect(tempFile.startsWith(os.tmpdir())).toBe(true);
21
- expect(tempFile).toContain('walkeros-download');
22
- // Verify content is valid JSON
23
- const content = await fs.readJson(tempFile);
24
- expect(content.name).toBe('@walkeros/cli');
25
- // Cleanup
26
- await fs.remove(tempFile);
27
- expect(await fs.pathExists(tempFile)).toBe(false);
28
- });
29
- });
30
- describe('buildDockerCommand', () => {
31
- it('should mount local config file to container', () => {
32
- const cmd = buildDockerCommand('bundle', ['flow.json', '--output', 'dist'], {}, 'flow.json');
33
- // Should include volume mount for local file
34
- expect(cmd).toContainEqual('-v');
35
- expect(cmd.some((arg) => arg.includes('/config/flow.json:ro'))).toBe(true);
36
- });
37
- it('should NOT mount URLs - pass them through as-is', () => {
38
- const url = 'https://example.com/flow.json';
39
- const cmd = buildDockerCommand('bundle', [url, '--output', 'dist'], {}, url);
40
- // Should NOT include config volume mount for URLs
41
- const volumeArgs = cmd.filter((arg) => typeof arg === 'string' && arg.includes('/config/flow.json'));
42
- expect(volumeArgs).toHaveLength(0);
43
- // URL should be preserved in args (currently passed through)
44
- expect(cmd).toContain(url);
45
- });
46
- it('should preserve URL in args when no configFile mounting needed', () => {
47
- const url = 'https://raw.githubusercontent.com/elbwalker/walkerOS/main/flow.json';
48
- const cmd = buildDockerCommand('bundle', [url, '--output', 'dist'], {}, url);
49
- // URL should remain in the command args
50
- expect(cmd.includes(url)).toBe(true);
51
- });
52
- });
53
- });
54
- //# sourceMappingURL=docker-url.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker-url.test.js","sourceRoot":"","sources":["../../../src/__tests__/core/docker-url.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=logger.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/core/logger.test.ts"],"names":[],"mappings":""}
@@ -1,53 +0,0 @@
1
- import { createLogger } from '../../core/logger.js';
2
- describe('Logger', () => {
3
- let consoleLogSpy;
4
- let consoleErrorSpy;
5
- beforeEach(() => {
6
- consoleLogSpy = jest.spyOn(console, 'log').mockImplementation();
7
- consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
8
- });
9
- afterEach(() => {
10
- jest.restoreAllMocks();
11
- });
12
- it('should log messages when not silent', () => {
13
- const logger = createLogger({ silent: false });
14
- logger.info('test message');
15
- logger.success('success message');
16
- logger.warning('warning message');
17
- expect(consoleLogSpy).toHaveBeenCalledTimes(3);
18
- });
19
- it('should not log messages when silent', () => {
20
- const logger = createLogger({ silent: true });
21
- logger.info('test message');
22
- logger.success('success message');
23
- logger.warning('warning message');
24
- expect(consoleLogSpy).not.toHaveBeenCalled();
25
- });
26
- it('should log debug messages only when verbose', () => {
27
- const logger = createLogger({ verbose: true, silent: false });
28
- logger.debug('debug message');
29
- expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('debug message'));
30
- });
31
- it('should not log debug messages when not verbose', () => {
32
- const logger = createLogger({ verbose: false, silent: false });
33
- logger.debug('debug message');
34
- expect(consoleLogSpy).not.toHaveBeenCalled();
35
- });
36
- it('should always log errors unless in JSON mode', () => {
37
- const logger = createLogger({ silent: true, json: false });
38
- logger.error('error message');
39
- expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining('error message'));
40
- });
41
- it('should not log errors in JSON mode', () => {
42
- const logger = createLogger({ json: true });
43
- logger.error('error message');
44
- expect(consoleErrorSpy).not.toHaveBeenCalled();
45
- });
46
- it('should handle custom colors', () => {
47
- const logger = createLogger({ silent: false });
48
- logger.log('blue', 'blue message');
49
- logger.log('red', 'red message');
50
- expect(consoleLogSpy).toHaveBeenCalledTimes(2);
51
- });
52
- });
53
- //# sourceMappingURL=logger.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../src/__tests__/core/logger.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Integration Test: Bundle → Run Workflow
3
- *
4
- * Tests complete flow from config to running bundle.
5
- * Uses real packages, real bundles, NO MOCKING.
6
- */
7
- export {};
8
- //# sourceMappingURL=bundle-run.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-run.integration.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/bundle-run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Integration Test: Bundle → Run Workflow
3
- *
4
- * Tests complete flow from config to running bundle.
5
- * Uses real packages, real bundles, NO MOCKING.
6
- */
7
- import { bundle } from '../../commands/bundle/index.js';
8
- import { join } from 'path';
9
- import fs from 'fs-extra';
10
- const projectRoot = process.cwd();
11
- describe('Bundle → Run Integration', () => {
12
- const testDir = join(projectRoot, '.tmp/integration-tests');
13
- // Output path is now convention-based: ./dist/bundle.mjs for server
14
- const bundlePath = join(projectRoot, 'examples/dist/bundle.mjs');
15
- beforeAll(async () => {
16
- await fs.ensureDir(testDir);
17
- // Ensure the dist directory exists
18
- await fs.ensureDir(join(projectRoot, 'examples/dist'));
19
- });
20
- afterAll(async () => {
21
- await fs.remove(testDir).catch(() => { });
22
- // Clean up the dist directory
23
- await fs.remove(join(projectRoot, 'examples/dist')).catch(() => { });
24
- });
25
- it('should create functional bundle from config', async () => {
26
- // Step 1: Bundle example config (Flow.Setup format)
27
- await bundle(join(projectRoot, 'examples/server-collect.json'), {
28
- verbose: false,
29
- silent: true,
30
- });
31
- // Step 2: Verify bundle exists at convention-based path
32
- expect(fs.existsSync(bundlePath)).toBe(true);
33
- // Step 3: Verify it's valid ESM
34
- const module = await import(bundlePath);
35
- expect(module.default).toBeDefined();
36
- expect(typeof module.default).toBe('function');
37
- // Step 4: Verify factory function signature
38
- // (Don't actually execute to avoid port conflicts and hanging servers)
39
- const factoryFn = module.default;
40
- expect(factoryFn.length).toBeGreaterThanOrEqual(0);
41
- // Verify it's a function that would return the right structure
42
- // by checking the module exports
43
- expect(module).toHaveProperty('default');
44
- }, 60000);
45
- it('should bundle with correct dependencies included', async () => {
46
- const content = fs.readFileSync(bundlePath, 'utf-8');
47
- // Should include runtime dependencies
48
- expect(content).toContain('express');
49
- // Should NOT include dev dependencies
50
- expect(content).not.toContain('jest');
51
- expect(content).not.toContain('@types/');
52
- });
53
- });
54
- //# sourceMappingURL=bundle-run.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-run.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/bundle-run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAElC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;IAC5D,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAEjE,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5B,mCAAmC;QACnC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,8BAA8B;QAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,oDAAoD;QACpD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,EAAE;YAC9D,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,gCAAgC;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/C,4CAA4C;QAC5C,uEAAuE;QACvE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAEnD,+DAA+D;QAC/D,iCAAiC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErD,sCAAsC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAErC,sCAAsC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Push Command Tests
3
- *
4
- * Tests the push command validation and execution logic
5
- */
6
- export {};
7
- //# sourceMappingURL=push.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/push/push.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,197 +0,0 @@
1
- /**
2
- * Push Command Tests
3
- *
4
- * Tests the push command validation and execution logic
5
- */
6
- import path from 'path';
7
- import fs from 'fs-extra';
8
- import { loadJsonFromSource } from '../../config/index.js';
9
- // Test fixtures
10
- const FIXTURES_DIR = path.join(__dirname, 'fixtures');
11
- const VALID_EVENT = path.join(FIXTURES_DIR, 'events/valid-event.json');
12
- const INVALID_EVENT = path.join(FIXTURES_DIR, 'events/invalid-event.json');
13
- // Helper to cast event to Record for testing
14
- const asEvent = (e) => e;
15
- describe('Event Loading and Validation', () => {
16
- it('should load valid event from file', async () => {
17
- const event = asEvent(await loadJsonFromSource(VALID_EVENT, { name: 'event' }));
18
- expect(event).toBeDefined();
19
- expect(event).toHaveProperty('name', 'page view');
20
- expect(event).toHaveProperty('data');
21
- expect(asEvent(event.data)).toHaveProperty('title', 'Test Page');
22
- });
23
- it('should load event from JSON string', async () => {
24
- const jsonString = '{"name": "product view", "data": {"id": "P123"}}';
25
- const event = asEvent(await loadJsonFromSource(jsonString, { name: 'event' }));
26
- expect(event).toBeDefined();
27
- expect(event).toHaveProperty('name', 'product view');
28
- expect(asEvent(event.data)).toHaveProperty('id', 'P123');
29
- });
30
- it('should validate event has name property', async () => {
31
- const event = asEvent(await loadJsonFromSource(VALID_EVENT, { name: 'event' }));
32
- expect('name' in event).toBe(true);
33
- expect(typeof event.name).toBe('string');
34
- });
35
- it('should reject event without name property', async () => {
36
- const event = asEvent(await loadJsonFromSource(INVALID_EVENT, { name: 'event' }));
37
- expect(!('name' in event)).toBe(true);
38
- });
39
- });
40
- describe('Event Name Format', () => {
41
- it('should accept entity-action format with space', async () => {
42
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "data": {}}', {
43
- name: 'event',
44
- }));
45
- expect(event.name).toBe('page view');
46
- expect(event.name.includes(' ')).toBe(true);
47
- });
48
- it('should detect missing space in event name', async () => {
49
- const event = asEvent(await loadJsonFromSource('{"name": "pageview", "data": {}}', {
50
- name: 'event',
51
- }));
52
- expect(event.name).toBe('pageview');
53
- expect(event.name.includes(' ')).toBe(false);
54
- });
55
- it('should accept multiple word event names', async () => {
56
- const event = asEvent(await loadJsonFromSource('{"name": "product detail view", "data": {}}', {
57
- name: 'event',
58
- }));
59
- expect(event.name).toBe('product detail view');
60
- expect(event.name.includes(' ')).toBe(true);
61
- });
62
- });
63
- describe('Event Structure', () => {
64
- it('should accept event with data property', async () => {
65
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "data": {"title": "Home", "path": "/"}}', { name: 'event' }));
66
- expect(event.data).toBeDefined();
67
- expect(typeof event.data).toBe('object');
68
- expect(asEvent(event.data).title).toBe('Home');
69
- });
70
- it('should accept event without data property', async () => {
71
- const event = asEvent(await loadJsonFromSource('{"name": "page view"}', {
72
- name: 'event',
73
- }));
74
- expect(event.name).toBe('page view');
75
- expect(event.data).toBeUndefined();
76
- });
77
- it('should accept event with nested property', async () => {
78
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "nested": [{"type": "category", "data": {"name": "Tech"}}]}', { name: 'event' }));
79
- expect(event.nested).toBeDefined();
80
- expect(Array.isArray(event.nested)).toBe(true);
81
- const nested = event.nested;
82
- expect(nested[0].type).toBe('category');
83
- });
84
- it('should accept event with user property', async () => {
85
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "user": {"id": "user123", "device": "dev456"}}', { name: 'event' }));
86
- expect(event.user).toBeDefined();
87
- const user = asEvent(event.user);
88
- expect(user.id).toBe('user123');
89
- expect(user.device).toBe('dev456');
90
- });
91
- it('should accept event with globals property', async () => {
92
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "globals": {"language": "en", "currency": "USD"}}', { name: 'event' }));
93
- expect(event.globals).toBeDefined();
94
- const globals = asEvent(event.globals);
95
- expect(globals.language).toBe('en');
96
- expect(globals.currency).toBe('USD');
97
- });
98
- it('should accept event with context property', async () => {
99
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "context": {"stage": ["checkout", 1]}}', { name: 'event' }));
100
- expect(event.context).toBeDefined();
101
- const context = asEvent(event.context);
102
- expect(context.stage).toEqual(['checkout', 1]);
103
- });
104
- it('should accept event with consent property', async () => {
105
- const event = asEvent(await loadJsonFromSource('{"name": "page view", "consent": {"functional": true, "marketing": false}}', { name: 'event' }));
106
- expect(event.consent).toBeDefined();
107
- const consent = asEvent(event.consent);
108
- expect(consent.functional).toBe(true);
109
- expect(consent.marketing).toBe(false);
110
- });
111
- });
112
- describe('Event Type Validation', () => {
113
- it('should load non-object event (validation happens at command level)', async () => {
114
- const result = await loadJsonFromSource('"not an object"', {
115
- name: 'event',
116
- });
117
- // loadJsonFromSource loads JSON but doesn't validate structure
118
- expect(result).toBe('not an object');
119
- expect(typeof result).not.toBe('object');
120
- });
121
- it('should load array as event (validation happens at command level)', async () => {
122
- const result = await loadJsonFromSource('[{"name": "page view"}]', {
123
- name: 'event',
124
- });
125
- expect(Array.isArray(result)).toBe(true);
126
- });
127
- it('should load null as event (validation happens at command level)', async () => {
128
- const result = await loadJsonFromSource('null', { name: 'event' });
129
- expect(result).toBeNull();
130
- });
131
- it('should load event with non-string name (validation happens at command level)', async () => {
132
- const event = await loadJsonFromSource('{"name": 123, "data": {}}', {
133
- name: 'event',
134
- });
135
- const e = event;
136
- expect(e.name).toBe(123);
137
- expect(typeof e.name).not.toBe('string');
138
- });
139
- });
140
- describe('JSON Source Loading', () => {
141
- it('should load from file path', async () => {
142
- const event = await loadJsonFromSource(VALID_EVENT, { name: 'event' });
143
- expect(event).toBeDefined();
144
- const e = event;
145
- expect(e.name).toBe('page view');
146
- });
147
- it('should load from JSON string', async () => {
148
- const event = await loadJsonFromSource('{"name": "page view"}', {
149
- name: 'event',
150
- });
151
- expect(event).toBeDefined();
152
- const e = event;
153
- expect(e.name).toBe('page view');
154
- });
155
- it('should handle JSON with whitespace', async () => {
156
- const event = await loadJsonFromSource(`{
157
- "name": "page view",
158
- "data": {
159
- "title": "Home"
160
- }
161
- }`, { name: 'event' });
162
- const e = event;
163
- expect(e.name).toBe('page view');
164
- const data = e.data;
165
- expect(data.title).toBe('Home');
166
- });
167
- it('should reject invalid JSON', async () => {
168
- await expect(loadJsonFromSource('{invalid json}', { name: 'event' })).rejects.toThrow();
169
- });
170
- it('should fallback to event name for non-existent file paths', async () => {
171
- // Non-existent file paths that don't look like JSON are treated as event names
172
- const result = await loadJsonFromSource('/tmp/nonexistent', {
173
- name: 'event',
174
- });
175
- expect(result).toEqual({ name: '/tmp/nonexistent' });
176
- });
177
- it('should reject JSON-like non-existent files', async () => {
178
- // Paths ending in .json should fail if they don't exist
179
- await expect(loadJsonFromSource('{invalid', { name: 'event' })).rejects.toThrow();
180
- });
181
- });
182
- describe('Fixture Files', () => {
183
- it('should have valid-event.json fixture', async () => {
184
- const exists = await fs.pathExists(VALID_EVENT);
185
- expect(exists).toBe(true);
186
- const content = await fs.readJson(VALID_EVENT);
187
- expect(content).toHaveProperty('name');
188
- expect(content.name).toContain(' '); // Should follow entity-action format
189
- });
190
- it('should have invalid-event.json fixture', async () => {
191
- const exists = await fs.pathExists(INVALID_EVENT);
192
- expect(exists).toBe(true);
193
- const content = await fs.readJson(INVALID_EVENT);
194
- expect(content).not.toHaveProperty('name');
195
- });
196
- });
197
- //# sourceMappingURL=push.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.test.js","sourceRoot":"","sources":["../../../src/__tests__/push/push.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=env-loader.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-loader.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/simulate/env-loader.test.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- import { loadDestinationEnvs } from '../../commands/simulate/env-loader';
2
- describe('loadDestinationEnvs', () => {
3
- it('loads env from destination packages', async () => {
4
- const destinations = {
5
- gtag: {
6
- package: '@walkeros/web-destination-gtag',
7
- config: { settings: { ga4: { measurementId: 'G-TEST' } } },
8
- },
9
- };
10
- const envs = await loadDestinationEnvs(destinations);
11
- expect(envs).toHaveProperty('gtag');
12
- expect(envs.gtag).toHaveProperty('push');
13
- expect(envs.gtag.push).toHaveProperty('window');
14
- expect(envs.gtag.push.window).toHaveProperty('gtag');
15
- });
16
- it('returns empty object for destinations without package field', async () => {
17
- const destinations = {
18
- custom: {
19
- config: {},
20
- },
21
- };
22
- const envs = await loadDestinationEnvs(destinations);
23
- expect(envs).toEqual({});
24
- });
25
- it('handles package import errors gracefully', async () => {
26
- const destinations = {
27
- invalid: {
28
- package: '@walkeros/nonexistent-package',
29
- config: {},
30
- },
31
- };
32
- const envs = await loadDestinationEnvs(destinations);
33
- expect(envs).toEqual({});
34
- });
35
- it('loads simulation tracking paths', async () => {
36
- const destinations = {
37
- gtag: {
38
- package: '@walkeros/web-destination-gtag',
39
- config: {},
40
- },
41
- };
42
- const envs = await loadDestinationEnvs(destinations);
43
- expect(envs.gtag).toHaveProperty('simulation');
44
- expect(Array.isArray(envs.gtag.simulation)).toBe(true);
45
- });
46
- });
47
- //# sourceMappingURL=env-loader.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-loader.test.js","sourceRoot":"","sources":["../../../src/__tests__/simulate/env-loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE;gBACJ,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC3D;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;aACX;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,+BAA+B;gBACxC,MAAM,EAAE,EAAE;aACX;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE;gBACJ,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,EAAE;aACX;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Unit tests for Node.js executor
3
- */
4
- export {};
5
- //# sourceMappingURL=node-executor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-executor.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/simulate/node-executor.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Unit tests for Node.js executor
3
- */
4
- import { CallTracker } from '../../commands/simulate/tracker';
5
- describe('node-executor', () => {
6
- describe('call tracking', () => {
7
- it('should track API calls through wrapped env functions', () => {
8
- const tracker = new CallTracker();
9
- const mockFn = tracker.wrapFunction('test:api', () => 'result');
10
- mockFn('arg1', 'arg2');
11
- const calls = tracker.getCalls();
12
- expect(calls['test']).toHaveLength(1);
13
- expect(calls['test'][0].path).toBe('api');
14
- expect(calls['test'][0].args).toEqual(['arg1', 'arg2']);
15
- });
16
- });
17
- describe('executeInNode', () => {
18
- it('should throw error for non-existent bundle', async () => {
19
- const { executeInNode } = await import('../../commands/simulate/node-executor');
20
- const tracker = new CallTracker();
21
- await expect(executeInNode('/tmp/nonexistent.mjs', {}, { name: 'test' }, tracker, {})).rejects.toThrow();
22
- });
23
- });
24
- });
25
- //# sourceMappingURL=node-executor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-executor.test.js","sourceRoot":"","sources":["../../../src/__tests__/simulate/node-executor.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CACpC,uCAAuC,CACxC,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAElC,MAAM,MAAM,CACV,aAAa,CACX,sBAAsB,EACtB,EAAE,EACF,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,OAAO,EACP,EAAE,CACH,CACF,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}