bangla-date-utils
Version:
A utility package for converting and formatting dates in the Bangla calendar system with support for Bangla numerals.
83 lines (70 loc) • 3.42 kB
text/typescript
import {
formatGregorianToBangla,
convertToBanglaDate,
getBanglaDateDetails,
BANGLA_MONTHS,
BANGLA_SEASONS,
BANGLA_WEEKDAYS,
} from "./banglaDate"
describe("Bangla Date Utils", () => {
it("should format Gregorian date in Bangla language", () => {
const dateString = "2025-05-12T10:30:00Z" // May 12, 2025
const result = formatGregorianToBangla(dateString, "medium")
expect(result).toBe("১২ মে, ২০২৫")
})
it("should format Gregorian date in Bangla language with full format", () => {
const dateString = "2025-05-12T10:30:00Z" // May 12, 2025 (Monday)
const result = formatGregorianToBangla(dateString, "full")
expect(result).toContain("১২ মে, ২০২৫")
// Note: The weekday test would depend on the actual day of the week for this date
})
it("should format Gregorian date in Bangla language with short format", () => {
const dateString = "2025-05-12T10:30:00Z" // May 12, 2025
const result = formatGregorianToBangla(dateString, "short")
expect(result).toBe("১২/৫/২০২৫")
})
it("should convert date string to Bangla calendar date", () => {
const dateString = "2025-05-12T10:30:00Z" // May 12, 2025
expect(convertToBanglaDate(dateString, "medium")).toContain("বৈশাখ")
})
it("should convert date string to Bangla calendar date with full format", () => {
const dateString = "2025-04-14" // April 14, 2025 (Bangla New Year)
const result = convertToBanglaDate(dateString, "full")
expect(result).toContain("বৈশাখ")
expect(result).toContain("গ্রীষ্ম") // Should include season
})
it("should convert date string to Bangla calendar date with short format", () => {
const dateString = "2025-04-14" // April 14, 2025 (Bangla New Year)
const result = convertToBanglaDate(dateString, "short")
expect(result).toMatch(/\d+\/\d+\/\d+/) // Should be in format like "১/১/১৪৩২"
})
it("should get detailed Bangla calendar date information", () => {
const dateString = "2025-04-14" // April 14, 2025 (Bangla New Year)
const result = getBanglaDateDetails(dateString)
expect(result.details.date).toBe(1)
expect(result.details.month).toBe(1)
expect(result.details.monthName).toBe("বৈশাখ")
expect(result.details.season).toBe("গ্রীষ্ম")
expect(result.formatted).toBe("১ বৈশাখ ১৪৩২")
})
it("should throw error for invalid date string", () => {
const invalidDateString = "not-a-date"
expect(() => formatGregorianToBangla(invalidDateString)).toThrow()
expect(() => convertToBanglaDate(invalidDateString)).toThrow()
})
it("should have all Bangla months defined", () => {
expect(BANGLA_MONTHS.length).toBe(12)
expect(BANGLA_MONTHS[0]).toBe("বৈশাখ")
expect(BANGLA_MONTHS[11]).toBe("চৈত্র")
})
it("should have all Bangla seasons defined", () => {
expect(BANGLA_SEASONS.length).toBe(6)
expect(BANGLA_SEASONS[0]).toBe("গ্রীষ্ম")
expect(BANGLA_SEASONS[5]).toBe("বসন্ত")
})
it("should have all Bangla weekdays defined", () => {
expect(BANGLA_WEEKDAYS.length).toBe(7)
expect(BANGLA_WEEKDAYS[0]).toBe("রবিবার")
expect(BANGLA_WEEKDAYS[6]).toBe("শনিবার")
})
})