Parcourir la source

make reetchEventSources tests more strict

Adam Shaw il y a 9 ans
Parent
commit
27acbca38e
1 fichiers modifiés avec 39 ajouts et 22 suppressions
  1. 39 22
      tests/automated/refetchEventSources.js

+ 39 - 22
tests/automated/refetchEventSources.js

@@ -1,26 +1,30 @@
-describe('refetchEventSources', function() {
+ddescribe('refetchEventSources', function() {
 	var calendarEl;
-	var eventCount;
 	var options;
 
+	// used by createEventGenerator
+	var eventCount;
+	var fetchId;
+
 	beforeEach(function() {
 		affix('#cal');
 		calendarEl = $('#cal');
 		eventCount = 1;
+		fetchId = 7;
 		options = {
 			now: '2015-08-07',
 			defaultView: 'agendaWeek',
 			eventSources: [
 				{
-					events: createEventGenerator('source1'),
+					events: createEventGenerator('source1-'),
 					color: 'green'
 				},
 				{
-					events: createEventGenerator('source2'),
+					events: createEventGenerator('source2-'),
 					color: 'blue'
 				},
 				{
-					events: createEventGenerator('source3'),
+					events: createEventGenerator('source3-'),
 					rendering: 'background',
 					color: 'green'
 				}
@@ -32,9 +36,9 @@ describe('refetchEventSources', function() {
 		it('only refetches events for the specified event source', function(done) {
 			calendarEl.fullCalendar(options);
 
-			expect($('.source1').length).toEqual(1);
-			expect($('.source2').length).toEqual(1);
-			expect($('.source3').length).toEqual(1);
+			expect($('.source1-7').length).toEqual(1);
+			expect($('.source2-7').length).toEqual(1);
+			expect($('.source3-7').length).toEqual(1);
 
 			var allEventSources = calendarEl.fullCalendar('getEventSources');
 			var blueEventSource = $.grep(allEventSources, function(eventSource) {
@@ -43,13 +47,19 @@ describe('refetchEventSources', function() {
 
 			// increase the number of events for the refetched source
 			eventCount = 2;
+			fetchId = 8;
 
 			calendarEl.fullCalendar('refetchEventSources', blueEventSource);
 
-			// ensure events have been updated
-			expect($('.source1').length).toEqual(1);
-			expect($('.source2').length).toEqual(2);
-			expect($('.source3').length).toEqual(1);
+			// events from unaffected sources remain
+			expect($('.source1-7').length).toEqual(1);
+			expect($('.source3-7').length).toEqual(1);
+
+			// events from old fetch were cleared
+			expect($('.source2-7').length).toEqual(0);
+
+			// events from new fetch were rendered
+			expect($('.source2-8').length).toEqual(2);
 
 			done();
 		});
@@ -59,9 +69,9 @@ describe('refetchEventSources', function() {
 		it('only refetches events for the specified event sources', function(done) {
 			calendarEl.fullCalendar(options);
 
-			expect($('.source1').length).toEqual(1);
-			expect($('.source2').length).toEqual(1);
-			expect($('.source3').length).toEqual(1);
+			expect($('.source1-7').length).toEqual(1);
+			expect($('.source2-7').length).toEqual(1);
+			expect($('.source3-7').length).toEqual(1);
 
 			var allEventSources = calendarEl.fullCalendar('getEventSources');
 			var greenEventSources = $.grep(allEventSources, function(eventSource) {
@@ -70,19 +80,26 @@ describe('refetchEventSources', function() {
 
 			// increase the number of events for the refetched sources
 			eventCount = 2;
+			fetchId = 8;
 
 			calendarEl.fullCalendar('refetchEventSources', greenEventSources);
 
-			// ensure events have been updated
-			expect($('.source1').length).toEqual(2);
-			expect($('.source2').length).toEqual(1);
-			expect($('.source3').length).toEqual(2);
+			// events from unaffected sources remain
+			expect($('.source2-7').length).toEqual(1);
+
+			// events from old fetch were cleared
+			expect($('.source1-7').length).toEqual(0);
+			expect($('.source3-7').length).toEqual(0);
+
+			// events from new fetch were rendered
+			expect($('.source1-8').length).toEqual(2);
+			expect($('.source3-8').length).toEqual(2);
 
 			done();
 		});
 	});
 
-	function createEventGenerator(className) {
+	function createEventGenerator(classNamePrefix) {
 		return function(start, end, timezone, callback) {
 			var events = [];
 
@@ -90,8 +107,8 @@ describe('refetchEventSources', function() {
 				events.push({
 					start: '2015-08-07T02:00:00',
 					end: '2015-08-07T03:00:00',
-					className: className,
-					title: className // also make it the title
+					className: classNamePrefix + fetchId,
+					title: classNamePrefix // also make it the title
 				});
 			}