|
@@ -0,0 +1,77 @@
|
|
|
|
|
+/* @vitest-environment node */
|
|
|
|
|
+
|
|
|
|
|
+import { describe, it, expect } from "vitest";
|
|
|
|
|
+import {
|
|
|
|
|
+ isValidBranchParam,
|
|
|
|
|
+ isValidYearParam,
|
|
|
|
|
+ isValidMonthParam,
|
|
|
|
|
+ isValidDayParam,
|
|
|
|
|
+} from "./params.js";
|
|
|
|
|
+
|
|
|
|
|
+describe("lib/frontend/params", () => {
|
|
|
|
|
+ describe("isValidBranchParam", () => {
|
|
|
|
|
+ it("accepts strict NLxx codes", () => {
|
|
|
|
|
+ expect(isValidBranchParam("NL01")).toBe(true);
|
|
|
|
|
+ expect(isValidBranchParam("NL99")).toBe(true);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it("rejects invalid branch values", () => {
|
|
|
|
|
+ expect(isValidBranchParam("FOO")).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam("nl01")).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam("NL1")).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam("NL001")).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam("")).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam(null)).toBe(false);
|
|
|
|
|
+ expect(isValidBranchParam(undefined)).toBe(false);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe("isValidYearParam", () => {
|
|
|
|
|
+ it("accepts 4-digit years", () => {
|
|
|
|
|
+ expect(isValidYearParam("2024")).toBe(true);
|
|
|
|
|
+ expect(isValidYearParam("1999")).toBe(true);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it("rejects invalid years", () => {
|
|
|
|
|
+ expect(isValidYearParam("24")).toBe(false);
|
|
|
|
|
+ expect(isValidYearParam("abcd")).toBe(false);
|
|
|
|
|
+ expect(isValidYearParam("20245")).toBe(false);
|
|
|
|
|
+ expect(isValidYearParam("")).toBe(false);
|
|
|
|
|
+ expect(isValidYearParam(null)).toBe(false);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe("isValidMonthParam", () => {
|
|
|
|
|
+ it("accepts MM 01-12", () => {
|
|
|
|
|
+ expect(isValidMonthParam("01")).toBe(true);
|
|
|
|
|
+ expect(isValidMonthParam("12")).toBe(true);
|
|
|
|
|
+ expect(isValidMonthParam("10")).toBe(true);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it("rejects invalid months", () => {
|
|
|
|
|
+ expect(isValidMonthParam("00")).toBe(false);
|
|
|
|
|
+ expect(isValidMonthParam("13")).toBe(false);
|
|
|
|
|
+ expect(isValidMonthParam("1")).toBe(false);
|
|
|
|
|
+ expect(isValidMonthParam("99")).toBe(false);
|
|
|
|
|
+ expect(isValidMonthParam("ab")).toBe(false);
|
|
|
|
|
+ expect(isValidMonthParam(null)).toBe(false);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe("isValidDayParam", () => {
|
|
|
|
|
+ it("accepts DD 01-31", () => {
|
|
|
|
|
+ expect(isValidDayParam("01")).toBe(true);
|
|
|
|
|
+ expect(isValidDayParam("31")).toBe(true);
|
|
|
|
|
+ expect(isValidDayParam("09")).toBe(true);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it("rejects invalid days", () => {
|
|
|
|
|
+ expect(isValidDayParam("00")).toBe(false);
|
|
|
|
|
+ expect(isValidDayParam("32")).toBe(false);
|
|
|
|
|
+ expect(isValidDayParam("1")).toBe(false);
|
|
|
|
|
+ expect(isValidDayParam("99")).toBe(false);
|
|
|
|
|
+ expect(isValidDayParam("ab")).toBe(false);
|
|
|
|
|
+ expect(isValidDayParam(undefined)).toBe(false);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+});
|