describe('First Day', function() { beforeEach(function() { affix('#cal'); }); describe('when using default settings', function() { beforeEach(function() { $('#cal').fullCalendar(); }); it('should make Sunday the first day of the week', function() { var dayFirst = $('.fc-day-header')[0]; expect(dayFirst).toHaveClass('fc-sun'); }); }); describe('when setting firstDay to 0', function() { beforeEach(function() { var options = { firstDay: 0 }; $('#cal').fullCalendar(options); }); it('should make Sunday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-sun'); expect(daysOfWeek[1]).toHaveClass('fc-mon'); expect(daysOfWeek[2]).toHaveClass('fc-tue'); expect(daysOfWeek[3]).toHaveClass('fc-wed'); expect(daysOfWeek[4]).toHaveClass('fc-thu'); expect(daysOfWeek[5]).toHaveClass('fc-fri'); expect(daysOfWeek[6]).toHaveClass('fc-sat'); }); }); describe('when setting firstDay to 1', function() { beforeEach(function() { var options = { firstDay: 1 }; $('#cal').fullCalendar(options); }); it('should make Monday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-mon'); expect(daysOfWeek[1]).toHaveClass('fc-tue'); expect(daysOfWeek[2]).toHaveClass('fc-wed'); expect(daysOfWeek[3]).toHaveClass('fc-thu'); expect(daysOfWeek[4]).toHaveClass('fc-fri'); expect(daysOfWeek[5]).toHaveClass('fc-sat'); expect(daysOfWeek[6]).toHaveClass('fc-sun'); }); }); describe('when setting firstDay to 2', function() { beforeEach(function() { var options = { firstDay: 2 }; $('#cal').fullCalendar(options); }); it('should make Tuesday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-tue'); expect(daysOfWeek[1]).toHaveClass('fc-wed'); expect(daysOfWeek[2]).toHaveClass('fc-thu'); expect(daysOfWeek[3]).toHaveClass('fc-fri'); expect(daysOfWeek[4]).toHaveClass('fc-sat'); expect(daysOfWeek[5]).toHaveClass('fc-sun'); expect(daysOfWeek[6]).toHaveClass('fc-mon'); }); }); describe('when setting firstDay to 3', function() { beforeEach(function() { var options = { firstDay: 3 }; $('#cal').fullCalendar(options); }); it('should make Wednesday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-wed'); expect(daysOfWeek[1]).toHaveClass('fc-thu'); expect(daysOfWeek[2]).toHaveClass('fc-fri'); expect(daysOfWeek[3]).toHaveClass('fc-sat'); expect(daysOfWeek[4]).toHaveClass('fc-sun'); expect(daysOfWeek[5]).toHaveClass('fc-mon'); expect(daysOfWeek[6]).toHaveClass('fc-tue'); }); }); describe('when setting firstDay to 4', function() { beforeEach(function() { var options = { firstDay: 4 }; $('#cal').fullCalendar(options); }); it('should make Thursday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-thu'); expect(daysOfWeek[1]).toHaveClass('fc-fri'); expect(daysOfWeek[2]).toHaveClass('fc-sat'); expect(daysOfWeek[3]).toHaveClass('fc-sun'); expect(daysOfWeek[4]).toHaveClass('fc-mon'); expect(daysOfWeek[5]).toHaveClass('fc-tue'); expect(daysOfWeek[6]).toHaveClass('fc-wed'); }); }); describe('when setting firstDay to 5', function() { beforeEach(function() { var options = { firstDay: 5 }; $('#cal').fullCalendar(options); }); it('should make Friday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-fri'); expect(daysOfWeek[1]).toHaveClass('fc-sat'); expect(daysOfWeek[2]).toHaveClass('fc-sun'); expect(daysOfWeek[3]).toHaveClass('fc-mon'); expect(daysOfWeek[4]).toHaveClass('fc-tue'); expect(daysOfWeek[5]).toHaveClass('fc-wed'); expect(daysOfWeek[6]).toHaveClass('fc-thu'); }); }); describe('when setting firstDay to 6', function() { beforeEach(function() { var options = { firstDay: 6 }; $('#cal').fullCalendar(options); }); it('should make Saturday the first day of the week', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-sat'); expect(daysOfWeek[1]).toHaveClass('fc-sun'); expect(daysOfWeek[2]).toHaveClass('fc-mon'); expect(daysOfWeek[3]).toHaveClass('fc-tue'); expect(daysOfWeek[4]).toHaveClass('fc-wed'); expect(daysOfWeek[5]).toHaveClass('fc-thu'); expect(daysOfWeek[6]).toHaveClass('fc-fri'); }); }); describe('when new firstDay options are set', function() { it('should change the first day of week to Monday', function() { $('#cal').fullCalendar({ firstDay: 1 }); expect($('.fc-day-header')[0]).toHaveClass('fc-mon'); }); it('shoule change the first day of week to Thursday', function() { $('#cal').fullCalendar({ firstDay: 4 }); expect($('.fc-day-header')[0]).toHaveClass('fc-thu'); }); }); describe('when first day is set to Tuesday and isRTL is true', function() { beforeEach(function() { var options = { firstDay: 2, isRTL: true }; $('#cal').fullCalendar(options); }); it('should put days mon, sun, sat ...', function() { var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-mon'); expect(daysOfWeek[1]).toHaveClass('fc-sun'); expect(daysOfWeek[2]).toHaveClass('fc-sat'); expect(daysOfWeek[3]).toHaveClass('fc-fri'); expect(daysOfWeek[4]).toHaveClass('fc-thu'); expect(daysOfWeek[5]).toHaveClass('fc-wed'); expect(daysOfWeek[6]).toHaveClass('fc-tue'); }); }); it('should have a different default value based on the language', function() { $('#cal').fullCalendar({ lang: 'en-gb' }); // firstDay will be 1 (Monday) in Great Britain var daysOfWeek = $('.fc-day-header'); expect(daysOfWeek[0]).toHaveClass('fc-mon'); expect(daysOfWeek[1]).toHaveClass('fc-tue'); expect(daysOfWeek[2]).toHaveClass('fc-wed'); expect(daysOfWeek[3]).toHaveClass('fc-thu'); expect(daysOfWeek[4]).toHaveClass('fc-fri'); expect(daysOfWeek[5]).toHaveClass('fc-sat'); expect(daysOfWeek[6]).toHaveClass('fc-sun'); }); });