import { describe, expect, it } from "vitest"; import { assignmentTitleRules, classRules, deadlineRules, descriptionRules, learningPathRules, } from "../../src/utils/assignment-rules"; describe("Validation Rules", () => { describe("assignmentTitleRules", () => { it("should return true for a valid title", () => { const result = assignmentTitleRules[0]("Valid Title"); expect(result).toBe(true); }); it("should return an error message for an empty title", () => { const result = assignmentTitleRules[0](""); expect(result).toBe("Title cannot be empty."); }); }); describe("learningPathRules", () => { it("should return true for a valid learning path", () => { const result = learningPathRules[0]({ hruid: "123", title: "Path Title" }); expect(result).toBe(true); }); it("should return an error message for an invalid learning path", () => { const result = learningPathRules[0]({ hruid: "", title: "" }); expect(result).toBe("You must select a learning path."); }); }); describe("classRules", () => { it("should return true for a valid class", () => { const result = classRules[0]("Class 1"); expect(result).toBe(true); }); it("should return an error message for an empty class", () => { const result = classRules[0](""); expect(result).toBe("You must select at least one class."); }); }); describe("deadlineRules", () => { it("should return true for a valid future deadline", () => { const futureDate = new Date(Date.now() + 1000 * 60 * 60).toISOString(); const result = deadlineRules[0](futureDate); expect(result).toBe(true); }); it("should return an error message for a past deadline", () => { const pastDate = new Date(Date.now() - 1000 * 60 * 60).toISOString(); const result = deadlineRules[0](pastDate); expect(result).toBe("The deadline must be in the future."); }); it("should return an error message for an invalid date", () => { const result = deadlineRules[0]("invalid-date"); expect(result).toBe("Invalid date or time."); }); it("should return an error message for an empty deadline", () => { const result = deadlineRules[0](""); expect(result).toBe("You must set a deadline."); }); }); describe("descriptionRules", () => { it("should return true for a valid description", () => { const result = descriptionRules[0]("This is a valid description."); expect(result).toBe(true); }); it("should return an error message for an empty description", () => { const result = descriptionRules[0](""); expect(result).toBe("Description cannot be empty."); }); }); });