From 905ec05abfae5a2beea481ba107c27e3c4ac5ad6 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Tue, 11 Apr 2023 09:23:39 +0200 Subject: [PATCH] fix: allow augmenting jest namespace for custom assertions (#3169) --- packages/vitest/src/types/global.ts | 3 ++- test/core/test/jest-expect.test.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/types/global.ts b/packages/vitest/src/types/global.ts index 7caa840b565d..224984c54490 100644 --- a/packages/vitest/src/types/global.ts +++ b/packages/vitest/src/types/global.ts @@ -44,7 +44,8 @@ declare global { // support augmenting jest.Matchers by other libraries namespace jest { - interface Matchers<_R, _T = {}> {} + // eslint-disable-next-line unused-imports/no-unused-vars + interface Matchers {} } namespace Vi { diff --git a/test/core/test/jest-expect.test.ts b/test/core/test/jest-expect.test.ts index 5a40747b5b7b..75356b3798a2 100644 --- a/test/core/test/jest-expect.test.ts +++ b/test/core/test/jest-expect.test.ts @@ -12,7 +12,14 @@ interface CustomMatchers { toBeTestedSync(): R toBeTestedPromise(): R } + declare global { + namespace jest { + interface Matchers { + toBeJestCompatible(): R + } + } + namespace Vi { interface JestAssertion extends CustomMatchers {} interface AsymmetricMatchersContaining extends CustomMatchers {} @@ -182,6 +189,12 @@ describe('jest-expect', () => { message: () => 'toBeTestedPromise', }) }, + toBeJestCompatible() { + return { + pass: true, + message: () => '', + } + }, }) expect(5).toBeDividedBy(5) @@ -195,6 +208,8 @@ describe('jest-expect', () => { expect(() => expect(null).toBeTestedSync()).toThrowError('toBeTestedSync') await expect(async () => await expect(null).toBeTestedAsync()).rejects.toThrowError('toBeTestedAsync') await expect(async () => await expect(null).toBeTestedPromise()).rejects.toThrowError('toBeTestedPromise') + + expect(expect).toBeJestCompatible() }) it('object', () => {