You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
48 lines
1.6 KiB
import { describe, expect, it } from "vitest";
|
|
import {
|
|
defaultFlockPickupDateIso,
|
|
flockPickupDateValidationMessageFromDisplay,
|
|
flockPickupDateValidationMessageFromIso,
|
|
isFlockPickupDateOnOrAfterToday,
|
|
minFlockPickupDateIso,
|
|
} from "@/lib/flock/pickup-date";
|
|
|
|
describe("flock pickup date", () => {
|
|
it("今天及以后合法", () => {
|
|
const today = minFlockPickupDateIso();
|
|
expect(isFlockPickupDateOnOrAfterToday(today)).toBe(true);
|
|
expect(flockPickupDateValidationMessageFromIso(today)).toBeNull();
|
|
expect(
|
|
flockPickupDateValidationMessageFromIso(defaultFlockPickupDateIso()),
|
|
).toBeNull();
|
|
});
|
|
|
|
it("早于今天拒绝", () => {
|
|
const d = new Date();
|
|
d.setDate(d.getDate() - 1);
|
|
const yyyy = d.getFullYear();
|
|
const mm = String(d.getMonth() + 1).padStart(2, "0");
|
|
const dd = String(d.getDate()).padStart(2, "0");
|
|
const iso = `${yyyy}-${mm}-${dd}`;
|
|
expect(isFlockPickupDateOnOrAfterToday(iso)).toBe(false);
|
|
expect(flockPickupDateValidationMessageFromIso(iso)).toMatch(/不能早于今天/);
|
|
expect(
|
|
flockPickupDateValidationMessageFromDisplay(`${mm}/${dd}/${yyyy}`),
|
|
).toMatch(/不能早于今天/);
|
|
});
|
|
|
|
it("周六周日拒绝", () => {
|
|
expect(flockPickupDateValidationMessageFromIso("2026-07-18")).toMatch(
|
|
/周六或周日/,
|
|
);
|
|
expect(flockPickupDateValidationMessageFromDisplay("07/19/2026")).toMatch(
|
|
/周六或周日/,
|
|
);
|
|
expect(flockPickupDateValidationMessageFromIso("2026-07-20")).toBeNull();
|
|
});
|
|
|
|
it("默认值为工作日", () => {
|
|
expect(flockPickupDateValidationMessageFromIso(defaultFlockPickupDateIso())).toBeNull();
|
|
});
|
|
});
|