simple-date-utilities
Version:
A simple date utility
82 lines (70 loc) • 2.6 kB
text/typescript
import {
addDays,
calculateDateDifference,
cloneDate,
convertToDateObj,
differenceInMonths,
formatDate,
isDate,
isPastDate, setTime } from "./index";
describe("Date Utility Functions", () => {
// Test for formatDate
it("Should correctly format date", () => {
const date = new Date(2023, 5, 23);
const formattedDate = formatDate(date, "DD_MM_YYYY");
expect(formattedDate).toEqual("23-06-2023");
});
// Test for isDate
it("Should correctly identify date objects", () => {
expect(isDate(new Date())).toBe(true);
expect(isDate("not a date")).toBe(false);
});
// Test for convertToDateObj
it("Should correctly convert string to date object", () => {
const dateStr = "23-06-2023";
const dateObj = convertToDateObj(dateStr, "DD_MM_YYYY");
expect(dateObj?.getDate()).toEqual(23);
expect(dateObj?.getMonth()).toEqual(5);
expect(dateObj?.getFullYear()).toEqual(2023);
});
// Test for calculateDateDifference
it("Should correctly calculate date difference", () => {
const date1 = new Date(2023, 5, 23);
const date2 = new Date(2023, 5, 26);
const diff = calculateDateDifference(date1, date2);
expect(diff.days).toEqual(-3);
});
// Test for differenceInMonths
it("Should correctly calculate difference in months", () => {
const date1 = new Date(2023, 0, 1);
const date2 = new Date(2023, 11, 31);
const diffMonths = differenceInMonths(date1, date2);
expect(diffMonths).toEqual(11);
});
// Test for cloneDate
it("Should correctly clone date", () => {
const date = new Date(2023, 5, 23);
const clonedDate = cloneDate(date);
expect(clonedDate.getTime()).toEqual(date.getTime());
});
// Test for addDays
it("Should correctly add days to date", () => {
const date = new Date(2023, 5, 23);
const newDate = addDays(date, 5);
expect(newDate.getDate()).toEqual(28);
});
// Test for setTime
it("Should correctly set time for date", () => {
const date = new Date(2023, 5, 23);
const newDate = setTime(date, "12:30");
expect(newDate?.getHours()).toEqual(12);
expect(newDate?.getMinutes()).toEqual(30);
});
// Test for isPastDate
it("Should correctly determine if date is in the past", () => {
const pastDate = new Date(2020, 5, 23);
expect(isPastDate(pastDate)).toBe(true);
const futureDate = new Date(2025, 5, 23);
expect(isPastDate(futureDate)).toBe(false);
});
});