From 30c59f50c0c37772a9a7ba6e010ff0d6f47ae81f Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 14 Nov 2022 13:59:03 +0100 Subject: [PATCH] fix: dates are equal, if both are invalid (#2326) --- packages/vitest/src/integrations/chai/jest-utils.ts | 4 ++-- test/core/test/jest-expect.test.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/integrations/chai/jest-utils.ts b/packages/vitest/src/integrations/chai/jest-utils.ts index ffc75a7c2635..23f0046278c9 100644 --- a/packages/vitest/src/integrations/chai/jest-utils.ts +++ b/packages/vitest/src/integrations/chai/jest-utils.ts @@ -125,8 +125,8 @@ function eq( case '[object Date]': // Coerce dates to numeric primitive values. Dates are compared by their // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a === +b + // of `NaN` are equivalent. + return (isNaN(a) && isNaN(b)) || (+a === +b) // RegExps are compared by their source patterns and flags. case '[object RegExp]': return a.source === b.source && a.flags === b.flags diff --git a/test/core/test/jest-expect.test.ts b/test/core/test/jest-expect.test.ts index 30dbdc31ada6..442aebf944dd 100644 --- a/test/core/test/jest-expect.test.ts +++ b/test/core/test/jest-expect.test.ts @@ -35,6 +35,9 @@ describe('jest-expect', () => { expect([{ text: 'Bye' }]).not.toContainEqual({ text: 'Hello' }) expect(1).toBeGreaterThan(0) + expect(new Date(0)).toEqual(new Date(0)) + expect(new Date('inValId')).toEqual(new Date('inValId')) + expect(BigInt(1)).toBeGreaterThan(BigInt(0)) expect(1).toBeGreaterThan(BigInt(0)) expect(BigInt(1)).toBeGreaterThan(0)