diff --git a/packages/runner/src/suite.ts b/packages/runner/src/suite.ts index 773cd67b5bb4..7960913cd0a2 100644 --- a/packages/runner/src/suite.ts +++ b/packages/runner/src/suite.ts @@ -269,7 +269,7 @@ function createTest(fn: ( } function formatName(name: string | Function) { - return typeof name === 'string' ? name : name instanceof Function ? name.name : String(name) + return typeof name === 'string' ? name : name instanceof Function ? (name.name || '') : String(name) } function formatTitle(template: string, items: any[], idx: number) { diff --git a/test/reporters/fixtures/function-as-name.test.ts b/test/reporters/fixtures/function-as-name.test.ts index fb01790f0ec8..a08ab86b94fd 100644 --- a/test/reporters/fixtures/function-as-name.test.ts +++ b/test/reporters/fixtures/function-as-name.test.ts @@ -15,6 +15,18 @@ describe(Bar, () => { }) }) +describe(() => {}, () => { + test(foo, () => { + expect(0).toBe(0) + }) +}) + +describe(foo, () => { + test(() => {}, () => { + expect(0).toBe(0) + }) +}) + describe.each([1])(foo, () => { test.each([1])(foo, () => { expect(0).toBe(0) diff --git a/test/reporters/tests/function-as-name.test.ts b/test/reporters/tests/function-as-name.test.ts index 75714f30b053..2dda78176898 100644 --- a/test/reporters/tests/function-as-name.test.ts +++ b/test/reporters/tests/function-as-name.test.ts @@ -9,6 +9,8 @@ test('should print function name', async () => { expect(stdout).toBeTruthy() expect(stdout).toContain('function-as-name.test.ts > foo > Bar') expect(stdout).toContain('function-as-name.test.ts > Bar > foo') + expect(stdout).toContain('function-as-name.test.ts > > foo') + expect(stdout).toContain('function-as-name.test.ts > foo > ') expect(stdout).toContain('function-as-name.test.ts > foo > foo') expect(stdout).toContain('function-as-name.test.ts > Bar > Bar') })