@wdio/allure-reporter 9.29.0 → 9.30.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.
package/build/index.js CHANGED
@@ -241,12 +241,17 @@ var toPackageLabelCucumber = (p) => {
241
241
 
242
242
  // src/state.ts
243
243
  import { Stage as AllureStage } from "allure-js-commons";
244
+ var ALL_HOOK_PATTERN = /^"(?:before|after)\s+all"/i;
245
+ var EACH_HOOK_PATTERN = /^"(?:before|after)\s+each"/i;
246
+ var AFTER_ALL_HOOK_PATTERN = /^"after\s+all"/i;
244
247
  var AllureReportState = class {
245
248
  constructor(allureRuntime) {
246
249
  this.allureRuntime = allureRuntime;
247
250
  }
248
251
  allureRuntime;
249
252
  _scopesStack = [];
253
+ _scopeKindsStack = [];
254
+ _testScopePendingClose = false;
250
255
  _executablesStack = [];
251
256
  _fixturesStack = [];
252
257
  _currentTestUuid;
@@ -321,12 +326,14 @@ var AllureReportState = class {
321
326
  );
322
327
  return m?.data?.name;
323
328
  }
324
- async _openScope() {
329
+ async _openScope(kind) {
325
330
  const scopeUuid = this.allureRuntime.startScope();
326
331
  this._scopesStack.push(scopeUuid);
332
+ this._scopeKindsStack.push(kind);
327
333
  }
328
334
  async _closeScope() {
329
335
  const scopeUuid = this._scopesStack.pop();
336
+ this._scopeKindsStack.pop();
330
337
  if (scopeUuid) {
331
338
  await this.allureRuntime.writeScope(scopeUuid);
332
339
  }
@@ -338,13 +345,26 @@ var AllureReportState = class {
338
345
  await this.allureRuntime.writeTest(this._currentTestUuid);
339
346
  this._currentTestUuid = void 0;
340
347
  }
348
+ // A test's own scope stays open past its test:end - Mocha fires a test's "after each"
349
+ // hook(s) only after that test's pass/fail/test:end events, so the scope needs to still
350
+ // be there for such a hook to attach to (see _endTest). Once marked pending-close, that
351
+ // scope is orphaned and must be closed before a new suite/test scope is opened, or before
352
+ // a suite-level "after all" hook can reach the suite scope underneath it.
353
+ async _closeDanglingTestScope() {
354
+ if (this._testScopePendingClose) {
355
+ await this._closeScope();
356
+ this._testScopePendingClose = false;
357
+ }
358
+ }
341
359
  async _startSuite() {
342
360
  if (this._currentTestUuid) {
343
361
  await this._writeLastTest();
344
362
  }
345
- await this._openScope();
363
+ await this._closeDanglingTestScope();
364
+ await this._openScope("suite");
346
365
  }
347
366
  async _endSuite(write = false) {
367
+ await this._closeDanglingTestScope();
348
368
  await this._closeScope();
349
369
  if (write) {
350
370
  await this._writeLastTest();
@@ -354,7 +374,8 @@ var AllureReportState = class {
354
374
  if (this._currentTestUuid) {
355
375
  await this._writeLastTest();
356
376
  }
357
- await this._openScope();
377
+ await this._closeDanglingTestScope();
378
+ await this._openScope("test");
358
379
  const { name, start } = message.data;
359
380
  const testUuid = this.allureRuntime.startTest(
360
381
  {
@@ -389,7 +410,7 @@ var AllureReportState = class {
389
410
  return;
390
411
  }
391
412
  await this._closeOpenedSteps(status, stop, statusDetails);
392
- await this._closeScope();
413
+ this._testScopePendingClose = true;
393
414
  this.allureRuntime.updateTest(testUuid, (r) => {
394
415
  r.status = status;
395
416
  if (stage) {
@@ -401,29 +422,53 @@ var AllureReportState = class {
401
422
  });
402
423
  this.allureRuntime.stopTest(testUuid, { stop, duration });
403
424
  }
425
+ // The suite scope is shared by every test started under it, so it must only ever hold a
426
+ // genuinely suite-scoped hook ("before all"/"after all") - attaching anything else there
427
+ // would leak that hook's fixture onto every other test in the suite. A test scope, by
428
+ // contrast, is never shared across multiple real tests, so there's no such leakage risk in
429
+ // being permissive there: it accepts any hook - including a suite-scoped one with no suite
430
+ // scope currently available, e.g. a root-level hook outside any describe() being replayed
431
+ // from _pendingHookMessages (see _attachPendingHookToCurrentTest and the "root-level" test)
432
+ // - as long as that test hasn't been fully finalized yet (_currentTestUuid is only cleared
433
+ // by _writeLastTest). This covers an ordinary running test and a test that just ended and
434
+ // is merely pending close (see _closeDanglingTestScope), which is exactly when a trailing
435
+ // "after each" hook needs to attach. Anything else (no scope open at all) has nowhere safe
436
+ // to attach to yet and is queued as a pending hook to be replayed later.
437
+ _hasAttachableScope(hookName) {
438
+ const kind = this._scopeKindsStack[this._scopeKindsStack.length - 1];
439
+ if (kind === "suite") {
440
+ return ALL_HOOK_PATTERN.test(hookName);
441
+ }
442
+ if (kind === "test") {
443
+ return Boolean(this._currentTestUuid);
444
+ }
445
+ return false;
446
+ }
404
447
  async _startHook(message) {
405
448
  const { name, type, start } = message.data;
406
- if (/after all/i.test(name) && this._currentTestUuid) {
449
+ const isAllHook = ALL_HOOK_PATTERN.test(name);
450
+ if (AFTER_ALL_HOOK_PATTERN.test(name) && this._currentTestUuid) {
407
451
  await this._writeLastTest();
408
452
  }
409
- if (!this._currentTestUuid) {
453
+ if (isAllHook) {
454
+ await this._closeDanglingTestScope();
455
+ }
456
+ const testScopeUuid = this._scopesStack[this._scopesStack.length - 1];
457
+ if (!testScopeUuid || !this._hasAttachableScope(name)) {
410
458
  this._pendingHookMessages.push(message);
411
459
  this._isCapturingPendingHook = true;
412
460
  return;
413
461
  }
414
- const testScopeUuid = this._scopesStack[this._scopesStack.length - 1];
415
- if (testScopeUuid) {
416
- const hookUuid = this.allureRuntime.startFixture(testScopeUuid, type, { name, start });
417
- if (hookUuid) {
418
- this._fixturesStack.push(hookUuid);
419
- this._openHookSteps.set(hookUuid, 0);
420
- this._hookMeta.set(hookUuid, { name, type });
421
- }
462
+ const hookUuid = this.allureRuntime.startFixture(testScopeUuid, type, { name, start });
463
+ if (hookUuid) {
464
+ this._fixturesStack.push(hookUuid);
465
+ this._openHookSteps.set(hookUuid, 0);
466
+ this._hookMeta.set(hookUuid, { name, type });
422
467
  }
423
468
  }
424
469
  async _endHook(message) {
425
470
  const { status, statusDetails, duration, stop } = message.data;
426
- if (!this._currentTestUuid) {
471
+ if (this._fixturesStack.length === 0) {
427
472
  this._pendingHookMessages.push(message);
428
473
  this._isCapturingPendingHook = false;
429
474
  return;
@@ -479,20 +524,10 @@ var AllureReportState = class {
479
524
  }
480
525
  continue;
481
526
  case "allure:hook:start":
482
- if (!this._currentTestUuid) {
483
- this._pendingHookMessages.push(message);
484
- this._isCapturingPendingHook = true;
485
- continue;
486
- }
487
527
  await this._startHook(message);
488
528
  continue;
489
529
  case "allure:hook:end":
490
- if (!this._currentTestUuid) {
491
- this._pendingHookMessages.push(message);
492
- this._isCapturingPendingHook = false;
493
- continue;
494
- }
495
- if (this._fixturesStack.length === 0 && this._pendingHookMessages.length > 0 && !this.currentFeature) {
530
+ if (this._fixturesStack.length === 0 && this._currentTestUuid && this._pendingHookMessages.length > 0 && !this.currentFeature) {
496
531
  this._pendingHookMessages.push(message);
497
532
  this._isCapturingPendingHook = false;
498
533
  const testName = this._currentTestName ?? "unknown test";
@@ -545,7 +580,7 @@ var AllureReportState = class {
545
580
  return;
546
581
  }
547
582
  const startIdx = this._pendingHookMessages.findIndex(
548
- (m) => m.type === "allure:hook:start" && m.data.type === kind && typeof m.data.name === "string" && (scope === "each" ? /each/i.test(m.data.name) : /all/i.test(m.data.name))
583
+ (m) => m.type === "allure:hook:start" && m.data.type === kind && typeof m.data.name === "string" && (scope === "each" ? EACH_HOOK_PATTERN.test(m.data.name) : ALL_HOOK_PATTERN.test(m.data.name))
549
584
  );
550
585
  if (startIdx === -1) {
551
586
  return;
@@ -1432,11 +1467,51 @@ ${this._consoleOutput}`, "utf8"),
1432
1467
  stop: _AllureReporter.getTimeOrNow(suite2.end)
1433
1468
  });
1434
1469
  }
1435
- onSuiteRetry(_suite) {
1470
+ onSuiteRetry(suite2) {
1471
+ const cid = this._currentCid();
1436
1472
  this._pushRuntimeMessage({
1437
1473
  type: "metadata",
1438
1474
  data: { labels: [{ name: LabelName.TAG, value: "retried" }] }
1439
1475
  });
1476
+ suite2.hooks = (suite2.hooks || []).map((h) => {
1477
+ h.state = h.state || AllureStatusEnum.PASSED;
1478
+ return h;
1479
+ });
1480
+ const suiteChildren = [...suite2.tests || [], ...suite2.hooks || []];
1481
+ const isSkipped = suiteChildren.length > 0 && (suite2.tests || []).every((t) => [AllureStatusEnum.SKIPPED].includes(t.state)) && (suite2.hooks || []).every((h) => [AllureStatusEnum.PASSED, AllureStatusEnum.SKIPPED].includes(h.state));
1482
+ const failed = suiteChildren.find((i) => i.state === AllureStatusEnum.FAILED);
1483
+ const status = isSkipped ? AllureStatusEnum.SKIPPED : failed ? getTestStatus(failed) : AllureStatusEnum.FAILED;
1484
+ const error = failed ? getErrorFromFailedTest(failed) : void 0;
1485
+ this._attachLogs();
1486
+ this._endTest({
1487
+ stage: isSkipped ? AllureStage2.PENDING : AllureStage2.FINISHED,
1488
+ status,
1489
+ statusDetails: error ? { message: error.message, trace: error.stack } : void 0,
1490
+ stop: Date.now()
1491
+ });
1492
+ this._consoleOutput = "";
1493
+ this._startTest({ name: suite2.title, start: Date.now() });
1494
+ this._currentLeafTitleByCid.set(cid, suite2.title);
1495
+ const fullTitleForHash = this._mochaFullTitle(cid, suite2.title);
1496
+ this._emitHistoryIdsFrom(fullTitleForHash);
1497
+ const fullName = toFullName(this._pkgByCid.get(cid), fullTitleForHash);
1498
+ this._pushRuntimeMessage({ type: "allure:test:info", data: { fullName, fullTitle: fullTitleForHash } });
1499
+ this._emitBaseLabels(cid);
1500
+ convertSuiteTagsToLabels(suite2?.tags || []).forEach((lbl) => {
1501
+ switch (lbl.name) {
1502
+ case "issue":
1503
+ label2("issue", lbl.value);
1504
+ break;
1505
+ case "testId":
1506
+ label2("testId", lbl.value);
1507
+ break;
1508
+ default:
1509
+ label2(lbl.name, lbl.value);
1510
+ }
1511
+ });
1512
+ if (suite2.description) {
1513
+ description2(suite2.description);
1514
+ }
1440
1515
  }
1441
1516
  _inCucumberStepMode(exec) {
1442
1517
  const kind = getType(exec);
@@ -1475,6 +1550,18 @@ ${this._consoleOutput}`, "utf8"),
1475
1550
  this._handleCucumberStepStart(test);
1476
1551
  return;
1477
1552
  }
1553
+ if (getType(test) === "scenario" && this._hasPendingTest) {
1554
+ this._pushRuntimeMessage({
1555
+ type: "metadata",
1556
+ data: { labels: [{ name: LabelName.TAG, value: "retried" }] }
1557
+ });
1558
+ this._attachLogs();
1559
+ this._endTest({
1560
+ stage: AllureStage2.FINISHED,
1561
+ status: AllureStatusEnum.FAILED,
1562
+ stop: Date.now()
1563
+ });
1564
+ }
1478
1565
  const cid = this._currentCid();
1479
1566
  this._ensureSuitesStarted(cid);
1480
1567
  const start = _AllureReporter.getTimeOrNow(test.start);
@@ -78,7 +78,7 @@ export default class AllureReporter extends WDIOReporter {
78
78
  onSuiteEnd(suite: SuiteStats & {
79
79
  end: Date;
80
80
  }): void;
81
- onSuiteRetry(_suite: SuiteStats): void;
81
+ onSuiteRetry(suite: SuiteStats): void;
82
82
  private _inCucumberStepMode;
83
83
  onTestStart(test: TestStats | HookStats): void;
84
84
  onTestPass(test: TestStats | HookStats): void;
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
package/build/state.d.ts CHANGED
@@ -3,6 +3,8 @@ import type { WDIORuntimeMessage } from './types.js';
3
3
  export declare class AllureReportState {
4
4
  private allureRuntime;
5
5
  private _scopesStack;
6
+ private _scopeKindsStack;
7
+ private _testScopePendingClose;
6
8
  private _executablesStack;
7
9
  private _fixturesStack;
8
10
  private _currentTestUuid?;
@@ -27,11 +29,13 @@ export declare class AllureReportState {
27
29
  private _openScope;
28
30
  private _closeScope;
29
31
  private _writeLastTest;
32
+ private _closeDanglingTestScope;
30
33
  private _startSuite;
31
34
  private _endSuite;
32
35
  private _startTest;
33
36
  private _addTestInfo;
34
37
  private _endTest;
38
+ private _hasAttachableScope;
35
39
  private _startHook;
36
40
  private _endHook;
37
41
  pushRuntimeMessage(message: WDIORuntimeMessage): void;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,KAAK,EAGR,kBAAkB,EAKrB,MAAM,YAAY,CAAA;AAKnB,qBAAa,iBAAiB;IAUd,OAAO,CAAC,aAAa;IATjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,QAAQ,EAAE,kBAAkB,EAAE,CAAK;IACnC,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,uBAAuB,CAAiB;gBAE5B,aAAa,EAAE,eAAe;IAGlD,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,UAAU,CAAI;IAEtB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,SAAS,CAAgE;IAEjF,OAAO,CAAC,aAAa,CACsD;IAE3E,OAAO,CAAC,aAAa,CACmE;YAE1E,qBAAqB;YAerB,iBAAiB;IAgB/B,IAAI,eAAe,IAAI,OAAO,CAI7B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAMvC;YAEa,UAAU;YAKV,WAAW;YAOX,cAAc;YAQd,WAAW;YAOX,SAAS;YAOT,UAAU;IA0BxB,OAAO,CAAC,YAAY;YAWN,QAAQ;YAwBR,UAAU;YAwBV,QAAQ;IAqCtB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI/C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;YAqG9B,+BAA+B;CAgDhD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,KAAK,EAGR,kBAAkB,EAKrB,MAAM,YAAY,CAAA;AAkBnB,qBAAa,iBAAiB;IAYd,OAAO,CAAC,aAAa;IAXjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,sBAAsB,CAAiB;IAC/C,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAQ;IACjC,QAAQ,EAAE,kBAAkB,EAAE,CAAK;IACnC,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,uBAAuB,CAAiB;gBAE5B,aAAa,EAAE,eAAe;IAGlD,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,UAAU,CAAI;IAEtB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,SAAS,CAAgE;IAEjF,OAAO,CAAC,aAAa,CACsD;IAE3E,OAAO,CAAC,aAAa,CACmE;YAE1E,qBAAqB;YAerB,iBAAiB;IAgB/B,IAAI,eAAe,IAAI,OAAO,CAI7B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAMvC;YAEa,UAAU;YAMV,WAAW;YAQX,cAAc;YAad,uBAAuB;YAOvB,WAAW;YAQX,SAAS;YAQT,UAAU;IA2BxB,OAAO,CAAC,YAAY;YAWN,QAAQ;IAqCtB,OAAO,CAAC,mBAAmB;YAWb,UAAU;YA8BV,QAAQ;IAwCtB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI/C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;YA2F9B,+BAA+B;CAgDhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/allure-reporter",
3
- "version": "9.29.0",
3
+ "version": "9.30.0",
4
4
  "description": "A WebdriverIO reporter plugin to create Allure Test Reports",
5
5
  "author": "Boris Osipov <osipov.boris@gmail.com>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-allure-reporter",
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@types/node": "^20.1.0",
40
- "@wdio/reporter": "9.29.0",
41
- "@wdio/types": "9.29.0",
40
+ "@wdio/reporter": "9.29.1",
41
+ "@wdio/types": "9.29.1",
42
42
  "allure-js-commons": "^3.3.2",
43
43
  "csv-stringify": "^6.0.4",
44
44
  "html-entities": "^2.6.0",
@@ -50,5 +50,5 @@
50
50
  "devDependencies": {
51
51
  "rimraf": "^6.0.1"
52
52
  },
53
- "gitHead": "c7808c59ca3ab6a677230cebd688454426cba0f2"
53
+ "gitHead": "5e412ba964c99fb2a4cbf34b5e8ecfee746a5835"
54
54
  }