ado-sync 0.1.31 → 0.1.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -60,10 +60,10 @@ On the **first push**, a new Test Case is created in Azure DevOps and its ID is
60
60
  | Java JUnit 5 | `@Tag("tc:12345")` above `@Test` |
61
61
  | Python pytest | `@pytest.mark.tc(12345)` above `def test_*` |
62
62
  | JavaScript/TS (Jest/Jasmine/WebdriverIO) | `// @tc:12345` comment above `it()`/`test()` |
63
- | Playwright | `// @tc:12345` comment above `test()` |
63
+ | Playwright | `annotation: { type: 'tc', description: '12345' }` in test options *(preferred)*; or `// @tc:12345` comment fallback |
64
64
  | Puppeteer | `// @tc:12345` comment above `it()`/`test()` |
65
65
  | Cypress | `// @tc:12345` comment above `it()`/`specify()` |
66
- | TestCafe | `// @tc:12345` comment above `test()` |
66
+ | TestCafe | `test.meta('tc', '12345')('title', fn)` *(preferred)*; or `// @tc:12345` comment fallback |
67
67
  | Detox | `// @tc:12345` comment above `it()`/`test()` |
68
68
  | Espresso (Java/Kotlin) | `// @tc:12345` comment above `@Test` |
69
69
  | XCUITest (Swift) | `// @tc:12345` comment above `func test*()` |
@@ -211,6 +211,7 @@ For code-based test types (`java`, `csharp`, `python`, `javascript`, `playwright
211
211
  | `ollama` | Good–Excellent | Install [Ollama](https://ollama.com) + `ollama pull qwen2.5-coder:7b` |
212
212
  | `openai` | Excellent | `--ai-key $OPENAI_API_KEY` |
213
213
  | `anthropic` | Excellent | `--ai-key $ANTHROPIC_API_KEY` |
214
+ | `openai` + `--ai-url` | Excellent | Any OpenAI-compatible proxy: LiteLLM, Azure OpenAI, vLLM, LM Studio |
214
215
 
215
216
  #### Option A — No setup (heuristic, instant)
216
217
 
@@ -276,6 +277,20 @@ ado-sync push --ai-provider openai --ai-key $OPENAI_API_KEY
276
277
  ado-sync push --ai-provider anthropic --ai-key $ANTHROPIC_API_KEY
277
278
  ```
278
279
 
280
+ #### Option E — LiteLLM or any OpenAI-compatible proxy
281
+
282
+ [LiteLLM](https://github.com/BerriAI/litellm) is a proxy that routes to 100+ providers (Azure OpenAI, Bedrock, Gemini, Mistral, vLLM, and more) via a single OpenAI-compatible API. Point the `openai` provider at it with `--ai-url`:
283
+
284
+ ```bash
285
+ ado-sync push \
286
+ --ai-provider openai \
287
+ --ai-url http://localhost:4000 \
288
+ --ai-key $LITELLM_API_KEY \
289
+ --ai-model gpt-4o-mini
290
+ ```
291
+
292
+ The same pattern works for Azure OpenAI, vLLM, LM Studio, and LocalAI — just change `--ai-url` to the endpoint's base URL. See [docs/advanced.md](docs/advanced.md) for a full compatibility table.
293
+
279
294
  #### Disable AI entirely
280
295
 
281
296
  ```bash
@@ -454,6 +469,23 @@ pytest --junitxml=results/junit.xml
454
469
  ado-sync publish-test-results --testResult results/junit.xml --testResultFormat junit
455
470
  ```
456
471
 
472
+ By default, TC linking uses `AutomatedTestName` matching (requires `sync.markAutomated: true`).
473
+
474
+ **Optional — embed TC IDs into JUnit XML** for direct linking (more reliable, works even if the class/method is renamed):
475
+
476
+ Add this to `conftest.py`:
477
+
478
+ ```python
479
+ # conftest.py
480
+ def pytest_runtest_makereport(item, call):
481
+ """Write @pytest.mark.tc(N) as a JUnit XML property for ado-sync to pick up."""
482
+ for marker in item.iter_markers("tc"):
483
+ if marker.args:
484
+ item.user_properties.append(("tc", str(marker.args[0])))
485
+ ```
486
+
487
+ pytest will then write each TC ID into the JUnit XML as `<property name="tc" value="N"/>`, and ado-sync will link the result directly to that Test Case — no AutomatedTestName matching needed.
488
+
457
489
  Recommended `ado-sync.json` for Python:
458
490
 
459
491
  ```json
@@ -493,13 +525,13 @@ ado-sync publish-test-results --testResult results/junit.xml --testResultFormat
493
525
  ```bash
494
526
  # 1. Create TCs and write IDs back into .ts spec files
495
527
  ado-sync push --dry-run # preview
496
- ado-sync push # writes // @tc:ID above each test()
528
+ ado-sync push # writes annotation: { type: 'tc', description: 'ID' } into test options
497
529
 
498
- # 2. Add @tc:ID tag to test title and run Playwright with JSON reporter
530
+ # 2. Run Playwright with JSON reporter
499
531
  # playwright.config.ts: reporter: [['json', { outputFile: 'results/playwright.json' }]]
500
532
  npx playwright test
501
533
 
502
- # 3. Publish — TC IDs from @tc:ID in test title; screenshots/videos from attachments[]
534
+ # 3. Publish — TC IDs from native test.annotations; screenshots/videos from attachments[]
503
535
  ado-sync publish-test-results --testResult results/playwright.json
504
536
  ```
505
537
 
package/dist/cli.js CHANGED
@@ -69,18 +69,20 @@ function collect(value, previous) {
69
69
  }
70
70
  // ─── AI summary helper ────────────────────────────────────────────────────────
71
71
  /**
72
- * Build AiSummaryOpts from parsed CLI opts.
73
- * Returns undefined only when --ai-provider none is passed explicitly.
72
+ * Build AiSummaryOpts from parsed CLI opts, falling back to config file values.
73
+ * CLI flags always take precedence. Returns undefined when provider is 'none'.
74
74
  */
75
- function buildAiOpts(opts) {
76
- if (opts.aiProvider === 'none')
75
+ function buildAiOpts(opts, config) {
76
+ const cfgAi = config?.sync?.ai;
77
+ // CLI --ai-provider none wins over config; config provider='none' also disables
78
+ const provider = opts.aiProvider ?? cfgAi?.provider ?? 'local';
79
+ if (provider === 'none')
77
80
  return undefined;
78
- const provider = (opts.aiProvider ?? 'local');
79
81
  return {
80
- provider,
81
- ...(opts.aiModel && { model: opts.aiModel }),
82
- ...(opts.aiUrl && { baseUrl: opts.aiUrl }),
83
- ...(opts.aiKey && { apiKey: opts.aiKey }),
82
+ provider: provider,
83
+ model: opts.aiModel ?? cfgAi?.model,
84
+ baseUrl: opts.aiUrl ?? cfgAi?.baseUrl,
85
+ apiKey: opts.aiKey ?? cfgAi?.apiKey,
84
86
  heuristicFallback: true,
85
87
  };
86
88
  }
@@ -133,7 +135,7 @@ program
133
135
  if (opts.configOverride?.length)
134
136
  console.log(chalk_1.default.dim(`Overrides: ${opts.configOverride.join(', ')}`));
135
137
  console.log('');
136
- const aiSummary = buildAiOpts(opts);
138
+ const aiSummary = buildAiOpts(opts, config);
137
139
  const isTTY = process.stdout.isTTY ?? false;
138
140
  const onProgress = createProgressCallback(isTTY);
139
141
  const results = await (0, engine_1.push)(config, configDir, { dryRun: opts.dryRun, tags: opts.tags, onProgress, aiSummary });
@@ -203,7 +205,7 @@ program
203
205
  if (opts.tags)
204
206
  console.log(chalk_1.default.dim(`Tags: ${opts.tags}`));
205
207
  console.log('');
206
- const aiSummary = buildAiOpts(opts);
208
+ const aiSummary = buildAiOpts(opts, config);
207
209
  const isTTY = process.stdout.isTTY ?? false;
208
210
  const onProgress = createProgressCallback(isTTY);
209
211
  const results = await (0, engine_1.status)(config, configDir, { tags: opts.tags, onProgress, aiSummary });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -30,12 +30,20 @@
30
30
  * "N. Check: text" → TC Steps (expected result column)
31
31
  * // @tags: smoke, regression → TC Tags (comma-separated list)
32
32
  * // @smoke → TC Tag (single-word shorthand)
33
- * // @{tagPrefix}:N comment above it()/test() → Azure TC ID (written back after push)
34
- * {fileBasename} > {describe} > {it title} → automatedTestName (Jest report format)
33
+ * // @{tagPrefix}:N comment above it()/test() → Azure TC ID (comment fallback)
35
34
  *
36
- * ID writeback:
35
+ * Playwright-native annotation (preferred over comment, read with higher priority):
36
+ * annotation: { type: '<tagPrefix>', description: 'N' } → Azure TC ID
37
+ * annotation: [{ type: '<tagPrefix>', description: 'N' }, ...] → Azure TC ID (array form)
38
+ * tag: '@<tagPrefix>:N' or tag: ['@<tagPrefix>:N', ...] → Azure TC ID (tag form)
39
+ * tag: '@smoke' etc. → TC Tags
40
+ *
41
+ * ID writeback for Playwright:
42
+ * Inserts / updates annotation: { type: 'tc', description: '12345' } in the test
43
+ * options object. Falls back to // @tc:12345 comment if options cannot be parsed.
44
+ *
45
+ * ID writeback for all other frameworks (Jest, Cypress, etc.):
37
46
  * Inserts / updates // @tc:12345 immediately above the it() / test() line.
38
- * No extra dependency required.
39
47
  *
40
48
  * Path-based auto-tagging: directory segments starting with '@' become tags.
41
49
  */
@@ -31,12 +31,20 @@
31
31
  * "N. Check: text" → TC Steps (expected result column)
32
32
  * // @tags: smoke, regression → TC Tags (comma-separated list)
33
33
  * // @smoke → TC Tag (single-word shorthand)
34
- * // @{tagPrefix}:N comment above it()/test() → Azure TC ID (written back after push)
35
- * {fileBasename} > {describe} > {it title} → automatedTestName (Jest report format)
34
+ * // @{tagPrefix}:N comment above it()/test() → Azure TC ID (comment fallback)
36
35
  *
37
- * ID writeback:
36
+ * Playwright-native annotation (preferred over comment, read with higher priority):
37
+ * annotation: { type: '<tagPrefix>', description: 'N' } → Azure TC ID
38
+ * annotation: [{ type: '<tagPrefix>', description: 'N' }, ...] → Azure TC ID (array form)
39
+ * tag: '@<tagPrefix>:N' or tag: ['@<tagPrefix>:N', ...] → Azure TC ID (tag form)
40
+ * tag: '@smoke' etc. → TC Tags
41
+ *
42
+ * ID writeback for Playwright:
43
+ * Inserts / updates annotation: { type: 'tc', description: '12345' } in the test
44
+ * options object. Falls back to // @tc:12345 comment if options cannot be parsed.
45
+ *
46
+ * ID writeback for all other frameworks (Jest, Cypress, etc.):
38
47
  * Inserts / updates // @tc:12345 immediately above the it() / test() line.
39
- * No extra dependency required.
40
48
  *
41
49
  * Path-based auto-tagging: directory segments starting with '@' become tags.
42
50
  */
@@ -203,6 +211,87 @@ function extractCommentMetadataAbove(lines, itLineIdx, tagPrefix) {
203
211
  }
204
212
  return { azureId, tags };
205
213
  }
214
+ // ─── Playwright native annotation / tag extraction ────────────────────────────
215
+ /**
216
+ * Scan forward from the test call line to find Playwright-native metadata
217
+ * embedded in the second argument (options object):
218
+ *
219
+ * annotation: { type: 'tc', description: '12345' } (inline)
220
+ * annotation: { type: 'tc',\n description: '12345',\n} (multi-line)
221
+ * annotation: [{ type: 'tc', description: '12345' }, ...] (array form)
222
+ * tag: '@tc:12345' | tag: ['@smoke', '@tc:12345']
223
+ *
224
+ * Native annotation takes priority over comment-style in the caller.
225
+ * Comment-style // @tc:N is handled separately by extractCommentMetadataAbove.
226
+ */
227
+ function extractPlaywrightNativeMetadata(lines, itLineIdx, tagPrefix) {
228
+ const tags = [];
229
+ let azureId;
230
+ const typeRe = new RegExp(`type\\s*:\\s*['"]${tagPrefix}['"]`);
231
+ const descRe = /description\s*:\s*['"](\d+)['"]/;
232
+ const tagTokenRe = /'@?([\w:]+)'|"@?([\w:]+)"/g;
233
+ const scanEnd = Math.min(itLineIdx + 25, lines.length);
234
+ let inTcAnnotationBlock = false;
235
+ for (let i = itLineIdx; i < scanEnd; i++) {
236
+ const trimmed = lines[i].trim();
237
+ // Stop when the async callback begins (options object is closed by then)
238
+ if (i > itLineIdx && /^async[\s(]/.test(trimmed))
239
+ break;
240
+ // annotation: { type: 'tc', ... } — detect type line
241
+ if (typeRe.test(trimmed)) {
242
+ inTcAnnotationBlock = true;
243
+ // description may be on the same line: { type: 'tc', description: '123' }
244
+ const dm = trimmed.match(descRe);
245
+ if (dm && azureId === undefined) {
246
+ const n = parseInt(dm[1], 10);
247
+ if (!isNaN(n)) {
248
+ azureId = n;
249
+ inTcAnnotationBlock = false;
250
+ }
251
+ }
252
+ // description may be on the immediately preceding line (reversed order)
253
+ if (azureId === undefined && i > itLineIdx) {
254
+ const prev = lines[i - 1].trim().match(descRe);
255
+ if (prev) {
256
+ const n = parseInt(prev[1], 10);
257
+ if (!isNaN(n)) {
258
+ azureId = n;
259
+ inTcAnnotationBlock = false;
260
+ }
261
+ }
262
+ }
263
+ }
264
+ // Still inside a tc annotation block — look for description on next lines
265
+ if (inTcAnnotationBlock && !typeRe.test(trimmed)) {
266
+ const dm = trimmed.match(descRe);
267
+ if (dm && azureId === undefined) {
268
+ const n = parseInt(dm[1], 10);
269
+ if (!isNaN(n)) {
270
+ azureId = n;
271
+ }
272
+ }
273
+ if (trimmed === '}' || trimmed === '},')
274
+ inTcAnnotationBlock = false;
275
+ }
276
+ // tag: '@tc:12345' or tag: ['@smoke', '@tc:12345']
277
+ if (/\btag\s*:/.test(trimmed)) {
278
+ tagTokenRe.lastIndex = 0;
279
+ let m;
280
+ while ((m = tagTokenRe.exec(trimmed)) !== null) {
281
+ const t = (m[1] ?? m[2] ?? '').replace(/^@/, '');
282
+ if (t.startsWith(`${tagPrefix}:`)) {
283
+ const n = parseInt(t.slice(tagPrefix.length + 1), 10);
284
+ if (!isNaN(n) && azureId === undefined)
285
+ azureId = n;
286
+ }
287
+ else if (t) {
288
+ tags.push(t);
289
+ }
290
+ }
291
+ }
292
+ }
293
+ return { azureId, tags };
294
+ }
206
295
  // ─── JSDoc → title + steps ────────────────────────────────────────────────────
207
296
  const NUMBERED_STEP_RE = /^\d+\.\s+(.+)$/;
208
297
  const CHECK_RE = /^[Cc]heck:\s+(.+)$/;
@@ -250,9 +339,12 @@ function parseJavaScriptFile(filePath, tagPrefix, linkConfigs) {
250
339
  if (!callTitle)
251
340
  continue;
252
341
  const jsdocLines = extractJsdocBefore(lines, itLineIdx);
253
- const { azureId, tags: cTags } = extractCommentMetadataAbove(lines, itLineIdx, tagPrefix);
342
+ const { azureId: cId, tags: cTags } = extractCommentMetadataAbove(lines, itLineIdx, tagPrefix);
343
+ const { azureId: nId, tags: nTags } = extractPlaywrightNativeMetadata(lines, itLineIdx, tagPrefix);
254
344
  const describes = findEnclosingDescribes(lines, itLineIdx);
255
- const allTags = [...new Set([...pathTags, ...cTags])];
345
+ // Native Playwright annotation takes priority over comment-style ID
346
+ const azureId = nId ?? cId;
347
+ const allTags = [...new Set([...pathTags, ...cTags, ...nTags])];
256
348
  const { title, steps } = parseSummary(jsdocLines, callTitle);
257
349
  // automatedTestName mirrors Jest's built-in test-result path format
258
350
  const automatedTestName = [fileBaseName, ...describes, callTitle].join(' > ');
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../src/parsers/javascript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../src/parsers/javascript.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@
8
8
  * test('title', async t => { ... })
9
9
  * test.skip('title', async t => { ... })
10
10
  * test.only('title', async t => { ... })
11
+ * test.meta('tc', '12345')('title', async t => { ... }) ← native meta, key-value
12
+ * test.meta({ tc: '12345' })('title', async t => { ... }) ← native meta, object form
13
+ * test.skip.meta(...)('title', ...) / test.meta(...).skip('title', ...)
11
14
  *
12
15
  * Detected fixture blocks (used as the test group / describe equivalent):
13
16
  * fixture('Fixture title')
@@ -18,13 +21,16 @@
18
21
  * JSDoc /** ... * / first non-numbered line → TC Title
19
22
  * Numbered lines "N. text" → TC Steps (action)
20
23
  * "N. Check: text" → TC Steps (expected result column)
24
+ * test.meta('<tagPrefix>', 'N') → Azure TC ID (preferred)
25
+ * test.meta({ <tagPrefix>: 'N' }) → Azure TC ID (object form)
21
26
  * // @tags: smoke, regression → TC Tags (comma-separated list)
22
27
  * // @smoke → TC Tag (single-word shorthand)
23
- * // @{tagPrefix}:N comment above test() → Azure TC ID (written back after push)
28
+ * // @{tagPrefix}:N comment above test() → Azure TC ID (comment fallback)
24
29
  * {fileBasename} > {fixture} > {test title} → automatedTestName
25
30
  *
26
31
  * ID writeback:
27
- * Inserts / updates // @tc:12345 immediately above the test() line.
32
+ * Inserts / updates test.meta('<tagPrefix>', 'N') chained to the test call.
33
+ * Falls back to // @tc:12345 comment if the test call cannot be parsed.
28
34
  *
29
35
  * Path-based auto-tagging: directory segments starting with '@' become tags.
30
36
  */
@@ -9,6 +9,9 @@
9
9
  * test('title', async t => { ... })
10
10
  * test.skip('title', async t => { ... })
11
11
  * test.only('title', async t => { ... })
12
+ * test.meta('tc', '12345')('title', async t => { ... }) ← native meta, key-value
13
+ * test.meta({ tc: '12345' })('title', async t => { ... }) ← native meta, object form
14
+ * test.skip.meta(...)('title', ...) / test.meta(...).skip('title', ...)
12
15
  *
13
16
  * Detected fixture blocks (used as the test group / describe equivalent):
14
17
  * fixture('Fixture title')
@@ -19,13 +22,16 @@
19
22
  * JSDoc /** ... * / first non-numbered line → TC Title
20
23
  * Numbered lines "N. text" → TC Steps (action)
21
24
  * "N. Check: text" → TC Steps (expected result column)
25
+ * test.meta('<tagPrefix>', 'N') → Azure TC ID (preferred)
26
+ * test.meta({ <tagPrefix>: 'N' }) → Azure TC ID (object form)
22
27
  * // @tags: smoke, regression → TC Tags (comma-separated list)
23
28
  * // @smoke → TC Tag (single-word shorthand)
24
- * // @{tagPrefix}:N comment above test() → Azure TC ID (written back after push)
29
+ * // @{tagPrefix}:N comment above test() → Azure TC ID (comment fallback)
25
30
  * {fileBasename} > {fixture} > {test title} → automatedTestName
26
31
  *
27
32
  * ID writeback:
28
- * Inserts / updates // @tc:12345 immediately above the test() line.
33
+ * Inserts / updates test.meta('<tagPrefix>', 'N') chained to the test call.
34
+ * Falls back to // @tc:12345 comment if the test call cannot be parsed.
29
35
  *
30
36
  * Path-based auto-tagging: directory segments starting with '@' become tags.
31
37
  */
@@ -68,9 +74,17 @@ const fs = __importStar(require("fs"));
68
74
  const path = __importStar(require("path"));
69
75
  const shared_1 = require("./shared");
70
76
  // ─── Test / fixture detection ─────────────────────────────────────────────────
77
+ /** Matches a regular test call (no .meta chaining). */
71
78
  const TEST_CALL_RE = /^(?:test|test\.skip|test\.only)\s*\(/;
72
79
  const TEST_TITLE_RE = /^(?:test|test\.skip|test\.only)\s*\(\s*(['"`])((?:\\.|[^\\])*?)\1/;
73
80
  const FIXTURE_TITLE_RE = /^(?:fixture|fixture\.skip|fixture\.only)\s*\(\s*(['"`])((?:\\.|[^\\])*?)\1/;
81
+ /**
82
+ * Matches a meta-chained test call:
83
+ * test.meta(...)('title', fn)
84
+ * test.skip.meta(...)('title', fn)
85
+ * test.only.meta(...)('title', fn)
86
+ */
87
+ const META_CHAIN_RE = /^test(?:\.(?:skip|only))?\.meta\s*\(/;
74
88
  // ─── Indentation helpers ──────────────────────────────────────────────────────
75
89
  function getIndentLength(line) {
76
90
  return (line.match(/^(\s*)/) ?? ['', ''])[1].length;
@@ -156,6 +170,65 @@ function extractCommentMetadataAbove(lines, testLineIdx, tagPrefix) {
156
170
  }
157
171
  return { azureId, tags };
158
172
  }
173
+ /**
174
+ * Parse a meta-chained TestCafe test call:
175
+ * test.meta('tc', '12345')('title', async t => { ... })
176
+ * test.meta({ tc: '12345', priority: 'high' })('title', async t => { ... })
177
+ *
178
+ * Collects up to 8 lines starting at startLineIdx to handle multi-line meta
179
+ * calls. The titleLineIdx in the result indicates where the title was found
180
+ * (used to advance the outer parsing loop past this test).
181
+ *
182
+ * Returns null if the pattern cannot be parsed.
183
+ */
184
+ function extractMetaChainResult(lines, startLineIdx, tagPrefix) {
185
+ let azureId;
186
+ const tags = [];
187
+ const scanEnd = Math.min(startLineIdx + 8, lines.length);
188
+ // Accumulate trimmed source lines until we can see the )(title pattern
189
+ let collected = '';
190
+ for (let i = startLineIdx; i < scanEnd; i++) {
191
+ collected += (i > startLineIdx ? ' ' : '') + lines[i].trim();
192
+ // Have we closed the .meta(...) call and opened the title call?
193
+ // Pattern: ) followed by ( with a quoted string
194
+ const titleMatch = collected.match(/\)\s*\(\s*(['"`])((?:\\.|[^\\])*?)\1/);
195
+ if (!titleMatch)
196
+ continue;
197
+ const callTitle = titleMatch[2]
198
+ .replace(/\\'/g, "'")
199
+ .replace(/\\"/g, '"')
200
+ .replace(/\\`/g, '`')
201
+ .replace(/\\\\/g, '\\');
202
+ if (!callTitle)
203
+ return null;
204
+ // Extract TC ID — key-value form: .meta('tc', '12345')
205
+ const kvRe = new RegExp(`\\.meta\\s*\\(\\s*['"]${tagPrefix}['"]\\s*,\\s*['"]([\\d]+)['"]`);
206
+ const kvMatch = collected.match(kvRe);
207
+ if (kvMatch) {
208
+ azureId = parseInt(kvMatch[1], 10);
209
+ }
210
+ // Extract TC ID — object form: .meta({ tc: '12345', ... }) or .meta({ "tc": '12345' })
211
+ if (azureId === undefined) {
212
+ const objRe = new RegExp(`\\.meta\\s*\\(\\s*\\{[^}]*['"]?${tagPrefix}['"]?\\s*:\\s*['"]([\\d]+)['"]`);
213
+ const objMatch = collected.match(objRe);
214
+ if (objMatch) {
215
+ azureId = parseInt(objMatch[1], 10);
216
+ }
217
+ }
218
+ // Extract extra tags from object form (non-tc string values)
219
+ const metaObjMatch = collected.match(/\.meta\s*\(\s*\{([^}]*)\}/);
220
+ if (metaObjMatch) {
221
+ const pairRe = /['"]?([\w]+)['"]?\s*:\s*['"]([^'"]+)['"]/g;
222
+ let pm;
223
+ while ((pm = pairRe.exec(metaObjMatch[1])) !== null) {
224
+ if (pm[1] !== tagPrefix)
225
+ tags.push(pm[2]);
226
+ }
227
+ }
228
+ return { callTitle, azureId, tags, titleLineIdx: i };
229
+ }
230
+ return null;
231
+ }
159
232
  // ─── JSDoc → title + steps ────────────────────────────────────────────────────
160
233
  const NUMBERED_STEP_RE = /^\d+\.\s+(.+)$/;
161
234
  const CHECK_RE = /^[Cc]heck:\s+(.+)$/;
@@ -194,23 +267,43 @@ function parseTestCafeFile(filePath, tagPrefix, linkConfigs) {
194
267
  const results = [];
195
268
  for (let i = 0; i < lines.length; i++) {
196
269
  const trimmed = lines[i].trim();
197
- if (!TEST_CALL_RE.test(trimmed))
198
- continue;
199
- const testLineIdx = i;
200
- const m = trimmed.match(TEST_TITLE_RE);
201
- if (!m)
270
+ let testLineIdx = i; // line used for JSDoc / comment extraction (start of test expression)
271
+ let callTitle = '';
272
+ let metaAzureId;
273
+ let metaTags = [];
274
+ if (META_CHAIN_RE.test(trimmed)) {
275
+ // ── meta-chained test: test.meta(...)('title', fn) ──────────────────────
276
+ const extracted = extractMetaChainResult(lines, i, tagPrefix);
277
+ if (!extracted)
278
+ continue;
279
+ callTitle = extracted.callTitle;
280
+ metaAzureId = extracted.azureId;
281
+ metaTags = extracted.tags;
282
+ // testLineIdx stays at i (start of meta chain, used for JSDoc/comment/writeback)
283
+ i = extracted.titleLineIdx; // advance past multi-line meta to avoid re-parsing
284
+ }
285
+ else if (TEST_CALL_RE.test(trimmed)) {
286
+ // ── regular test: test('title', fn) ─────────────────────────────────────
287
+ const m = trimmed.match(TEST_TITLE_RE);
288
+ if (!m)
289
+ continue;
290
+ callTitle = m[2]
291
+ .replace(/\\'/g, "'")
292
+ .replace(/\\"/g, '"')
293
+ .replace(/\\`/g, '`')
294
+ .replace(/\\\\/g, '\\');
295
+ }
296
+ else {
202
297
  continue;
203
- const callTitle = m[2]
204
- .replace(/\\'/g, "'")
205
- .replace(/\\"/g, '"')
206
- .replace(/\\`/g, '`')
207
- .replace(/\\\\/g, '\\');
298
+ }
208
299
  if (!callTitle)
209
300
  continue;
210
301
  const jsdocLines = extractJsdocBefore(lines, testLineIdx);
211
- const { azureId, tags: cTags } = extractCommentMetadataAbove(lines, testLineIdx, tagPrefix);
302
+ const { azureId: cId, tags: cTags } = extractCommentMetadataAbove(lines, testLineIdx, tagPrefix);
212
303
  const fixture = findEnclosingFixture(lines, testLineIdx);
213
- const allTags = [...new Set([...pathTags, ...cTags])];
304
+ // Native .meta() ID takes priority over comment-style ID
305
+ const azureId = metaAzureId ?? cId;
306
+ const allTags = [...new Set([...pathTags, ...cTags, ...metaTags])];
214
307
  const { title, steps } = parseSummary(jsdocLines, callTitle);
215
308
  const automatedTestName = fixture
216
309
  ? [fileBaseName, fixture, callTitle].join(' > ')
@@ -221,7 +314,7 @@ function parseTestCafeFile(filePath, tagPrefix, linkConfigs) {
221
314
  steps,
222
315
  tags: allTags,
223
316
  azureId: azureId !== undefined && !isNaN(azureId) ? azureId : undefined,
224
- line: testLineIdx + 1,
317
+ line: testLineIdx + 1, // 1-based; writeback starts from here
225
318
  linkRefs: (0, shared_1.extractLinkRefs)(allTags, linkConfigs),
226
319
  automatedTestName,
227
320
  });