@wp-tester/results 0.0.4 → 0.1.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 (48) hide show
  1. package/dist/diff-utils.d.ts +27 -0
  2. package/dist/diff-utils.d.ts.map +1 -0
  3. package/dist/diff-utils.js +116 -0
  4. package/dist/diff-utils.js.map +1 -0
  5. package/dist/diff-utils.spec.d.ts +5 -0
  6. package/dist/diff-utils.spec.d.ts.map +1 -0
  7. package/dist/diff-utils.spec.js +85 -0
  8. package/dist/diff-utils.spec.js.map +1 -0
  9. package/dist/index.d.ts +7 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/merge.d.ts.map +1 -1
  14. package/dist/merge.js +21 -2
  15. package/dist/merge.js.map +1 -1
  16. package/dist/merge.spec.js +230 -0
  17. package/dist/merge.spec.js.map +1 -1
  18. package/dist/phpunit-streaming-reporter.d.ts +19 -0
  19. package/dist/phpunit-streaming-reporter.d.ts.map +1 -0
  20. package/dist/phpunit-streaming-reporter.js +26 -0
  21. package/dist/phpunit-streaming-reporter.js.map +1 -0
  22. package/dist/spinner.d.ts +20 -0
  23. package/dist/spinner.d.ts.map +1 -0
  24. package/dist/spinner.js +36 -0
  25. package/dist/spinner.js.map +1 -0
  26. package/dist/streaming.d.ts +36 -0
  27. package/dist/streaming.d.ts.map +1 -1
  28. package/dist/streaming.js +253 -51
  29. package/dist/streaming.js.map +1 -1
  30. package/dist/streaming.spec.js +115 -2
  31. package/dist/streaming.spec.js.map +1 -1
  32. package/dist/summary.d.ts +12 -1
  33. package/dist/summary.d.ts.map +1 -1
  34. package/dist/summary.js +40 -6
  35. package/dist/summary.js.map +1 -1
  36. package/dist/teamcity-parser.d.ts.map +1 -1
  37. package/dist/teamcity-parser.js +19 -1
  38. package/dist/teamcity-parser.js.map +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/dist/vitest-streaming-reporter.d.ts +3 -3
  41. package/dist/vitest-streaming-reporter.d.ts.map +1 -1
  42. package/dist/vitest-streaming-reporter.js +65 -4
  43. package/dist/vitest-streaming-reporter.js.map +1 -1
  44. package/dist/vitest-streaming.d.ts +19 -0
  45. package/dist/vitest-streaming.d.ts.map +1 -0
  46. package/dist/vitest-streaming.js +28 -0
  47. package/dist/vitest-streaming.js.map +1 -0
  48. package/package.json +1 -1
package/dist/streaming.js CHANGED
@@ -8,10 +8,8 @@
8
8
  * parallel test execution without output interference.
9
9
  */
10
10
  import pc from "picocolors";
11
- /**
12
- * Spinner frames for animated loader
13
- */
14
- const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
11
+ import { applyDiffHighlighting } from "./diff-utils.js";
12
+ import { SPINNER_FRAMES } from "./spinner.js";
15
13
  /**
16
14
  * Default stdout writer
17
15
  */
@@ -55,6 +53,14 @@ export class StreamingReporter {
55
53
  this.showRunBoundaries = options.showRunBoundaries ?? true;
56
54
  this.showSummary = options.showSummary ?? true;
57
55
  this.enabled = options.enabled ?? true;
56
+ // Default filter: show all statuses (for backwards compatibility)
57
+ this.filter = options.filter ?? {
58
+ passed: true,
59
+ failed: true,
60
+ skipped: true,
61
+ pending: true,
62
+ other: true,
63
+ };
58
64
  this.state = {
59
65
  files: new Map(),
60
66
  toolName: "wp-tester",
@@ -63,8 +69,17 @@ export class StreamingReporter {
63
69
  passedTests: 0,
64
70
  failedTests: 0,
65
71
  skippedTests: 0,
72
+ pendingTests: 0,
73
+ isRunning: false,
66
74
  };
67
75
  }
76
+ /**
77
+ * Generate filter command for re-running a specific test
78
+ * Override in subclasses for framework-specific behavior
79
+ */
80
+ getFilterCommand(_testName, _suiteName) {
81
+ return null;
82
+ }
68
83
  /**
69
84
  * Enable or disable run boundaries (header and summary)
70
85
  */
@@ -154,7 +169,8 @@ export class StreamingReporter {
154
169
  let hasRunningTests = false;
155
170
  for (const file of this.state.files.values()) {
156
171
  for (const suite of file.suites) {
157
- if (suite.isLoading || suite.tests.some(t => t.status === "running")) {
172
+ if (suite.isLoading ||
173
+ suite.tests.some((t) => t.status === "running")) {
158
174
  hasRunningTests = true;
159
175
  break;
160
176
  }
@@ -180,22 +196,66 @@ export class StreamingReporter {
180
196
  this.stopSpinner();
181
197
  }
182
198
  }
199
+ /**
200
+ * Check if a suite or any of its descendants has visible content
201
+ */
202
+ hasVisibleContent(file, suiteIndex) {
203
+ const suite = file.suites[suiteIndex];
204
+ // Check if suite is loading (always visible during loading)
205
+ if (suite.isLoading && suite.tests.length === 0) {
206
+ return true;
207
+ }
208
+ // Check if suite has any visible tests
209
+ const hasVisibleTests = suite.tests.some(test => this.shouldShowStatus(test.status));
210
+ if (hasVisibleTests) {
211
+ return true;
212
+ }
213
+ // Check if any child suites (with depth > current depth) have visible content
214
+ const currentDepth = suite.depth;
215
+ for (let i = suiteIndex + 1; i < file.suites.length; i++) {
216
+ const nextSuite = file.suites[i];
217
+ // If we've returned to the same or lower depth, we've exited the children
218
+ if (nextSuite.depth <= currentDepth) {
219
+ break;
220
+ }
221
+ // Only check immediate children (depth = current + 1)
222
+ if (nextSuite.depth === currentDepth + 1) {
223
+ if (this.hasVisibleContent(file, i)) {
224
+ return true;
225
+ }
226
+ }
227
+ }
228
+ return false;
229
+ }
183
230
  /**
184
231
  * Render a file's tests to output lines
185
232
  */
186
233
  renderFile(file, lines) {
187
- for (const suite of file.suites) {
188
- this.renderSuite(suite, lines);
234
+ for (let i = 0; i < file.suites.length; i++) {
235
+ this.renderSuite(file, i, lines);
189
236
  }
190
237
  }
191
238
  /**
192
239
  * Render a suite and its tests
193
240
  */
194
- renderSuite(suite, lines) {
241
+ renderSuite(file, suiteIndex, lines) {
242
+ const suite = file.suites[suiteIndex];
195
243
  const indent = " ".repeat(suite.depth);
196
244
  // Only show spinner if suite is loading AND has no tests yet
197
245
  // Don't show spinner if tests have been reported (loading is complete)
198
246
  const showSpinner = suite.isLoading && suite.tests.length === 0;
247
+ // Collect visible tests first to determine if suite should be shown
248
+ const visibleTestLines = [];
249
+ for (const test of suite.tests) {
250
+ if (this.shouldShowStatus(test.status)) {
251
+ this.renderTest(test, suite.depth + 1, visibleTestLines);
252
+ }
253
+ }
254
+ // Check if this suite has visible content (tests or child suites with content)
255
+ if (!this.hasVisibleContent(file, suiteIndex)) {
256
+ return; // Skip rendering this suite entirely
257
+ }
258
+ // Render the suite name
199
259
  if (showSpinner) {
200
260
  const spinner = pc.cyan(SPINNER_FRAMES[this.spinnerFrame]);
201
261
  lines.push(`${indent}${spinner} ${pc.bold(suite.name)}`);
@@ -204,10 +264,26 @@ export class StreamingReporter {
204
264
  // Use two spaces to replace the spinner character and space, preventing text shift
205
265
  lines.push(`${indent} ${pc.bold(suite.name)}`);
206
266
  }
207
- // Render tests
208
- for (const test of suite.tests) {
209
- this.renderTest(test, suite.depth + 1, lines);
210
- }
267
+ // Add the visible test lines
268
+ lines.push(...visibleTestLines);
269
+ }
270
+ /**
271
+ * Check if a test status should be displayed based on filter settings
272
+ */
273
+ shouldShowStatus(status) {
274
+ // Always show running tests (transient state)
275
+ if (status === "running") {
276
+ return true;
277
+ }
278
+ // Map status to filter property
279
+ const filterMap = {
280
+ passed: "passed",
281
+ failed: "failed",
282
+ skipped: "skipped",
283
+ pending: "pending",
284
+ };
285
+ const filterKey = filterMap[status];
286
+ return this.filter[filterKey] ?? false;
211
287
  }
212
288
  /**
213
289
  * Render a single test
@@ -221,30 +297,96 @@ export class StreamingReporter {
221
297
  break;
222
298
  }
223
299
  case "passed": {
224
- const durationStr = test.duration ? pc.dim(` ${formatDuration(test.duration)}`) : "";
300
+ const durationStr = test.duration
301
+ ? pc.dim(` ${formatDuration(test.duration)}`)
302
+ : "";
225
303
  lines.push(`${indent}${pc.green("✓")} ${test.name}${durationStr}`);
226
304
  break;
227
305
  }
228
306
  case "failed": {
229
- const durationStr = test.duration ? pc.dim(` ${formatDuration(test.duration)}`) : "";
307
+ const durationStr = test.duration
308
+ ? pc.dim(` ${formatDuration(test.duration)}`)
309
+ : "";
230
310
  lines.push(`${indent}${pc.red("✗")} ${test.name}${durationStr}`);
231
311
  if (test.message) {
232
312
  const messageIndent = " ".repeat(depth + 1);
233
- const indentedMessage = test.message
234
- .split("\n")
235
- .map((line) => `${messageIndent}${pc.red(line)}`)
236
- .join("\n");
237
- lines.push(indentedMessage);
313
+ for (const line of test.message.split("\n")) {
314
+ lines.push(`${messageIndent}${pc.red(line)}`);
315
+ }
316
+ }
317
+ if (test.trace) {
318
+ const traceIndent = " ".repeat(depth + 1);
319
+ const traceLines = test.trace.split("\n");
320
+ for (let i = 0; i < traceLines.length; i++) {
321
+ const line = traceLines[i];
322
+ const trimmed = line.trim();
323
+ // Detect Expected/Actual labels and color the values (supports multiline values)
324
+ if (trimmed === "Expected:" && i + 1 < traceLines.length) {
325
+ lines.push(`${traceIndent}${pc.dim("Expected:")}`);
326
+ i++; // Move to the first value line
327
+ // Continue processing lines until we hit Actual:, an empty line, or end of trace
328
+ while (i < traceLines.length) {
329
+ const valueLine = traceLines[i];
330
+ const valueTrimmed = valueLine.trim();
331
+ // Stop if we hit the Actual: label or empty line
332
+ if (valueTrimmed === "Actual:" || valueTrimmed === "") {
333
+ i--; // Back up so the outer loop can process this line
334
+ break;
335
+ }
336
+ if (valueTrimmed) {
337
+ lines.push(`${traceIndent}${applyDiffHighlighting(valueLine, pc.red)}`);
338
+ }
339
+ i++;
340
+ }
341
+ }
342
+ else if (trimmed === "Actual:" && i + 1 < traceLines.length) {
343
+ lines.push(`${traceIndent}${pc.dim("Actual:")}`);
344
+ i++; // Move to the first value line
345
+ // Continue processing lines until we hit an empty line or end of trace
346
+ while (i < traceLines.length) {
347
+ const valueLine = traceLines[i];
348
+ const valueTrimmed = valueLine.trim();
349
+ // Stop if we hit an empty line
350
+ if (valueTrimmed === "") {
351
+ i--; // Back up so the outer loop can process this line
352
+ break;
353
+ }
354
+ if (valueTrimmed) {
355
+ lines.push(`${traceIndent}${applyDiffHighlighting(valueLine, pc.green)}`);
356
+ }
357
+ i++;
358
+ }
359
+ }
360
+ else if (trimmed) {
361
+ // File paths, context lines, other trace info
362
+ lines.push(`${traceIndent}${pc.dim(line)}`);
363
+ }
364
+ else {
365
+ // Empty lines (preserve them for spacing)
366
+ lines.push("");
367
+ }
368
+ }
369
+ // Add filter to re-run this specific test
370
+ if (test.name) {
371
+ const filterCmd = this.getFilterCommand(test.name, test.suiteName);
372
+ if (filterCmd) {
373
+ lines.push(`${traceIndent}${pc.dim("Re-run only this test by appending:")}`);
374
+ lines.push(`${traceIndent}${pc.dim(filterCmd)}`);
375
+ }
376
+ }
238
377
  }
239
378
  break;
240
379
  }
241
380
  case "skipped": {
242
- const reasonStr = test.message ? ` ${pc.dim(`(${test.message})`)}` : "";
381
+ const reasonStr = test.message
382
+ ? ` ${pc.dim(`(${test.message})`)}`
383
+ : ` ${pc.dim("(Skipped)")}`;
243
384
  lines.push(`${indent}${pc.yellow("○")} ${pc.dim(test.name)}${reasonStr}`);
244
385
  break;
245
386
  }
246
387
  case "pending": {
247
- lines.push(`${indent}${pc.yellow("○")} ${pc.dim(test.name)}`);
388
+ const message = test.message ? ` ${pc.dim(`(${test.message})`)}` : "";
389
+ lines.push(`${indent}${pc.yellow("◔")} ${pc.dim(test.name)}${message}`);
248
390
  break;
249
391
  }
250
392
  }
@@ -270,7 +412,7 @@ export class StreamingReporter {
270
412
  */
271
413
  getOrCreateSuite(file, suiteName) {
272
414
  // Find existing suite
273
- let suite = file.suites.find(s => s.name === suiteName);
415
+ let suite = file.suites.find((s) => s.name === suiteName);
274
416
  if (!suite) {
275
417
  suite = {
276
418
  name: suiteName,
@@ -282,18 +424,33 @@ export class StreamingReporter {
282
424
  }
283
425
  return suite;
284
426
  }
427
+ /**
428
+ * Get display name from tool name
429
+ */
430
+ getDisplayName(toolName) {
431
+ const nameMap = {
432
+ "wp-tester-phpunit": "PHPUnit Tests",
433
+ "wp-tester-smoke": "WordPress Tests",
434
+ "wp-tester": "Tests",
435
+ };
436
+ return nameMap[toolName] || toolName;
437
+ }
285
438
  /**
286
439
  * Called when test run starts
287
440
  */
288
441
  onRunStart(toolName) {
442
+ const tool = toolName || "wp-tester";
289
443
  this.state = {
290
444
  files: new Map(),
291
- toolName: toolName || "wp-tester",
445
+ toolName: tool,
446
+ displayName: this.getDisplayName(tool),
292
447
  startTime: Date.now(),
293
448
  totalTests: 0,
294
449
  passedTests: 0,
295
450
  failedTests: 0,
296
451
  skippedTests: 0,
452
+ pendingTests: 0,
453
+ isRunning: true,
297
454
  };
298
455
  this.lastOutputLineCount = 0;
299
456
  }
@@ -302,6 +459,7 @@ export class StreamingReporter {
302
459
  */
303
460
  onRunEnd() {
304
461
  this.stopSpinner();
462
+ this.state.isRunning = false;
305
463
  // Clean up any tests still in "running" state across all files
306
464
  // This ensures we never show spinners in the final output
307
465
  for (const file of this.state.files.values()) {
@@ -310,6 +468,9 @@ export class StreamingReporter {
310
468
  for (const test of suite.tests) {
311
469
  if (test.status === "running") {
312
470
  test.status = "pending";
471
+ test.message = test.message || "Did not complete";
472
+ this.state.pendingTests++;
473
+ this.state.totalTests++;
313
474
  }
314
475
  }
315
476
  }
@@ -339,7 +500,9 @@ export class StreamingReporter {
339
500
  * Called when a test suite starts
340
501
  */
341
502
  onSuiteStart(name, fileId) {
342
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
503
+ const file = fileId
504
+ ? this.getOrCreateFile(fileId)
505
+ : this.getOrCreateFile("__global__");
343
506
  file.currentSuiteStack.push(name);
344
507
  const suite = this.getOrCreateSuite(file, name);
345
508
  // When a child suite is created, mark all parent suites as not loading
@@ -355,7 +518,9 @@ export class StreamingReporter {
355
518
  * Called when a test suite ends
356
519
  */
357
520
  onSuiteEnd(name, fileId) {
358
- const file = fileId ? this.state.files.get(fileId) : this.state.files.get("__global__");
521
+ const file = fileId
522
+ ? this.state.files.get(fileId)
523
+ : this.state.files.get("__global__");
359
524
  if (file) {
360
525
  const index = file.currentSuiteStack.lastIndexOf(name);
361
526
  if (index !== -1) {
@@ -363,7 +528,7 @@ export class StreamingReporter {
363
528
  }
364
529
  // Mark suite as no longer loading when it ends
365
530
  // This ensures loaders are removed even if no tests were reported
366
- const suite = file.suites.find(s => s.name === name);
531
+ const suite = file.suites.find((s) => s.name === name);
367
532
  if (suite) {
368
533
  suite.isLoading = false;
369
534
  // Clean up any tests still in "running" state - they should be marked as pending
@@ -371,6 +536,9 @@ export class StreamingReporter {
371
536
  for (const test of suite.tests) {
372
537
  if (test.status === "running") {
373
538
  test.status = "pending";
539
+ test.message = test.message || "Did not complete";
540
+ this.state.pendingTests++;
541
+ this.state.totalTests++;
374
542
  }
375
543
  }
376
544
  }
@@ -381,42 +549,55 @@ export class StreamingReporter {
381
549
  * Called when a test starts
382
550
  */
383
551
  onTestStart(name, suiteName, fileId) {
384
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
552
+ const file = fileId
553
+ ? this.getOrCreateFile(fileId)
554
+ : this.getOrCreateFile("__global__");
385
555
  const suite = this.getOrCreateSuite(file, suiteName || "Tests");
386
556
  // Mark ALL suites in this file as no longer loading once any test starts
387
557
  // This handles nested suite structures where parent suites don't directly contain tests
388
558
  for (const s of file.suites) {
389
559
  s.isLoading = false;
390
560
  }
391
- suite.tests.push({
392
- name,
393
- suiteName,
394
- status: "running",
395
- });
561
+ // Check if test already exists (completion event arrived before start event)
562
+ const existingTest = suite.tests.find((t) => t.name === name && t.suiteName === suiteName);
563
+ if (!existingTest) {
564
+ // Test doesn't exist yet - create it in running state
565
+ suite.tests.push({
566
+ name,
567
+ suiteName,
568
+ status: "running",
569
+ });
570
+ }
571
+ // If test already exists with a completed status, don't change it
396
572
  this.render();
397
573
  }
398
574
  /**
399
575
  * Called when a test passes
400
576
  */
401
577
  onTestPass(name, duration, suiteName, fileId) {
402
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
578
+ const file = fileId
579
+ ? this.getOrCreateFile(fileId)
580
+ : this.getOrCreateFile("__global__");
403
581
  const suite = this.getOrCreateSuite(file, suiteName || "Tests");
404
582
  // Mark ALL suites in this file as no longer loading once any test completes
405
583
  // This handles nested suite structures where parent suites don't directly contain tests
406
584
  for (const s of file.suites) {
407
585
  s.isLoading = false;
408
586
  }
409
- // Find and update the test - try exact match first, then fallback to name-only match
410
- let test = suite.tests.find(t => t.name === name && t.suiteName === suiteName);
587
+ // Find and update the test
588
+ // Look for a test in "running" state first (most common case - completion follows start)
589
+ let test = suite.tests.find((t) => t.name === name && t.status === "running");
411
590
  if (!test) {
412
- // Fallback: try to find by name only (handles cases where suiteName might differ)
413
- test = suite.tests.find(t => t.name === name && t.status === "running");
591
+ // Fallback: try exact match with suiteName (handles case where test completed before start event)
592
+ test = suite.tests.find((t) => t.name === name && t.suiteName === suiteName);
414
593
  }
415
594
  if (test) {
416
595
  test.status = "passed";
417
596
  test.duration = duration;
597
+ test.suiteName = suiteName; // Ensure suiteName is set
418
598
  }
419
599
  else {
600
+ // Test start event hasn't arrived yet - create the test with completed state
420
601
  suite.tests.push({
421
602
  name,
422
603
  suiteName,
@@ -432,26 +613,31 @@ export class StreamingReporter {
432
613
  * Called when a test fails
433
614
  */
434
615
  onTestFail(name, duration, message, trace, suiteName, fileId) {
435
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
616
+ const file = fileId
617
+ ? this.getOrCreateFile(fileId)
618
+ : this.getOrCreateFile("__global__");
436
619
  const suite = this.getOrCreateSuite(file, suiteName || "Tests");
437
620
  // Mark ALL suites in this file as no longer loading once any test completes
438
621
  // This handles nested suite structures where parent suites don't directly contain tests
439
622
  for (const s of file.suites) {
440
623
  s.isLoading = false;
441
624
  }
442
- // Find and update the test - try exact match first, then fallback to name-only match
443
- let test = suite.tests.find(t => t.name === name && t.suiteName === suiteName);
625
+ // Find and update the test
626
+ // Look for a test in "running" state first (most common case - completion follows start)
627
+ let test = suite.tests.find((t) => t.name === name && t.status === "running");
444
628
  if (!test) {
445
- // Fallback: try to find by name only (handles cases where suiteName might differ)
446
- test = suite.tests.find(t => t.name === name && t.status === "running");
629
+ // Fallback: try exact match with suiteName (handles case where test completed before start event)
630
+ test = suite.tests.find((t) => t.name === name && t.suiteName === suiteName);
447
631
  }
448
632
  if (test) {
449
633
  test.status = "failed";
450
634
  test.duration = duration;
451
635
  test.message = message;
452
636
  test.trace = trace;
637
+ test.suiteName = suiteName; // Ensure suiteName is set
453
638
  }
454
639
  else {
640
+ // Test start event hasn't arrived yet - create the test with completed state
455
641
  suite.tests.push({
456
642
  name,
457
643
  suiteName,
@@ -469,24 +655,29 @@ export class StreamingReporter {
469
655
  * Called when a test is skipped
470
656
  */
471
657
  onTestSkip(name, reason, suiteName, fileId) {
472
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
658
+ const file = fileId
659
+ ? this.getOrCreateFile(fileId)
660
+ : this.getOrCreateFile("__global__");
473
661
  const suite = this.getOrCreateSuite(file, suiteName || "Tests");
474
662
  // Mark ALL suites in this file as no longer loading once any test completes
475
663
  // This handles nested suite structures where parent suites don't directly contain tests
476
664
  for (const s of file.suites) {
477
665
  s.isLoading = false;
478
666
  }
479
- // Find and update the test - try exact match first, then fallback to name-only match
480
- let test = suite.tests.find(t => t.name === name && t.suiteName === suiteName);
667
+ // Find and update the test
668
+ // Look for a test in "running" state first (most common case - completion follows start)
669
+ let test = suite.tests.find((t) => t.name === name && t.status === "running");
481
670
  if (!test) {
482
- // Fallback: try to find by name only (handles cases where suiteName might differ)
483
- test = suite.tests.find(t => t.name === name && t.status === "running");
671
+ // Fallback: try exact match with suiteName (handles case where test completed before start event)
672
+ test = suite.tests.find((t) => t.name === name && t.suiteName === suiteName);
484
673
  }
485
674
  if (test) {
486
675
  test.status = "skipped";
487
676
  test.message = reason;
677
+ test.suiteName = suiteName; // Ensure suiteName is set
488
678
  }
489
679
  else {
680
+ // Test start event hasn't arrived yet - create the test with completed state
490
681
  suite.tests.push({
491
682
  name,
492
683
  suiteName,
@@ -502,12 +693,14 @@ export class StreamingReporter {
502
693
  * Called when a test is pending
503
694
  */
504
695
  onTestPending(name, suiteName, fileId) {
505
- const file = fileId ? this.getOrCreateFile(fileId) : this.getOrCreateFile("__global__");
696
+ const file = fileId
697
+ ? this.getOrCreateFile(fileId)
698
+ : this.getOrCreateFile("__global__");
506
699
  const suite = this.getOrCreateSuite(file, suiteName || "Tests");
507
700
  // Mark suite as no longer loading once first test completes
508
701
  suite.isLoading = false;
509
702
  // Find and update the test
510
- const test = suite.tests.find(t => t.name === name && t.suiteName === suiteName);
703
+ const test = suite.tests.find((t) => t.name === name && t.suiteName === suiteName);
511
704
  if (test) {
512
705
  test.status = "pending";
513
706
  }
@@ -535,9 +728,15 @@ export class StreamingReporter {
535
728
  if (this.state.skippedTests > 0) {
536
729
  this.writer.writeLine(pc.yellow(` ○ ${this.state.skippedTests} skipped`));
537
730
  }
731
+ if (this.state.pendingTests > 0) {
732
+ this.writer.writeLine(pc.yellow(` ◔ ${this.state.pendingTests} pending`));
733
+ }
538
734
  this.writer.writeLine("");
539
735
  this.writer.writeLine(pc.dim(` ${this.state.totalTests} tests in ${formatDuration(duration)}`));
540
736
  this.writer.writeLine("");
737
+ // Print icon legend
738
+ this.writer.writeLine(pc.dim(" Legend: ✓ passed ✗ failed ○ skipped ◔ pending"));
739
+ this.writer.writeLine("");
541
740
  }
542
741
  /**
543
742
  * Get the current report in CTRF format
@@ -549,7 +748,9 @@ export class StreamingReporter {
549
748
  for (const suite of file.suites) {
550
749
  for (const test of suite.tests) {
551
750
  const ctrf = {
552
- name: test.suiteName ? `${test.suiteName}::${test.name}` : test.name,
751
+ name: test.suiteName
752
+ ? `${test.suiteName}::${test.name}`
753
+ : test.name,
553
754
  status: test.status === "running" ? "other" : test.status,
554
755
  duration: test.duration || 0,
555
756
  };
@@ -575,7 +776,7 @@ export class StreamingReporter {
575
776
  passed: this.state.passedTests,
576
777
  failed: this.state.failedTests,
577
778
  skipped: this.state.skippedTests,
578
- pending: 0,
779
+ pending: this.state.pendingTests,
579
780
  other: 0,
580
781
  start: this.state.startTime,
581
782
  stop: Date.now(),
@@ -593,6 +794,7 @@ export class StreamingReporter {
593
794
  passed: this.state.passedTests,
594
795
  failed: this.state.failedTests,
595
796
  skipped: this.state.skippedTests,
797
+ pending: this.state.pendingTests,
596
798
  };
597
799
  }
598
800
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}