mirror of
https://github.com/ajnart/homarr.git
synced 2026-02-28 01:10:54 +01:00
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com> Co-authored-by: Andre Silva <asilva01@acuitysso.com> Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
92 lines
3.1 KiB
TypeScript
92 lines
3.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { isDateWithin } from "../date";
|
|
|
|
describe("isDateWithin", () => {
|
|
it("should return true for a date within the specified hours", () => {
|
|
const date = new Date();
|
|
date.setHours(date.getHours() - 20);
|
|
expect(isDateWithin(date, "100h")).toBe(true);
|
|
});
|
|
|
|
it("should return false for a date outside the specified hours", () => {
|
|
const date = new Date();
|
|
date.setHours(date.getHours() - 101);
|
|
expect(isDateWithin(date, "100h")).toBe(false);
|
|
});
|
|
|
|
it("should return true for a date within the specified days", () => {
|
|
const date = new Date();
|
|
date.setDate(date.getDate() - 5);
|
|
expect(isDateWithin(date, "10d")).toBe(true);
|
|
});
|
|
|
|
it("should return false for a date outside the specified days", () => {
|
|
const date = new Date();
|
|
date.setDate(date.getDate() - 11);
|
|
expect(isDateWithin(date, "10d")).toBe(false);
|
|
});
|
|
|
|
it("should return true for a date within the specified weeks", () => {
|
|
const date = new Date();
|
|
date.setDate(date.getDate() - 10);
|
|
expect(isDateWithin(date, "7w")).toBe(true);
|
|
});
|
|
|
|
it("should return false for a date outside the specified weeks", () => {
|
|
const date = new Date();
|
|
date.setDate(date.getDate() - 50);
|
|
expect(isDateWithin(date, "7w")).toBe(false);
|
|
});
|
|
|
|
it("should return true for a date within the specified months", () => {
|
|
const date = new Date();
|
|
date.setMonth(date.getMonth() - 1);
|
|
expect(isDateWithin(date, "2M")).toBe(true);
|
|
});
|
|
|
|
it("should return false for a date outside the specified months", () => {
|
|
const date = new Date();
|
|
date.setMonth(date.getMonth() - 3);
|
|
expect(isDateWithin(date, "2M")).toBe(false);
|
|
});
|
|
|
|
it("should return true for a date within the specified years", () => {
|
|
const date = new Date();
|
|
date.setFullYear(date.getFullYear() - 1);
|
|
expect(isDateWithin(date, "2y")).toBe(true);
|
|
});
|
|
|
|
it("should return false for a date outside the specified years", () => {
|
|
const date = new Date();
|
|
date.setFullYear(date.getFullYear() - 3);
|
|
expect(isDateWithin(date, "2y")).toBe(false);
|
|
});
|
|
|
|
it("should return false for a date after the specified relative time", () => {
|
|
const date = new Date();
|
|
date.setDate(date.getDate() + 2);
|
|
expect(isDateWithin(date, "1d")).toBe(false);
|
|
});
|
|
|
|
it("should throw an error for an invalid unit", () => {
|
|
const date = new Date();
|
|
expect(() => isDateWithin(date, "2x")).toThrow("Invalid relative time unit");
|
|
});
|
|
|
|
it("should throw an error if relativeDate is less than 2 characters long", () => {
|
|
const date = new Date();
|
|
expect(() => isDateWithin(date, "h")).toThrow("Relative date must be at least 2 characters long");
|
|
});
|
|
|
|
it("should throw an error if relativeDate has an invalid number", () => {
|
|
const date = new Date();
|
|
expect(() => isDateWithin(date, "hh")).toThrow("Relative date must be a number greater than 0");
|
|
});
|
|
|
|
it("should throw an error if relativeDate is set to 0", () => {
|
|
const date = new Date();
|
|
expect(() => isDateWithin(date, "0y")).toThrow("Relative date must be a number greater than 0");
|
|
});
|
|
});
|