All files / Scripts/jestMatchers datesEqual.ts

66.66% Statements 14/21
33.33% Branches 2/6
50% Functions 1/2
66.66% Lines 14/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x           1x 1x 14x 14x 14x   14x       14x 14x 14x         14x 14x           14x           1x            
import { expect } from "@jest/globals";
import type { MatcherFunction } from "expect";
 
import { DateWithNum } from "../DateWithNum";
import { ReceivedRow } from "../row/ReceivedRow";
 
export const datesEqual: MatcherFunction<[expected: DateWithNum]> =
    function (actualUnknown: unknown, expected: DateWithNum) {
        const actual = actualUnknown as ReceivedRow;
        let passed = true;
        const messages: string[] = [];
 
        Iif (actual.date === undefined) {
            passed = false;
            messages.push("date is undefined");
        } else {
            const date = new Date(actual.date.value ?? "");
            const dateStr = date.toLocaleString("en-US", { timeZone: "America/New_York" });
            Iif (dateStr !== expected.date) {
                passed = false;
                messages.push(`date: ${dateStr} !== ${expected.date}`);
            }
 
            const dateNum = actual.dateNum.toString();
            Iif (dateNum !== expected.dateNum.toString()) {
                passed = false;
                messages.push(`dateNum: ${dateNum} !== ${expected.dateNum}`);
            }
        }
 
        return {
            pass: passed,
            message: () => messages.join("; "),
        };
    };
 
expect.extend({ datesEqual, });
 
declare module "expect" {
    interface Matchers<R> {
        datesEqual(expected: DateWithNum ): R;
    }
}