mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
Some checks failed
Auto release excalidraw next / Auto-release-excalidraw-next (push) Failing after 2m36s
Build Docker image / build-docker (push) Failing after 6s
Cancel previous runs / cancel (push) Failing after 1s
Publish Docker / publish-docker (push) Failing after 31s
New Sentry production release / sentry (push) Failing after 2m3s
33 lines
878 B
TypeScript
33 lines
878 B
TypeScript
import { diffStringsUnified } from "jest-diff";
|
|
|
|
expect.extend({
|
|
toCloselyEqualPoints(received, expected, precision) {
|
|
if (!Array.isArray(received) || !Array.isArray(expected)) {
|
|
throw new Error("expected and received are not point arrays");
|
|
}
|
|
|
|
const COMPARE = 1 / Math.pow(10, precision || 2);
|
|
const pass = expected.every(
|
|
(point, idx) =>
|
|
Math.abs(received[idx]?.[0] - point[0]) < COMPARE &&
|
|
Math.abs(received[idx]?.[1] - point[1]) < COMPARE,
|
|
);
|
|
|
|
if (!pass) {
|
|
return {
|
|
message: () => ` The provided array of points are not close enough.
|
|
|
|
${diffStringsUnified(
|
|
JSON.stringify(expected, undefined, 2),
|
|
JSON.stringify(received, undefined, 2),
|
|
)}`,
|
|
pass: false,
|
|
};
|
|
}
|
|
|
|
return {
|
|
message: () => `expected ${received} to not be close to ${expected}`,
|
|
pass: true,
|
|
};
|
|
},
|
|
});
|