21 lines
665 B
TypeScript
21 lines
665 B
TypeScript
|
/**
|
||
|
* Matches the expected date within an optional ms precision
|
||
|
* @param received The received date
|
||
|
* @param expected The expected date
|
||
|
* @param msPrecision The optional precision in milliseconds
|
||
|
*/
|
||
|
export const toAlmostEqual: jest.CustomMatcher = function (
|
||
|
received: Date,
|
||
|
expected: Date,
|
||
|
msPrecision: number = 10,
|
||
|
) {
|
||
|
const receivedTime = received.getTime();
|
||
|
const expectedTime = expected.getTime();
|
||
|
const difference = Math.abs(receivedTime - expectedTime);
|
||
|
return {
|
||
|
pass: difference <= msPrecision,
|
||
|
message: () =>
|
||
|
`expected ${received} to be within ${msPrecision}ms of ${expected} (actual difference: ${difference}ms)`,
|
||
|
};
|
||
|
};
|