From 95b1ba4c17df1677136b39762c19d859db3f4cb2 Mon Sep 17 00:00:00 2001 From: Gustavo Bissolli Date: Fri, 22 Apr 2022 14:46:05 +0400 Subject: [PATCH] fix: types for EachFunction are missing awaitable return (fix: #1181) (#1182) --- packages/vitest/src/types/tasks.ts | 6 +++--- test/core/test/each.test.ts | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/vitest/src/types/tasks.ts b/packages/vitest/src/types/tasks.ts index b4efcb549fed..4de9a75aa679 100644 --- a/packages/vitest/src/types/tasks.ts +++ b/packages/vitest/src/types/tasks.ts @@ -86,15 +86,15 @@ type ExtractEachCallbackArgs> = { interface EachFunction { (cases: ReadonlyArray): ( name: string, - fn: (...args: T) => void + fn: (...args: T) => Awaitable ) => void >(cases: ReadonlyArray): ( name: string, - fn: (...args: ExtractEachCallbackArgs) => void + fn: (...args: ExtractEachCallbackArgs) => Awaitable ) => void (cases: ReadonlyArray): ( name: string, - fn: (...args: T[]) => void + fn: (...args: T[]) => Awaitable ) => void } diff --git a/test/core/test/each.test.ts b/test/core/test/each.test.ts index 2da40bf5b7b7..677962d4e1c7 100644 --- a/test/core/test/each.test.ts +++ b/test/core/test/each.test.ts @@ -83,3 +83,17 @@ test.each([ ])('the index of the test case is %#', (a, b, expected) => { expect(a + b).toBe(expected) }) + +test.each([ + [1, 2, 3], + [4, 5, 9], +])('return a promise like result %#', async(a, b, expected) => { + const promiseResolver = (first: number, second: number) => { + return new Promise((resolve) => { + setTimeout(() => resolve(first + second), 1) + }) + } + + const result = await promiseResolver(a, b) + expect(result).toBe(expected) +})