Explorar o código

tests for lazyFetching

Adam Shaw %!s(int64=8) %!d(string=hai) anos
pai
achega
5f0c01b283
Modificáronse 1 ficheiros con 78 adicións e 0 borrados
  1. 78 0
      tests/event-data/lazyFetching.js

+ 78 - 0
tests/event-data/lazyFetching.js

@@ -0,0 +1,78 @@
+
+describe('lazyFetching', function() {
+	pushOptions({
+		defaultView: 'month',
+		defaultDate: '2017-10-04'
+	});
+
+	describe('when on', function() {
+		pushOptions({
+			lazyFetching: true
+		});
+
+		it('won\'t fetch weeks already queryied', function() {
+			var args;
+			var options = {
+				events: function(start, end, timezone, callback) {
+					callback([]);
+				}
+			};
+			spyOn(options, 'events');
+
+			initCalendar(options);
+			currentCalendar.changeView('agendaWeek');
+			currentCalendar.next();
+			currentCalendar.next();
+			currentCalendar.next();
+
+			expect(options.events.calls.count()).toBe(1);
+
+			args = options.events.calls.argsFor(0);
+			expect(args[0]).toEqualMoment('2017-10-01');
+			expect(args[1]).toEqualMoment('2017-11-12');
+		});
+	});
+
+	describe('when off', function() {
+		pushOptions({
+			lazyFetching: false
+		});
+
+		it('will fetch each new week range', function() {
+			var options = {
+				events: function(start, end, timezone, callback) {
+					callback([]);
+				}
+			};
+			spyOn(options, 'events');
+
+			initCalendar(options);
+			currentCalendar.changeView('agendaWeek');
+			currentCalendar.next();
+			currentCalendar.next();
+			currentCalendar.next();
+
+			expect(options.events.calls.count()).toBe(5);
+
+			args = options.events.calls.argsFor(0);
+			expect(args[0]).toEqualMoment('2017-10-01');
+			expect(args[1]).toEqualMoment('2017-11-12');
+
+			args = options.events.calls.argsFor(1);
+			expect(args[0]).toEqualMoment('2017-10-01T00:00:00');
+			expect(args[1]).toEqualMoment('2017-10-08T00:00:00');
+
+			args = options.events.calls.argsFor(2);
+			expect(args[0]).toEqualMoment('2017-10-08T00:00:00');
+			expect(args[1]).toEqualMoment('2017-10-15T00:00:00');
+
+			args = options.events.calls.argsFor(3);
+			expect(args[0]).toEqualMoment('2017-10-15T00:00:00');
+			expect(args[1]).toEqualMoment('2017-10-22T00:00:00');
+
+			args = options.events.calls.argsFor(4);
+			expect(args[0]).toEqualMoment('2017-10-22T00:00:00');
+			expect(args[1]).toEqualMoment('2017-10-29T00:00:00');
+		});
+	});
+});