From 746f0db466c4459fb6fa7c608ce63935b815cf33 Mon Sep 17 00:00:00 2001 From: njp Date: Mon, 19 Oct 2020 16:55:56 +0200 Subject: [PATCH] Adds two more scenarios to month view tests --- .../src/icalendar/data/oneHourMeeting.ts | 22 +++++ .../icalendar/data/recurringWeeklyMeeting.ts | 87 +++++++++++++++++++ .../__tests__/src/icalendar/month-view.ts | 26 +++++- packages/icalendar/src/main.ts | 6 +- 4 files changed, 133 insertions(+), 8 deletions(-) create mode 100644 packages/__tests__/src/icalendar/data/oneHourMeeting.ts create mode 100644 packages/__tests__/src/icalendar/data/recurringWeeklyMeeting.ts diff --git a/packages/__tests__/src/icalendar/data/oneHourMeeting.ts b/packages/__tests__/src/icalendar/data/oneHourMeeting.ts new file mode 100644 index 0000000000..bde6ddb528 --- /dev/null +++ b/packages/__tests__/src/icalendar/data/oneHourMeeting.ts @@ -0,0 +1,22 @@ +export default `BEGIN:VCALENDAR +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:events@fullcalendar.test +X-WR-TIMEZONE:Europe/Paris +BEGIN:VEVENT +DTSTART:20190415T093000Z +DTEND:20190415T103000Z +DTSTAMP:20201006T124223Z +UID:12345678 +ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=test@fullcalendar.test;X-NUM-GUESTS=0:mailto:test@fullcalendar.test +CREATED:20190412T223947Z +DESCRIPTION: +LAST-MODIFIED:20190412T223947Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Hour long meeting +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR` diff --git a/packages/__tests__/src/icalendar/data/recurringWeeklyMeeting.ts b/packages/__tests__/src/icalendar/data/recurringWeeklyMeeting.ts new file mode 100644 index 0000000000..cb0ef9dc5f --- /dev/null +++ b/packages/__tests__/src/icalendar/data/recurringWeeklyMeeting.ts @@ -0,0 +1,87 @@ +export default `BEGIN:VCALENDAR +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:events@fullcalendar.test +X-WR-TIMEZONE:Europe/Paris +BEGIN:VEVENT +DTSTART;TZID=Europe/Zurich:20190401T173000 +DTEND;TZID=Europe/Zurich:20190401T183000 +RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO +DTSTAMP:20201006T124223Z +ORGANIZER;CN=Testy McTestface:mailto:test@fullcalendar.test +UID:12345678 +CREATED:20181210T150458Z +DESCRIPTION: +LAST-MODIFIED:20190508T170523Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Weekly Monday meeting +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART;TZID=Europe/Zurich:20190408T173000 +DTEND;TZID=Europe/Zurich:20190408T183000 +RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO +DTSTAMP:20201006T124223Z +ORGANIZER;CN=Testy McTestface:mailto:test@fullcalendar.test +UID:12345678 +CREATED:20181210T150458Z +DESCRIPTION: +LAST-MODIFIED:20190508T170523Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Weekly Monday meeting +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART;TZID=Europe/Zurich:20190415T173000 +DTEND;TZID=Europe/Zurich:20190415T183000 +RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO +DTSTAMP:20201006T124223Z +ORGANIZER;CN=Testy McTestface:mailto:test@fullcalendar.test +UID:12345678 +CREATED:20181210T150458Z +DESCRIPTION: +LAST-MODIFIED:20190508T170523Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Weekly Monday meeting +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART;TZID=Europe/Zurich:20190422T173000 +DTEND;TZID=Europe/Zurich:20190422T183000 +RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO +DTSTAMP:20201006T124223Z +ORGANIZER;CN=Testy McTestface:mailto:test@fullcalendar.test +UID:12345678 +CREATED:20181210T150458Z +DESCRIPTION: +LAST-MODIFIED:20190508T170523Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Weekly Monday meeting +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART;TZID=Europe/Zurich:20190429T173000 +DTEND;TZID=Europe/Zurich:20190429T183000 +RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO +DTSTAMP:20201006T124223Z +ORGANIZER;CN=Testy McTestface:mailto:test@fullcalendar.test +UID:12345678 +CREATED:20181210T150458Z +DESCRIPTION: +LAST-MODIFIED:20190508T170523Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:Weekly Monday meeting +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR` diff --git a/packages/__tests__/src/icalendar/month-view.ts b/packages/__tests__/src/icalendar/month-view.ts index 7562e2ebc4..37179d9608 100644 --- a/packages/__tests__/src/icalendar/month-view.ts +++ b/packages/__tests__/src/icalendar/month-view.ts @@ -6,6 +6,8 @@ import iCalendarPlugin from '../../../icalendar/main' import singleEvent from './data/singleEvent' import multipleEvents from './data/multipleEvents' +import oneHourMeeting from './data/oneHourMeeting' +import recurringWeeklyMeeting from './data/recurringWeeklyMeeting' describe('addICalEventSource', function() { const ICAL_MIME_TYPE = 'text/calendar' @@ -20,7 +22,7 @@ describe('addICalEventSource', function() { afterEach(function() { XHRMock.teardown() }) - it('correctly adds a single event', async (done) => { + it('correctly adds a single multi-day event', async (done) => { loadICalendarWith(singleEvent, () => { setTimeout(() => { assertEventCount(1) @@ -29,7 +31,7 @@ describe('addICalEventSource', function() { }) }) - it('correctly adds multiple events', async (done) => { + it('correctly adds multiple multi-day events', async (done) => { loadICalendarWith(multipleEvents, () => { setTimeout(() => { assertEventCount(2) @@ -38,6 +40,24 @@ describe('addICalEventSource', function() { }) }) + it('correctly adds a one-hour long meeting', async (done) => { + loadICalendarWith(oneHourMeeting, () => { + setTimeout(() => { + assertEventCount(1) + done() + }, 200) + }) + }) + + it('correctly adds a repeating weekly meeting', async (done) => { + loadICalendarWith(recurringWeeklyMeeting, () => { + setTimeout(() => { + assertEventCount(5) + done() + }, 200) + }) + }) + function loadICalendarWith(rawICal: string, assertions: () => void) { const feedUrl = '/mock.ics' @@ -58,7 +78,7 @@ describe('addICalEventSource', function() { // Checks to make sure all events have been rendered and that the calendar // has internal info on all the events. - function assertEventCount(expectedCount) { + function assertEventCount(expectedCount: number) { expect(currentCalendar.getEvents().length).toEqual(expectedCount) let calendarWrapper = new CalendarWrapper(currentCalendar) diff --git a/packages/icalendar/src/main.ts b/packages/icalendar/src/main.ts index 3f7f7d23eb..12eb3aa689 100644 --- a/packages/icalendar/src/main.ts +++ b/packages/icalendar/src/main.ts @@ -13,11 +13,7 @@ export function requestICal(url: string, successCallback: Success, failureCallba xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 400) { - - const iCalFeed = xhr.responseText - console.log(iCalFeed) - - successCallback(iCalFeed, xhr) + successCallback(xhr.responseText, xhr) } else { failureCallback('Request failed', xhr) }