From cbb34269c9ddcc6510e065693dfeb9b8c853beaf Mon Sep 17 00:00:00 2001 From: Konstantin Epishev <13414205+epszaw@users.noreply.github.com> Date: Fri, 28 Oct 2022 14:47:17 +0200 Subject: [PATCH] better titles for mocha hooks (fixes #424, via #510) --- packages/allure-mocha/src/AllureReporter.ts | 3 ++- packages/allure-mocha/src/MochaAllureReporter.ts | 2 +- packages/allure-mocha/test/specs/hooks.ts | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/allure-mocha/src/AllureReporter.ts b/packages/allure-mocha/src/AllureReporter.ts index 6c0d2291a..296a8d727 100644 --- a/packages/allure-mocha/src/AllureReporter.ts +++ b/packages/allure-mocha/src/AllureReporter.ts @@ -64,6 +64,7 @@ export class AllureReporter { public startHook(hook: Mocha.Hook): void { const suite: AllureGroup | null = this.currentSuite; const title = hook.title; + if (suite && title && title.includes("before")) { this.currentExecutable = suite.addBefore(); } else if (suite && title && title.includes("after")) { @@ -71,7 +72,7 @@ export class AllureReporter { } if (this.currentExecutable) { - this.currentExecutable.name = hook.originalTitle || hook.title; + this.currentExecutable.name = title; } } diff --git a/packages/allure-mocha/src/MochaAllureReporter.ts b/packages/allure-mocha/src/MochaAllureReporter.ts index 967586a17..221fa0ee9 100644 --- a/packages/allure-mocha/src/MochaAllureReporter.ts +++ b/packages/allure-mocha/src/MochaAllureReporter.ts @@ -81,6 +81,6 @@ export class MochaAllureReporter extends Mocha.reporters.Base { } private onHookEnd(hook: Mocha.Hook): void { - this.coreReporter.endHook(hook.error()); + this.coreReporter.endHook(hook?.error?.()); } } diff --git a/packages/allure-mocha/test/specs/hooks.ts b/packages/allure-mocha/test/specs/hooks.ts index 62b252bad..1c8f54cad 100644 --- a/packages/allure-mocha/test/specs/hooks.ts +++ b/packages/allure-mocha/test/specs/hooks.ts @@ -75,7 +75,7 @@ class HooksSuite { const [beforeHook] = group.befores; - expect(beforeHook.name).eq('"before each" hook: some beforeEach name'); + expect(beforeHook.name).eq('"before each" hook: some beforeEach name for "named hooks test"'); } @test @@ -84,6 +84,6 @@ class HooksSuite { const [afterEach] = group.afters; - expect(afterEach.name).eq('"after each" hook: some afterEach name'); + expect(afterEach.name).eq('"after each" hook: some afterEach name for "named hooks test"'); } }