Просмотр исходного кода

tests for minDate/maxDate/disableNonCurrentDates rendering

Adam Shaw 9 лет назад
Родитель
Сommit
7bea041a05

+ 40 - 0
tests/automated-better/view-rendering/ViewRenderUtils.js

@@ -0,0 +1,40 @@
+
+var ViewRenderUtils = {
+
+	expectDayRange: function(start, end) {
+		start = this.processWholeDay(start);
+		end = this.processWholeDay(end);
+
+		var dayBefore = start.clone().subtract(1, 'day');
+		this.expectDay(dayBefore, false);
+
+		var date = start.clone();
+		while (date < end) {
+			this.expectDay(date, true);
+			date.add(1, 'day');
+		}
+
+		// `date` is now the first day after the range
+		this.expectDay(date, false);
+	},
+
+	expectDay: function(date, bool) {
+		date = this.processWholeDay(date);
+		var els = $('td.fc-day[data-date="' + date.format() + '"]');
+
+		if (bool) {
+			expect(els).toBeInDOM();
+		}
+		else {
+			expect(els).not.toBeInDOM();
+		}
+	},
+
+	processWholeDay: function(date) {
+		date = $.fullCalendar.moment.parseZone(date);
+		expect(date.hasTime()).toBe(false);
+		expect(date.hasZone()).toBe(false);
+		return date;
+	}
+
+};

+ 30 - 0
tests/automated-better/view-rendering/disableNonCurrentDates.js

@@ -0,0 +1,30 @@
+
+describe('disableNonCurrentDates', function() {
+	pushOptions({
+		disableNonCurrentDates: true
+	});
+
+	describe('when in month view', function() {
+		pushOptions({
+			defaultView: 'month',
+			defaultDate: '2017-06-01'
+		});
+
+		it('does not render other months\' dates', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-06-01', '2017-07-01');
+		});
+	});
+
+	describe('when in week view', function() {
+		pushOptions({
+			defaultView: 'agendaWeek',
+			defaultDate: '2017-06-01'
+		});
+
+		it('has no effect', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-05-28', '2017-06-04');
+		});
+	});
+});

+ 30 - 0
tests/automated-better/view-rendering/maxDate-rendering.js

@@ -0,0 +1,30 @@
+
+describe('maxDate rendering', function() {
+
+	describe('when month view', function() {
+		pushOptions({
+			defaultView: 'month',
+			defaultDate: '2017-06-01',
+			maxDate: '2017-06-07'
+		});
+
+		it('does not render days on or after', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-05-28', '2017-06-07');
+		});
+	});
+
+	describe('when in week view', function() {
+		pushOptions({
+			defaultView: 'agendaWeek',
+			defaultDate: '2017-06-08',
+			maxDate: '2017-06-06'
+		});
+
+		it('does not render days on or after', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-06-04', '2017-06-06');
+		});
+	});
+
+});

+ 30 - 0
tests/automated-better/view-rendering/minDate-rendering.js

@@ -0,0 +1,30 @@
+
+describe('minDate rendering', function() {
+
+	describe('when month view', function() {
+		pushOptions({
+			defaultView: 'month',
+			defaultDate: '2017-06-01',
+			minDate: '2017-06-07'
+		});
+
+		it('does not render days before', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-06-07', '2017-07-09');
+		});
+	});
+
+	describe('when in week view', function() {
+		pushOptions({
+			defaultView: 'agendaWeek',
+			defaultDate: '2017-06-08',
+			minDate: '2017-06-06'
+		});
+
+		it('does not render days before', function() {
+			initCalendar();
+			ViewRenderUtils.expectDayRange('2017-06-06', '2017-06-11');
+		});
+	});
+
+});