mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-07-05 17:30:12 +08:00
291 lines
8.9 KiB
JavaScript
291 lines
8.9 KiB
JavaScript
describe('current date', function() {
|
|
|
|
var TITLE_FORMAT = 'MMMM D YYYY';
|
|
var options;
|
|
|
|
beforeEach(function() {
|
|
affix('#cal');
|
|
options = {
|
|
titleFormat: TITLE_FORMAT,
|
|
defaultDate: '2014-06-01'
|
|
};
|
|
});
|
|
|
|
describe('defaultDate & getDate', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should initialize at the date', function() {
|
|
options.defaultDate = '2011-03-10';
|
|
$('#cal').fullCalendar(options);
|
|
expectViewDates('2011-02-27', '2011-04-10', '2011-03-01');
|
|
var currentDate = $('#cal').fullCalendar('getDate');
|
|
expect(moment.isMoment(currentDate)).toEqual(true); // test the type, but only here
|
|
expect(currentDate).toEqualMoment('2011-03-10');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should initialize at the date, given a date string', function() {
|
|
options.defaultDate = '2011-03-10';
|
|
$('#cal').fullCalendar(options);
|
|
expectViewDates('2011-03-06', '2011-03-13');
|
|
expect($('#cal').fullCalendar('getDate')).toEqualMoment('2011-03-10');
|
|
});
|
|
it('should initialize at the date, given a Moment object', function() {
|
|
options.defaultDate = $.fullCalendar.moment('2011-03-10');
|
|
$('#cal').fullCalendar(options);
|
|
expectViewDates('2011-03-06', '2011-03-13');
|
|
expect($('#cal').fullCalendar('getDate')).toEqualMoment('2011-03-10');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should initialize at the date', function() {
|
|
options.defaultDate = '2011-03-10';
|
|
$('#cal').fullCalendar(options);
|
|
expectViewDates('2011-03-10');
|
|
expect($('#cal').fullCalendar('getDate')).toEqualMoment('2011-03-10');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('gotoDate', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should go to a date when given a date string', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('gotoDate', '2015-04-01');
|
|
expectViewDates('2015-03-29', '2015-05-10', '2015-04-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should go to a date when given a date string', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('gotoDate', '2015-04-01');
|
|
expectViewDates('2015-03-29', '2015-04-05');
|
|
});
|
|
it('should go to a date when given a date string with a time', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('gotoDate', '2015-04-01T12:00:00');
|
|
expectViewDates('2015-03-29', '2015-04-05');
|
|
});
|
|
it('should go to a date when given a moment object', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('gotoDate', $.fullCalendar.moment('2015-04-01'));
|
|
expectViewDates('2015-03-29', '2015-04-05');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should go to a date when given a date string', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('gotoDate', '2015-04-01');
|
|
expectViewDates('2015-04-01');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('incrementDate', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should increment the date when given a Duration object', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('incrementDate', { months: -1 });
|
|
expectViewDates('2014-04-27', '2014-06-08', '2014-05-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should increment the date when given a Duration object', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('incrementDate', { weeks: -2 });
|
|
expectViewDates('2014-05-18', '2014-05-25');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should increment the date when given a Duration object', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('incrementDate', { days: 2 });
|
|
expectViewDates('2014-06-03');
|
|
});
|
|
it('should increment the date when given a Duration string', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('incrementDate', '2.00:00:00');
|
|
expectViewDates('2014-06-03');
|
|
});
|
|
it('should increment the date when given a Duration string with a time', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('incrementDate', '2.05:30:00');
|
|
expectViewDates('2014-06-03');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('prev', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should move the calendar back a month', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prev');
|
|
expectViewDates('2014-04-27', '2014-06-08', '2014-05-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should move the calendar back a week', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prev');
|
|
expectViewDates('2014-05-25', '2014-06-01');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should move the calendar back a week', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prev');
|
|
expectViewDates('2014-05-31');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('next', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should move the calendar forward a month', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('next');
|
|
expectViewDates('2014-06-29', '2014-08-10', '2014-07-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should move the calendar forward a week', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('next');
|
|
expectViewDates('2014-06-08', '2014-06-15');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should move the calendar forward a week', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('next');
|
|
expectViewDates('2014-06-02');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('prevYear', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should move the calendar back a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prevYear');
|
|
expectViewDates('2013-05-26', '2013-07-07', '2013-06-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should move the calendar back a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prevYear');
|
|
expectViewDates('2013-05-26', '2013-06-02');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should move the calendar back a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('prevYear');
|
|
expectViewDates('2013-06-01');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('nextYear', function() {
|
|
describeWhenInMonth(function() {
|
|
it('should move the calendar forward a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('nextYear');
|
|
expectViewDates('2015-05-31', '2015-07-12', '2015-06-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should move the calendar forward a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('nextYear');
|
|
expectViewDates('2015-05-31', '2015-06-07');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should move the calendar forward a year', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('nextYear');
|
|
expectViewDates('2015-06-01');
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('today', function() {
|
|
beforeEach(function() {
|
|
options.now = '2016-03-15'; // the "today" date
|
|
});
|
|
describeWhenInMonth(function() {
|
|
it('should move the calendar to now', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('today');
|
|
expectViewDates('2016-02-28', '2016-04-10', '2016-03-01');
|
|
});
|
|
});
|
|
describeWhenInWeek(function() {
|
|
it('should move the calendar to now', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('today');
|
|
expectViewDates('2016-03-13', '2016-03-20');
|
|
});
|
|
});
|
|
describeWhenInDay(function() {
|
|
it('should move the calendar to now', function() {
|
|
$('#cal').fullCalendar(options);
|
|
$('#cal').fullCalendar('today');
|
|
expectViewDates('2016-03-15');
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// UTILS
|
|
// -----
|
|
|
|
function describeWhenInMonth(func) {
|
|
describeWhenIn('month', func);
|
|
}
|
|
|
|
function describeWhenInWeek(func) {
|
|
describeWhenIn('basicWeek', func);
|
|
describeWhenIn('agendaWeek', func);
|
|
}
|
|
|
|
function describeWhenInDay(func) {
|
|
describeWhenIn('basicDay', func);
|
|
describeWhenIn('agendaDay', func);
|
|
}
|
|
|
|
function describeWhenIn(viewName, func) {
|
|
describe('when in ' + viewName, function() {
|
|
beforeEach(function() {
|
|
options.defaultView = viewName;
|
|
});
|
|
func();
|
|
});
|
|
}
|
|
|
|
function expectViewDates(start, end, titleDate) {
|
|
var view = $('#cal').fullCalendar('getView');
|
|
var calculatedEnd;
|
|
var title;
|
|
|
|
start = $.fullCalendar.moment(start);
|
|
calculatedEnd = end ? $.fullCalendar.moment(end) : start.clone().add('days', 1);
|
|
expect(start).toEqualMoment(view.start);
|
|
expect(calculatedEnd).toEqualMoment(view.end);
|
|
|
|
if (titleDate || !end) {
|
|
title = $.fullCalendar.moment(titleDate || start).format(TITLE_FORMAT);
|
|
}
|
|
else {
|
|
title = $.fullCalendar.formatRange(
|
|
start,
|
|
calculatedEnd.clone().add('ms', -1),
|
|
TITLE_FORMAT
|
|
);
|
|
}
|
|
expect($('.fc-header-title h2')).toContainText(title);
|
|
}
|
|
|
|
});
|