Skip to content

Commit 2f2a02c

Browse files
committed
Use built-in equality tester for Temporal objects in Vitest
cf. vitest-dev/vitest#8007
1 parent cc12f05 commit 2f2a02c

File tree

1 file changed

+0
-43
lines changed

1 file changed

+0
-43
lines changed

vitest.setup.ts

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
/// <reference types="vite/client" />
22
import "temporal-spec/global";
33

4-
import { expect } from "vitest";
5-
6-
import { isEqual } from "./src/datetime/_equals.js";
7-
import { isEqual as isEqualDuration } from "./src/duration/isEqual.js";
8-
import { isDuration } from "./src/type-utils.js";
9-
import type { TemporalType } from "./src/types.js";
10-
114
// TODO: remove this after playwright starts using Firefox 141 or later
125
// @ts-expect-error patching polyfill
136
Symbol.dispose ??= Symbol.for("Symbol.dispose");
@@ -31,39 +24,3 @@ async function loadPolyfill(packageName: unknown) {
3124
}
3225

3326
await loadPolyfill(import.meta.env["POLYFILL"]);
34-
35-
function isTemporal(a: unknown): a is TemporalType {
36-
return [
37-
Temporal.Instant,
38-
Temporal.ZonedDateTime,
39-
Temporal.PlainDate,
40-
Temporal.PlainTime,
41-
Temporal.PlainDateTime,
42-
Temporal.PlainYearMonth,
43-
Temporal.PlainMonthDay,
44-
Temporal.Duration,
45-
].some((C) => a instanceof C);
46-
}
47-
48-
function areTemporalsEqual(a: unknown, b: unknown) {
49-
const isATemporal = isTemporal(a);
50-
const isBTemporal = isTemporal(b);
51-
if (isATemporal && isBTemporal) {
52-
if (a.constructor.name !== b.constructor.name) {
53-
return false;
54-
}
55-
if (isDuration(a) && isDuration(b)) {
56-
return isEqualDuration(a, b);
57-
}
58-
if (isDuration(a) || isDuration(b)) {
59-
return false;
60-
}
61-
return isEqual(a, b);
62-
} else if (!isATemporal && !isBTemporal) {
63-
return undefined;
64-
} else {
65-
return false;
66-
}
67-
}
68-
69-
expect.addEqualityTesters([areTemporalsEqual]);

0 commit comments

Comments
 (0)