@quenty/nevermore-cli 4.49.0 → 4.50.1

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 (50) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/commands/tools-command/ci-post-test-results.d.ts.map +1 -1
  3. package/dist/commands/tools-command/ci-post-test-results.js +7 -3
  4. package/dist/commands/tools-command/ci-post-test-results.js.map +1 -1
  5. package/dist/utils/batch/changed-packages-utils.d.ts +8 -0
  6. package/dist/utils/batch/changed-packages-utils.d.ts.map +1 -1
  7. package/dist/utils/batch/changed-packages-utils.js +9 -11
  8. package/dist/utils/batch/changed-packages-utils.js.map +1 -1
  9. package/dist/utils/testing/batch-run.e2e.test.js +2 -2
  10. package/dist/utils/testing/batch-run.e2e.test.js.map +1 -1
  11. package/dist/utils/testing/parsers/annotation-workspace.d.ts +17 -0
  12. package/dist/utils/testing/parsers/annotation-workspace.d.ts.map +1 -0
  13. package/dist/utils/testing/parsers/annotation-workspace.js +47 -0
  14. package/dist/utils/testing/parsers/annotation-workspace.js.map +1 -0
  15. package/dist/utils/testing/parsers/index.d.ts +0 -1
  16. package/dist/utils/testing/parsers/index.d.ts.map +1 -1
  17. package/dist/utils/testing/parsers/index.js +0 -1
  18. package/dist/utils/testing/parsers/index.js.map +1 -1
  19. package/dist/utils/testing/parsers/jest-lua-parser.d.ts +14 -29
  20. package/dist/utils/testing/parsers/jest-lua-parser.d.ts.map +1 -1
  21. package/dist/utils/testing/parsers/jest-lua-parser.js +85 -100
  22. package/dist/utils/testing/parsers/jest-lua-parser.js.map +1 -1
  23. package/dist/utils/testing/parsers/jest-lua-parser.test.js +359 -56
  24. package/dist/utils/testing/parsers/jest-lua-parser.test.js.map +1 -1
  25. package/dist/utils/testing/parsers/roblox-path-resolver.d.ts +23 -17
  26. package/dist/utils/testing/parsers/roblox-path-resolver.d.ts.map +1 -1
  27. package/dist/utils/testing/parsers/roblox-path-resolver.js +89 -54
  28. package/dist/utils/testing/parsers/roblox-path-resolver.js.map +1 -1
  29. package/dist/utils/testing/parsers/roblox-path-resolver.test.js +76 -36
  30. package/dist/utils/testing/parsers/roblox-path-resolver.test.js.map +1 -1
  31. package/dist/utils/testing/runner/combined-project-generator.d.ts.map +1 -1
  32. package/dist/utils/testing/runner/combined-project-generator.js +5 -6
  33. package/dist/utils/testing/runner/combined-project-generator.js.map +1 -1
  34. package/dist/utils/testing/runner/test-project-slug.d.ts +11 -0
  35. package/dist/utils/testing/runner/test-project-slug.d.ts.map +1 -0
  36. package/dist/utils/testing/runner/test-project-slug.js +11 -0
  37. package/dist/utils/testing/runner/test-project-slug.js.map +1 -0
  38. package/package.json +6 -6
  39. package/src/commands/tools-command/ci-post-test-results.ts +7 -2
  40. package/src/utils/batch/changed-packages-utils.ts +21 -12
  41. package/src/utils/testing/batch-run.e2e.test.ts +6 -2
  42. package/src/utils/testing/parsers/annotation-workspace.ts +74 -0
  43. package/src/utils/testing/parsers/index.ts +0 -1
  44. package/src/utils/testing/parsers/jest-lua-parser.test.ts +433 -65
  45. package/src/utils/testing/parsers/jest-lua-parser.ts +131 -109
  46. package/src/utils/testing/parsers/roblox-path-resolver.test.ts +144 -61
  47. package/src/utils/testing/parsers/roblox-path-resolver.ts +117 -56
  48. package/src/utils/testing/runner/combined-project-generator.ts +9 -13
  49. package/src/utils/testing/runner/test-project-slug.ts +18 -0
  50. package/tsconfig.tsbuildinfo +1 -1
@@ -1,47 +1,27 @@
1
1
  /**
2
2
  * Parser for Jest-lua verbose output (`verbose=true, ci=true`).
3
3
  *
4
- * Handles two failure modes:
5
- *
6
- * 1. **Jest assertion failures** — `●` blocks:
7
- * ```
8
- * ● ObservableList > add and remove > should track count
9
- *
10
- * expect(received).toEqual(expected)
11
- *
12
- * Expected: 3
13
- * Received: 2
14
- *
15
- * at ServerScriptService.observablecollection.Shared.ObservableList.spec:45
16
- * ```
17
- *
18
- * 2. **Runtime errors** — `Stack Begin`/`Stack End` blocks:
19
- * ```
20
- * Error: attempt to index nil with "Connect"
21
- * Stack Begin
22
- * Script 'ServerScriptService.maid.Shared.Maid.spec', Line 23
23
- * Stack End
24
- * ```
25
- *
26
- * The parser is intentionally lenient — it extracts what it can, skips what
27
- * it can't, and never crashes on unexpected input.
4
+ * Emits one diagnostic per `●` failure block and per `Stack Begin`/`Stack End`
5
+ * runtime error, at the innermost frame that resolves to a repo file,
6
+ * preferring the package under test. Diagnostics with no resolvable frame
7
+ * carry no file. Unexpected input is skipped, never thrown on.
28
8
  */
29
9
  import * as fs from 'fs';
10
+ import * as path from 'path';
30
11
  import { OutputHelper } from '@quenty/cli-output-helpers';
31
- import { resolveRobloxTestPath } from './roblox-path-resolver.js';
32
- /** Matches `at ServerScriptService.pkg.Path.spec:45` (with line number) */
33
- const AT_LOCATION_PATTERN = /^\s+at\s+(.+):(\d+)\s*$/;
34
- /** Matches `at ServerScriptService.pkg.Path.spec` (without line number) */
35
- const AT_LOCATION_NO_LINE_PATTERN = /^\s+at\s+(\S+)\s*$/;
36
- /** Matches `Script 'ServerScriptService.pkg.Path.spec', Line 23` */
37
- const SCRIPT_LOCATION_PATTERN = /Script '([^']+)', Line (\d+)/;
38
- /** Matches the Jest failure header: `● TestSuite > nested > test name` */
12
+ import { tryResolveRobloxSourceFile } from './roblox-path-resolver.js';
13
+ /** `at ServerScriptService.pkg.Path.spec:45`, line optional */
14
+ const AT_FRAME_PATTERN = /^\s+at\s+(\S+?)(?::(\d+))?\s*$/;
15
+ /** `ServerScriptService.pkg.Path:1263 function requireModule`, any service root */
16
+ const BARE_FRAME_PATTERN = /^\s+(\[string "[^"]+"\]|[A-Za-z_][\w-]*(?:\.[^\s:"]+)+):(\d+)(?:\s+function\s+\S+)?\s*$/;
17
+ /** `Script '[string "ServerScriptService.pkg.Path"]', Line 23` */
18
+ const SCRIPT_FRAME_PATTERN = /Script '(.+?)', Line (\d+)/;
19
+ /** `<chunk>:214:` location prefixes inside error messages */
20
+ const MESSAGE_LOCATION_PATTERN = /(\[string "[^"]+"\]|ServerScriptService\.[^\s:"]+):(\d+):/g;
21
+ /** `● TestSuite › nested › test name` */
39
22
  const FAILURE_HEADER_PATTERN = /^\s*●\s+(.+)$/;
40
- /**
41
- * Search a `.spec.lua` file for an `it()` call matching `testName`.
42
- * Returns the 1-indexed line number, or `undefined` if not found.
43
- */
44
- function _findTestLineInFile(filePath, testName) {
23
+ const TITLE_SEPARATOR_PATTERN = / [›>] /;
24
+ function _findTestLineInFile(filePath, title) {
45
25
  let content;
46
26
  try {
47
27
  content = fs.readFileSync(filePath, 'utf-8');
@@ -50,54 +30,67 @@ function _findTestLineInFile(filePath, testName) {
50
30
  return undefined;
51
31
  }
52
32
  const lines = content.split('\n');
53
- for (let i = 0; i < lines.length; i++) {
54
- if (lines[i].includes(`it("${testName}"`) ||
55
- lines[i].includes(`it('${testName}'`)) {
56
- return i + 1;
57
- }
33
+ const names = title.split(TITLE_SEPARATOR_PATTERN).map((name) => name.trim());
34
+ for (const name of names.reverse()) {
35
+ const index = lines.findIndex((line) => line.includes(`("${name}"`) || line.includes(`('${name}'`));
36
+ if (index !== -1)
37
+ return index + 1;
58
38
  }
59
39
  return undefined;
60
40
  }
41
+ function _parseFrameLine(rawLine) {
42
+ const match = rawLine.match(BARE_FRAME_PATTERN) ?? rawLine.match(AT_FRAME_PATTERN);
43
+ if (!match)
44
+ return undefined;
45
+ return {
46
+ instancePath: match[1],
47
+ line: match[2] ? parseInt(match[2], 10) : undefined,
48
+ };
49
+ }
50
+ function _parseMessageLocations(message) {
51
+ return [...message.matchAll(MESSAGE_LOCATION_PATTERN)].map((match) => ({
52
+ instancePath: match[1],
53
+ line: parseInt(match[2], 10),
54
+ }));
55
+ }
56
+ function _resolveLocation(frames, options) {
57
+ let fallback;
58
+ for (const frame of frames) {
59
+ const resolved = tryResolveRobloxSourceFile(frame.instancePath, options);
60
+ if (!resolved)
61
+ continue;
62
+ const location = { ...resolved, line: frame.line };
63
+ if (resolved.isPackageUnderTest) {
64
+ return location;
65
+ }
66
+ fallback ??= location;
67
+ }
68
+ return fallback;
69
+ }
61
70
  /**
62
71
  * Parse Jest-lua verbose output into `Diagnostic[]`.
63
72
  *
64
73
  * @param raw - Raw test output (may include ANSI codes)
65
- * @param options.packageName - Package name for fallback path resolution
66
74
  */
67
75
  export function parseJestLuaOutput(raw, options) {
68
76
  const diagnostics = [];
69
77
  const clean = OutputHelper.stripAnsi(raw);
70
78
  const lines = clean.split('\n');
79
+ const repoRoot = options.repoRoot ?? process.cwd();
71
80
  let state = 0 /* State.IDLE */;
72
81
  let failureCtx;
73
82
  let stackCtx;
74
83
  let lastNonEmptyLine = '';
75
84
  function _emitFailure(ctx) {
76
85
  const message = ctx.messageLines.join('\n').trim();
77
- // 3-tier line resolution:
78
- // 1. Primary: line number extracted from `at <path>:<line>` or similar
79
- // 2. Secondary: search the resolved .spec.lua file for the it() call
80
- // 3. Tertiary: fall back to line 1
81
- let file;
82
- let line;
83
- if (ctx.file) {
84
- file = resolveRobloxTestPath(ctx.file, options.sourcemapResolver);
85
- if (ctx.line) {
86
- line = ctx.line;
87
- }
88
- else {
89
- const segments = ctx.title.split(' > ');
90
- const testName = segments[segments.length - 1].trim();
91
- line = _findTestLineInFile(file, testName) ?? 1;
92
- }
93
- }
94
- else {
95
- file = `src/${options.packageName}/src`;
96
- line = 1;
86
+ const location = _resolveLocation([...ctx.frames, ..._parseMessageLocations(message)], options);
87
+ let line = location?.line;
88
+ if (location?.isPackageUnderTest && line === undefined) {
89
+ line = _findTestLineInFile(path.join(repoRoot, location.file), ctx.title);
97
90
  }
98
91
  diagnostics.push({
99
- file,
100
- line,
92
+ ...(location ? { file: location.file } : {}),
93
+ ...(line !== undefined ? { line } : {}),
101
94
  severity: 'error',
102
95
  title: ctx.title,
103
96
  message: message || 'Test failed',
@@ -105,20 +98,17 @@ export function parseJestLuaOutput(raw, options) {
105
98
  });
106
99
  }
107
100
  function _emitStack(ctx) {
108
- const file = ctx.file
109
- ? resolveRobloxTestPath(ctx.file, options.sourcemapResolver)
110
- : `src/${options.packageName}/src`;
111
- const line = ctx.line ?? 1;
101
+ const location = _resolveLocation([...ctx.frames, ..._parseMessageLocations(ctx.errorMessage)], options);
112
102
  diagnostics.push({
113
- file,
114
- line,
103
+ ...(location ? { file: location.file, line: location.line ?? 1 } : {}),
115
104
  severity: 'error',
116
105
  title: 'Runtime error',
117
106
  message: ctx.errorMessage || 'Unknown runtime error',
118
107
  source: 'jest-lua',
119
108
  });
120
109
  }
121
- for (const rawLine of lines) {
110
+ for (let i = 0; i < lines.length; i++) {
111
+ const rawLine = lines[i];
122
112
  switch (state) {
123
113
  case 0 /* State.IDLE */: {
124
114
  const failureMatch = rawLine.match(FAILURE_HEADER_PATTERN);
@@ -126,6 +116,7 @@ export function parseJestLuaOutput(raw, options) {
126
116
  failureCtx = {
127
117
  title: failureMatch[1].trim(),
128
118
  messageLines: [],
119
+ frames: [],
129
120
  };
130
121
  state = 1 /* State.FAILURE_BLOCK */;
131
122
  break;
@@ -133,6 +124,7 @@ export function parseJestLuaOutput(raw, options) {
133
124
  if (rawLine.trim() === 'Stack Begin') {
134
125
  stackCtx = {
135
126
  errorMessage: lastNonEmptyLine,
127
+ frames: [],
136
128
  };
137
129
  state = 2 /* State.STACK_BLOCK */;
138
130
  break;
@@ -147,30 +139,9 @@ export function parseJestLuaOutput(raw, options) {
147
139
  state = 0 /* State.IDLE */;
148
140
  break;
149
141
  }
150
- const atMatch = rawLine.match(AT_LOCATION_PATTERN);
151
- if (atMatch) {
152
- failureCtx.file = atMatch[1];
153
- failureCtx.line = parseInt(atMatch[2], 10);
154
- _emitFailure(failureCtx);
155
- failureCtx = undefined;
156
- state = 0 /* State.IDLE */;
157
- break;
158
- }
159
- const atNoLineMatch = rawLine.match(AT_LOCATION_NO_LINE_PATTERN);
160
- if (atNoLineMatch) {
161
- failureCtx.file = atNoLineMatch[1];
162
- _emitFailure(failureCtx);
163
- failureCtx = undefined;
164
- state = 0 /* State.IDLE */;
165
- break;
166
- }
167
- const nextFailure = rawLine.match(FAILURE_HEADER_PATTERN);
168
- if (nextFailure) {
169
- _emitFailure(failureCtx);
170
- failureCtx = {
171
- title: nextFailure[1].trim(),
172
- messageLines: [],
173
- };
142
+ const frame = _parseFrameLine(rawLine);
143
+ if (frame) {
144
+ failureCtx.frames.push(frame);
174
145
  break;
175
146
  }
176
147
  if (rawLine.trim() === 'Stack Begin') {
@@ -179,12 +150,24 @@ export function parseJestLuaOutput(raw, options) {
179
150
  errorMessage: failureCtx.messageLines.length > 0
180
151
  ? failureCtx.messageLines[failureCtx.messageLines.length - 1].trim()
181
152
  : failureCtx.title,
153
+ frames: [],
182
154
  };
183
155
  failureCtx = undefined;
184
156
  state = 2 /* State.STACK_BLOCK */;
185
157
  break;
186
158
  }
187
- failureCtx.messageLines.push(rawLine);
159
+ const endsBlock = FAILURE_HEADER_PATTERN.test(rawLine) ||
160
+ (failureCtx.frames.length > 0 && rawLine.trim() !== '');
161
+ if (endsBlock) {
162
+ _emitFailure(failureCtx);
163
+ failureCtx = undefined;
164
+ state = 0 /* State.IDLE */;
165
+ i--;
166
+ break;
167
+ }
168
+ if (failureCtx.frames.length === 0) {
169
+ failureCtx.messageLines.push(rawLine);
170
+ }
188
171
  break;
189
172
  }
190
173
  case 2 /* State.STACK_BLOCK */: {
@@ -192,10 +175,12 @@ export function parseJestLuaOutput(raw, options) {
192
175
  state = 0 /* State.IDLE */;
193
176
  break;
194
177
  }
195
- const scriptMatch = rawLine.match(SCRIPT_LOCATION_PATTERN);
178
+ const scriptMatch = rawLine.match(SCRIPT_FRAME_PATTERN);
196
179
  if (scriptMatch) {
197
- stackCtx.file = scriptMatch[1];
198
- stackCtx.line = parseInt(scriptMatch[2], 10);
180
+ stackCtx.frames.push({
181
+ instancePath: scriptMatch[1],
182
+ line: parseInt(scriptMatch[2], 10),
183
+ });
199
184
  break;
200
185
  }
201
186
  if (rawLine.trim() === 'Stack End') {
@@ -1 +1 @@
1
- {"version":3,"file":"jest-lua-parser.js","sourceRoot":"","sources":["../../../../src/utils/testing/parsers/jest-lua-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jest-lua-parser.js","sourceRoot":"","sources":["../../../../src/utils/testing/parsers/jest-lua-parser.ts"],"names":[],"mappings":"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"}