82 lines
3 KiB
TypeScript
82 lines
3 KiB
TypeScript
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.");
|
|
});
|
|
});
|
|
});
|