From 55f4b670a9dc950a4c78f2674c74a5610cb62fb1 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Fri, 17 Feb 2023 14:26:40 -0800 Subject: [PATCH] fix(test runner types): allow sync step functions (#20996) --- packages/playwright-test/types/test.d.ts | 2 +- tests/playwright-test/types-2.spec.ts | 1 + utils/generate_types/overrides-test.d.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/playwright-test/types/test.d.ts b/packages/playwright-test/types/test.d.ts index 694200a71f..8414206ff5 100644 --- a/packages/playwright-test/types/test.d.ts +++ b/packages/playwright-test/types/test.d.ts @@ -3184,7 +3184,7 @@ export interface TestType(title: string, body: () => Promise): Promise; + step(title: string, body: () => T | Promise): Promise; /** * `expect` function can be used to create test assertions. Read more about [test assertions](https://playwright.dev/docs/test-assertions). * diff --git a/tests/playwright-test/types-2.spec.ts b/tests/playwright-test/types-2.spec.ts index faaee8ec89..25fa0f1e0c 100644 --- a/tests/playwright-test/types-2.spec.ts +++ b/tests/playwright-test/types-2.spec.ts @@ -160,6 +160,7 @@ test('step should inherit return type from its callback ', async ({ runTSC }) => return 'foo'; }); await test.step('my step', async () => { }); + const good2: string = await test.step('my step', () => 'foo'); }); ` }); diff --git a/utils/generate_types/overrides-test.d.ts b/utils/generate_types/overrides-test.d.ts index 72b0ecf118..5e5eeb3b3b 100644 --- a/utils/generate_types/overrides-test.d.ts +++ b/utils/generate_types/overrides-test.d.ts @@ -152,7 +152,7 @@ export interface TestType Promise | any): void; afterAll(inner: (args: TestArgs & WorkerArgs, testInfo: TestInfo) => Promise | any): void; use(fixtures: Fixtures<{}, {}, TestArgs, WorkerArgs>): void; - step(title: string, body: () => Promise): Promise; + step(title: string, body: () => T | Promise): Promise; expect: Expect; extend(fixtures: Fixtures): TestType; info(): TestInfo;