import test from "ava"; import {Calendar} from "../../src/lib/calendar-v2.js"; test("Calendar: first day of week start as defined", t =>{ let firstDayOfWeek = 1; Calendar.firstDayOfWeek = firstDayOfWeek; let cal = Calendar.buildCalendar(1, 1970); let expectedWeekDays = [1, 2, 3, 4, 5, 6, 0]; t.deepEqual(cal.weekDays, expectedWeekDays); t.is(firstDayOfWeek, Calendar.firstDayOfWeek); }); test("Calendar: first week contains correct number of spaces", t =>{ console.log("Calendar: first week contains correct number of spaces"); let firstDayOfWeek = 1; Calendar.firstDayOfWeek = firstDayOfWeek; let cal = Calendar.buildCalendar(1, 1970); let firstWeek = cal.weeks[0]; let expectedFirstWeek = ['', '', '', 1, 2, 3, 4]; t.deepEqual(firstWeek, expectedFirstWeek); }); test("Calendar: Test Jan. 2021, America Format", t=>{ Calendar.firstDayOfWeek = 0; let cal = Calendar.buildCalendar(1, 2021); let expectedCal = { month: 1, year: 2021, weekDays: [0, 1, 2, 3, 4, 5, 6], weeks: [ ['', '', '', '','', 1, 2], [ 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31] ] }; t.deepEqual(cal, expectedCal); }); test("Calendar: buildCalendar.apply() is a valid call", t=>{ Calendar.firstDayOfWeek = 0; let cal = Calendar.buildCalendar.apply(undefined, [1, 2021]); let expectedCal = { month: 1, year: 2021, weekDays: [0, 1, 2, 3, 4, 5, 6], weeks: [ ['', '', '', '','', 1, 2], [ 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31] ] }; t.deepEqual(cal, expectedCal); }); test("Calendar: buildCalendar.call() is a valid call", t=>{ Calendar.firstDayOfWeek = 0; let cal = Calendar.buildCalendar.call(undefined, 1, 2021); let expectedCal = { month: 1, year: 2021, weekDays: [0, 1, 2, 3, 4, 5, 6], weeks: [ ['', '', '', '','', 1, 2], [ 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31] ] }; t.deepEqual(cal, expectedCal); }); test("Calendar: first day is a Sunday, months start with Monday", t => { Calendar.firstDayOfWeek = 1; let cal = Calendar.buildCalendar(5, 2022); let expectedCal = { month:5, year:2022, weekDays:[1,2,3,4,5,6,0], weeks:[ ["","","","","","", 1], [ 2, 3, 4, 5, 6, 7, 8], [ 9,10,11,12,13,14,15], [16,17,18,19,20,21,22], [23,24,25,26,27,28,29], [30,31] ] }; t.deepEqual(cal, expectedCal); }); test("Calendar: do not append empty week", t=>{ Calendar.firstDayOfWeek = 1; let cal = Calendar.buildCalendar(10, 2021); let expectedCal = { month: 10, year: 2021, weekDays:[1,2,3,4,5,6,0], weeks:[ ["","","","", 1, 2, 3], [ 4, 5, 6, 7, 8, 9,10], [11,12,13,14,15,16,17], [18,19,20,21,22,23,24], [25,26,27,28,29,30,31]/*next week will be empty, so do not append it*/ ] }; t.deepEqual(cal, expectedCal); });