UNPKG

swedish-holidays-ts

Version:

Typescript library for calculating the date of all swedish holidays for any given year.

195 lines (194 loc) 5.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const holidays_1 = require("../holidays"); const expectations = [ { name: "Nyårsdagen", day: 1, month: 1, year: 2020, isPublicHoliday: true, }, { name: "Trettondagsafton", day: 5, month: 1, year: 2020, isPublicHoliday: false, }, { name: "Trettondedag jul", day: 6, month: 1, year: 2020, isPublicHoliday: true, }, { name: "Skärtorsdagen", day: 9, month: 4, year: 2020, isPublicHoliday: false, }, { name: "Långfredagen", day: 10, month: 4, year: 2020, isPublicHoliday: true, }, { name: "Påskafton", day: 11, month: 4, year: 2020, isPublicHoliday: false, }, { name: "Påskdagen", day: 12, month: 4, year: 2020, isPublicHoliday: true, }, { name: "Annandag påsk", day: 13, month: 4, year: 2020, isPublicHoliday: true, }, { name: "Valborgsmässoafton", day: 30, month: 4, year: 2020, isPublicHoliday: false, }, { name: "Första maj", day: 1, month: 5, year: 2020, isPublicHoliday: true, }, { name: "Kristi himmelsfärdsdag", day: 21, month: 5, year: 2020, isPublicHoliday: true, }, { name: "Pingstafton", day: 30, month: 5, year: 2020, isPublicHoliday: false, }, { name: "Pingstdagen", day: 31, month: 5, year: 2020, isPublicHoliday: true, }, { name: "Sveriges nationaldag", day: 6, month: 6, year: 2020, isPublicHoliday: true, }, { name: "Midsommarafton", day: 19, month: 6, year: 2020, isPublicHoliday: false, }, { name: "Midsommardagen", day: 20, month: 6, year: 2020, isPublicHoliday: true, }, { name: "Allhelgonaafton", day: 30, month: 10, year: 2020, isPublicHoliday: false, }, { name: "Alla helgons dag", day: 31, month: 10, year: 2020, isPublicHoliday: true, }, { name: "Julafton", day: 24, month: 12, year: 2020, isPublicHoliday: false, }, { name: "Juldagen", day: 25, month: 12, year: 2020, isPublicHoliday: true, }, { name: "Annandag jul", day: 26, month: 12, year: 2020, isPublicHoliday: true, }, { name: "Nyårsafton", day: 31, month: 12, year: 2020, isPublicHoliday: false, }, ]; (0, vitest_1.test)("Return a nice list with all holidays for 2020", () => { const holidays = (0, holidays_1.getHolidays)(2020); (0, vitest_1.expect)(holidays).toBeDefined(); (0, vitest_1.expect)(holidays.length).toEqual(expectations.length); for (let i = 0; i < holidays.length; i++) { (0, vitest_1.expect)(expectations[i].day).toEqual(holidays[i].day); (0, vitest_1.expect)(expectations[i].month).toEqual(holidays[i].month); (0, vitest_1.expect)(expectations[i].year).toEqual(holidays[i].year); (0, vitest_1.expect)(expectations[i].name).toEqual(holidays[i].name); (0, vitest_1.expect)(expectations[i].isPublicHoliday).toEqual(holidays[i].isPublicHoliday); } (0, vitest_1.expect)(holidays).toMatchSnapshot(); }); (0, vitest_1.test)("Identify Sunday as a public holiday", () => { const saturdayIsNotPublicHoliday = (0, holidays_1.isPublicHoliday)(new Date("2021-11-13")); const sundayIsPublicHoliday = (0, holidays_1.isPublicHoliday)(new Date("2021-11-14")); const mondayIsNotPublicHoliday = (0, holidays_1.isPublicHoliday)(new Date("2021-11-15")); (0, vitest_1.expect)(saturdayIsNotPublicHoliday).toBeFalsy(); (0, vitest_1.expect)(sundayIsPublicHoliday).toBeTruthy(); (0, vitest_1.expect)(mondayIsNotPublicHoliday).toBeFalsy(); }); (0, vitest_1.test)("Identify a public holiday as a public holiday", () => { const christmasEve = (0, holidays_1.isPublicHoliday)(new Date("2021-12-24")); const christmasDay = (0, holidays_1.isPublicHoliday)(new Date("2021-12-25")); (0, vitest_1.expect)(christmasEve).toBeFalsy(); (0, vitest_1.expect)(christmasDay).toBeTruthy(); }); (0, vitest_1.test)("Handle translations", () => { const translation = Object.assign({}, holidays_1.language); translation.christmasEve = "Christmas Eve"; const [christmas] = (0, holidays_1.getHolidays)(2020, translation).filter((holiday) => holiday.day === 24 && holiday.month === 12); (0, vitest_1.expect)(christmas).toBeDefined(); (0, vitest_1.expect)(christmas.name).toEqual("Christmas Eve"); });