From 757199a661aef26642c0ee4dbfb09b409fd7dbfc Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Wed, 5 Oct 2022 14:25:40 +0200 Subject: [PATCH] fix: check for asymmetricMatch before accessing --- packages/vitest/src/integrations/chai/jest-expect.ts | 2 +- packages/vitest/src/integrations/chai/jest-utils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/integrations/chai/jest-expect.ts b/packages/vitest/src/integrations/chai/jest-expect.ts index 2498bcde1435..260c4928a69f 100644 --- a/packages/vitest/src/integrations/chai/jest-expect.ts +++ b/packages/vitest/src/integrations/chai/jest-expect.ts @@ -548,7 +548,7 @@ export const JestChaiExpect: ChaiPlugin = (chai, utils) => { ) } - if (typeof (expected as any).asymmetricMatch === 'function') { + if ('asymmetricMatch' in expected && typeof (expected as any).asymmetricMatch === 'function') { const matcher = expected as any as AsymmetricMatcher return this.assert( thrown && matcher.asymmetricMatch(thrown), diff --git a/packages/vitest/src/integrations/chai/jest-utils.ts b/packages/vitest/src/integrations/chai/jest-utils.ts index 24a7a09c263b..66d75641d76c 100644 --- a/packages/vitest/src/integrations/chai/jest-utils.ts +++ b/packages/vitest/src/integrations/chai/jest-utils.ts @@ -38,7 +38,7 @@ export function equals( const functionToString = Function.prototype.toString export function isAsymmetric(obj: any) { - return !!obj && isA('Function', obj.asymmetricMatch) + return !!obj && 'asymmetricMatch' in obj && isA('Function', obj.asymmetricMatch) } export function hasAsymmetric(obj: any, seen = new Set()): boolean {