diff --git a/packages/__tests__/src/date-selection/implicit-unselect.ts b/packages/__tests__/src/date-selection/implicit-unselect.ts index 815a5d3534..302bf19932 100644 --- a/packages/__tests__/src/date-selection/implicit-unselect.ts +++ b/packages/__tests__/src/date-selection/implicit-unselect.ts @@ -11,10 +11,10 @@ describe('implicit unselection', () => { initCalendar({ select() { - selectFired++ + selectFired += 1 }, unselect() { - unselectFired++ + unselectFired += 1 }, }) @@ -33,10 +33,10 @@ describe('implicit unselection', () => { initCalendar({ select() { - selectFired++ + selectFired += 1 }, unselect() { - unselectFired++ + unselectFired += 1 }, }) diff --git a/packages/__tests__/src/datelib/main.ts b/packages/__tests__/src/datelib/main.ts index adc655880a..07aa816e3e 100644 --- a/packages/__tests__/src/datelib/main.ts +++ b/packages/__tests__/src/datelib/main.ts @@ -1,5 +1,13 @@ -import { DateEnv, createFormatter, createDuration, startOfDay, diffWholeWeeks, diffWholeDays, diffDayAndTime, Calendar } from '@fullcalendar/core' - +import { + DateEnv, + createFormatter, + createDuration, + startOfDay, + diffWholeWeeks, + diffWholeDays, + diffDayAndTime, + Calendar, +} from '@fullcalendar/core' import dayGridPlugin from '@fullcalendar/daygrid' import { getDSTDeadZone } from '../lib/dst-dead-zone' import { formatPrettyTimeZoneOffset, formatIsoTimeZoneOffset, formatIsoWithoutTz } from '../lib/datelib-utils' @@ -230,13 +238,13 @@ describe('datelib', () => { }) it('works with different days of same month, with inprecise formatter', () => { - let formatter = createFormatter({ + let otherFormatter = createFormatter({ month: 'long', year: 'numeric', }) let m0 = env.createMarker('2018-06-08') let m1 = env.createMarker('2018-06-09') - let s = env.formatRange(m0, m1, formatter) + let s = env.formatRange(m0, m1, otherFormatter) expect(s).toBe('June 2018') }) @@ -518,7 +526,7 @@ describe('datelib', () => { let deadZone = getDSTDeadZone() if (!deadZone) { - console.log('could not determine DST dead zone') + console.log('could not determine DST dead zone') // eslint-disable-line no-console } else { // use a utc date to get a ISO8601 string representation of the start of the dead zone let utcDate = new Date(Date.UTC( diff --git a/packages/__tests__/src/event-data/Event.mutation.ts b/packages/__tests__/src/event-data/Event.mutation.ts index c0499ee0c3..b80af2ebcd 100644 --- a/packages/__tests__/src/event-data/Event.mutation.ts +++ b/packages/__tests__/src/event-data/Event.mutation.ts @@ -12,7 +12,7 @@ describe('event mutations on non-instances', () => { let renderCnt = 0 let calendar = initCalendar({ eventContent(arg) { - renderCnt++ + renderCnt += 1 if (renderCnt === 2) { arg.event.setStart('2018-08-04') arg.event.setEnd('2018-10-04') diff --git a/packages/__tests__/src/event-data/dynamic-options.ts b/packages/__tests__/src/event-data/dynamic-options.ts index 55b093d835..68e06f8118 100644 --- a/packages/__tests__/src/event-data/dynamic-options.ts +++ b/packages/__tests__/src/event-data/dynamic-options.ts @@ -5,7 +5,7 @@ describe('setting option dynamically', () => { initCalendar({ initialView: 'dayGridMonth', events(arg, callback) { - fetchCnt++ + fetchCnt += 1 callback([]) }, }) diff --git a/packages/__tests__/src/event-data/eventDataTransform.ts b/packages/__tests__/src/event-data/eventDataTransform.ts index 3d99188f78..604e308be6 100644 --- a/packages/__tests__/src/event-data/eventDataTransform.ts +++ b/packages/__tests__/src/event-data/eventDataTransform.ts @@ -1,9 +1,9 @@ describe('eventDataTransform', () => { - let transform = function (raw) { - return $.extend({}, raw, { + let transform = (raw) => ( + $.extend({}, raw, { was_processed: true, }) - } + ) describeOptions({ 'when on the calendar': { diff --git a/packages/__tests__/src/event-data/events-function.ts b/packages/__tests__/src/event-data/events-function.ts index 85225ffc21..15028db596 100644 --- a/packages/__tests__/src/event-data/events-function.ts +++ b/packages/__tests__/src/event-data/events-function.ts @@ -86,12 +86,12 @@ describe('events as a function', () => { loadingCallArgs.push(bool) }, eventSources: [ - function (arg, callback) { + (arg, callback) => { setTimeout(() => { callback([]) }, 0) }, - function (arg, callback) { + (arg, callback) => { setTimeout(() => { callback([]) }, 10) diff --git a/packages/__tests__/src/event-data/lazyFetching.ts b/packages/__tests__/src/event-data/lazyFetching.ts index d2b331e3a8..46fe917cc4 100644 --- a/packages/__tests__/src/event-data/lazyFetching.ts +++ b/packages/__tests__/src/event-data/lazyFetching.ts @@ -11,9 +11,8 @@ describe('lazyFetching', () => { }) it('won\'t fetch weeks already queried', () => { - let arg let options = { - events(arg, callback) { + events(fetchInfo, callback) { callback([]) }, } @@ -27,7 +26,7 @@ describe('lazyFetching', () => { expect(options.events.calls.count()).toBe(1) - arg = options.events.calls.argsFor(0)[0] + let arg = options.events.calls.argsFor(0)[0] expect(arg.start).toEqualDate('2017-10-01T00:00:00Z') expect(arg.end).toEqualDate('2017-11-12T00:00:00Z') }) @@ -39,9 +38,8 @@ describe('lazyFetching', () => { }) it('will fetch each new week range', () => { - let arg let options = { - events(arg, callback) { + events(fetchInfo, callback) { callback([]) }, } @@ -55,7 +53,7 @@ describe('lazyFetching', () => { expect(options.events.calls.count()).toBe(5) - arg = options.events.calls.argsFor(0)[0] + let arg = options.events.calls.argsFor(0)[0] expect(arg.start).toEqualDate('2017-10-01T00:00:00Z') expect(arg.end).toEqualDate('2017-11-12T00:00:00Z') diff --git a/packages/__tests__/src/event-drag/between-calendars.ts b/packages/__tests__/src/event-drag/between-calendars.ts index 88c6f0b1fe..9403eef167 100644 --- a/packages/__tests__/src/event-drag/between-calendars.ts +++ b/packages/__tests__/src/event-drag/between-calendars.ts @@ -41,6 +41,7 @@ describe('dragging events between calendars', () => { it('fires all triggers', (done) => { let triggerNames = [] let eventAllowCalled = false + let eventEl calendar0 = new Calendar(el0, { plugins: [interactionPlugin, dayGridPlugin], @@ -93,7 +94,7 @@ describe('dragging events between calendars', () => { let dayGridWrapper0 = new DayGridViewWrapper(calendar0).dayGrid let dayGridWrapper1 = new DayGridViewWrapper(calendar1).dayGrid - let eventEl = dayGridWrapper0.getEventEls()[0] + eventEl = dayGridWrapper0.getEventEls()[0] let dayEl = dayGridWrapper1.getDayEls('2019-01-05')[0] let point1 = getRectCenter(dayEl.getBoundingClientRect()) diff --git a/packages/__tests__/src/event-drag/repeating.ts b/packages/__tests__/src/event-drag/repeating.ts index 35d26c9baa..ca149b694f 100644 --- a/packages/__tests__/src/event-drag/repeating.ts +++ b/packages/__tests__/src/event-drag/repeating.ts @@ -42,6 +42,7 @@ describe('event dragging on repeating events', () => { }) it('hides other repeating events when dragging', (done) => { + let dayGridWrapper let calendar = initCalendar({ eventDragStart() { setTimeout(() => { // try go execute DURING the drag @@ -55,8 +56,8 @@ describe('event dragging on repeating events', () => { }, 10) }, }) - let dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid + dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid $(dayGridWrapper.getFirstEventEl()).simulate('drag', { dx: 100, duration: 100, // ample time for separate eventDragStart/eventDrop @@ -65,6 +66,7 @@ describe('event dragging on repeating events', () => { // inverse of above test it('doesnt accidentally hide all non-id events when dragging', (done) => { + let dayGridWrapper let calendar = initCalendar({ events: [ { @@ -90,8 +92,8 @@ describe('event dragging on repeating events', () => { }, 10) }, }) - let dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid + dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid $(dayGridWrapper.getFirstEventEl()).simulate('drag', { dx: 100, duration: 100, // ample time for separate eventDragStart/eventDrop diff --git a/packages/__tests__/src/event-resize/mirror-hooks.ts b/packages/__tests__/src/event-resize/mirror-hooks.ts index 5b85886de1..32f3f22994 100644 --- a/packages/__tests__/src/event-resize/mirror-hooks.ts +++ b/packages/__tests__/src/event-resize/mirror-hooks.ts @@ -26,17 +26,17 @@ describe('event resize mirror', () => { let calendar = initCalendar({ eventDidMount(info) { if (info.isMirror) { - mirrorMountCalls++ + mirrorMountCalls += 1 } }, eventContent(info) { if (info.isMirror) { - mirrorContentCalls++ + mirrorContentCalls += 1 } }, eventWillUnmount(info) { if (info.isMirror) { - mirrorUnmountCalls++ + mirrorUnmountCalls += 1 } }, }) @@ -76,17 +76,17 @@ describe('event resize mirror', () => { let calendar = initCalendar({ eventDidMount(info) { if (info.isMirror) { - mirrorMountCalls++ + mirrorMountCalls += 1 } }, eventContent(info) { if (info.isMirror) { - mirrorContentCalls++ + mirrorContentCalls += 1 } }, eventWillUnmount(info) { if (info.isMirror) { - mirrorUnmountCalls++ + mirrorUnmountCalls += 1 } }, }) diff --git a/packages/__tests__/src/event-source/eventSourceSuccess.ts b/packages/__tests__/src/event-source/eventSourceSuccess.ts index 5138f3d257..53bb4b78c4 100644 --- a/packages/__tests__/src/event-source/eventSourceSuccess.ts +++ b/packages/__tests__/src/event-source/eventSourceSuccess.ts @@ -1,5 +1,5 @@ describe('eventSourceSuccess', () => { - const FETCH_FUNC = function (info, successCallback) { + const FETCH_FUNC = (info, successCallback) => { successCallback({ something: [ { title: 'hi', start: '2018-10-01' }, @@ -7,9 +7,7 @@ describe('eventSourceSuccess', () => { }) } - const TRANSFORM = function (input) { - return input.something - } + const TRANSFORM = (input) => input.something pushOptions({ initialDate: '2018-10-01', diff --git a/packages/__tests__/src/event-source/refetch.ts b/packages/__tests__/src/event-source/refetch.ts index f9d7dabf26..3c936276f0 100644 --- a/packages/__tests__/src/event-source/refetch.ts +++ b/packages/__tests__/src/event-source/refetch.ts @@ -108,10 +108,10 @@ describe('event source refetch', () => { } function createEventGenerator(classNamePrefix, fetchConfig) { - return function (arg, callback) { + return (arg, callback) => { let events = [] - for (let i = 0; i < fetchConfig.eventCount; i++) { + for (let i = 0; i < fetchConfig.eventCount; i += 1) { events.push({ start: '2015-08-07T02:00:00', end: '2015-08-07T03:00:00', diff --git a/packages/__tests__/src/legacy/ListView.ts b/packages/__tests__/src/legacy/ListView.ts index 950e676fd7..1240d0ca8d 100644 --- a/packages/__tests__/src/legacy/ListView.ts +++ b/packages/__tests__/src/legacy/ListView.ts @@ -45,7 +45,7 @@ describe('ListView rendering', () => { initCalendar({ eventDidMount() { - eventMountCnt++ + eventMountCnt += 1 }, }) @@ -57,7 +57,7 @@ describe('ListView rendering', () => { initCalendar({ eventWillUnmount() { - callCnt++ + callCnt += 1 }, }) diff --git a/packages/__tests__/src/legacy/aspectRatio.ts b/packages/__tests__/src/legacy/aspectRatio.ts index d0d6468e89..fce5f78cbc 100644 --- a/packages/__tests__/src/legacy/aspectRatio.ts +++ b/packages/__tests__/src/legacy/aspectRatio.ts @@ -46,7 +46,7 @@ describe('aspectRatio', () => { let viewContainerEl = new CalendarWrapper(calendar).getViewContainerEl() let rect = viewContainerEl.getBoundingClientRect() - let ratio = Math.round(rect.width / rect.height * 100) + let ratio = Math.round((rect.width / rect.height) * 100) expect(Math.round(ratio)).toEqual(200) }) }) @@ -69,7 +69,7 @@ describe('aspectRatio', () => { let viewContainerEl = new CalendarWrapper(calendar).getViewContainerEl() let rect = viewContainerEl.getBoundingClientRect() - let ratio = Math.round(rect.width / rect.height * 100) + let ratio = Math.round((rect.width / rect.height) * 100) expect(Math.round(ratio)).toEqual(100) }) }) @@ -92,7 +92,7 @@ describe('aspectRatio', () => { let viewContainerEl = new CalendarWrapper(calendar).getViewContainerEl() let rect = viewContainerEl.getBoundingClientRect() - let ratio = Math.round(rect.width / rect.height * 100) + let ratio = Math.round((rect.width / rect.height) * 100) expect(Math.round(ratio)).toEqual(50) }) }) @@ -115,7 +115,7 @@ describe('aspectRatio', () => { let viewContainerEl = new CalendarWrapper(calendar).getViewContainerEl() let rect = viewContainerEl.getBoundingClientRect() - let ratio = Math.round(rect.width / rect.height * 100) + let ratio = Math.round((rect.width / rect.height) * 100) expect(Math.round(ratio)).toEqual(50) }) }) @@ -138,7 +138,7 @@ describe('aspectRatio', () => { let viewContainerEl = new CalendarWrapper(calendar).getViewContainerEl() let rect = viewContainerEl.getBoundingClientRect() - let ratio = Math.round(rect.width / rect.height * 100) + let ratio = Math.round((rect.width / rect.height) * 100) expect(Math.round(ratio)).toEqual(50) }) }) diff --git a/packages/__tests__/src/legacy/dayNames.ts b/packages/__tests__/src/legacy/dayNames.ts index 2773f9e16b..a6b10e260f 100644 --- a/packages/__tests__/src/legacy/dayNames.ts +++ b/packages/__tests__/src/legacy/dayNames.ts @@ -38,7 +38,7 @@ describe('day names', () => { }) }) - $.each(locales, (index, locale) => { + $.each(locales, (localeIndex, locale) => { describe('when locale is ' + locale, () => { CalendarWrapper.DOW_CLASSNAMES.forEach((dowClassName, index) => { let dayDate = addDays(sundayDate, index) diff --git a/packages/__tests__/src/legacy/dayRender.ts b/packages/__tests__/src/legacy/dayRender.ts index 913bf4fffc..d6fe016ba1 100644 --- a/packages/__tests__/src/legacy/dayRender.ts +++ b/packages/__tests__/src/legacy/dayRender.ts @@ -75,7 +75,7 @@ describe('dayCellDidMount', () => { // TODO: rename file expect(arg.date instanceof Date).toBe(true) expect(arg.el instanceof HTMLElement).toBe(true) expect(typeof arg.view).toBe('object') - callCnt++ + callCnt += 1 }, } diff --git a/packages/__tests__/src/legacy/destroy.ts b/packages/__tests__/src/legacy/destroy.ts index e371a9ff9f..9c8d0dfe46 100644 --- a/packages/__tests__/src/legacy/destroy.ts +++ b/packages/__tests__/src/legacy/destroy.ts @@ -70,7 +70,7 @@ describe('destroy', () => { // Issue 2432 it('preserves existing window handlers when handleWindowResize is off', () => { - let resizeHandler = function () {} + let resizeHandler = () => {} let windowListenerCounter = new ListenerCounter(window) windowListenerCounter.startWatching() diff --git a/packages/__tests__/src/legacy/event-dnd.ts b/packages/__tests__/src/legacy/event-dnd.ts index 05723c3022..f88d5b442f 100644 --- a/packages/__tests__/src/legacy/event-dnd.ts +++ b/packages/__tests__/src/legacy/event-dnd.ts @@ -17,12 +17,12 @@ describe('eventDrop', () => { describe('when in month view', () => { pushOptions({ initialView: 'dayGridMonth', - }) + }); // TODO: test that event's dragged via touch that don't wait long enough for longPressDelay // SHOULD NOT drag - ;[false, true].forEach((isTouch) => { + [false, true].forEach((isTouch) => { describe('with ' + (isTouch ? 'touch' : 'mouse'), () => { describe('when dragging an all-day event to another day', () => { it('should be given correct arguments, with whole-day delta', (done) => { diff --git a/packages/__tests__/src/legacy/eventDestroy.ts b/packages/__tests__/src/legacy/eventDestroy.ts index ea967a49f6..5201d0edfd 100644 --- a/packages/__tests__/src/legacy/eventDestroy.ts +++ b/packages/__tests__/src/legacy/eventDestroy.ts @@ -11,7 +11,8 @@ describe('eventWillUnmount', () => { // TODO: rename file let calendar = initCalendar({ events: [singleEventData], eventWillUnmount(arg) { - if (callCnt++ === 0) { // only care about the first call. gets called again when calendar is destroyed + callCnt += 1 + if (callCnt === 1) { // only care about the first call. gets called again when calendar is destroyed expect(arg.event.id).toBe(singleEventData.id) done() } diff --git a/packages/__tests__/src/legacy/eventLimit-popover.ts b/packages/__tests__/src/legacy/eventLimit-popover.ts index de40d54f3b..dddecf8299 100644 --- a/packages/__tests__/src/legacy/eventLimit-popover.ts +++ b/packages/__tests__/src/legacy/eventLimit-popover.ts @@ -465,6 +465,7 @@ describe('more-link popover', () => { // TODO: rename file describe('when a single-day event isn\'t dragged out all the way', () => { it('shouldn\'t do anything', (done) => { + let dayGridWrapper let calendar = initCalendar({ eventDragStop() { setTimeout(() => { // try to wait until drag is over. eventMutation won't fire BTW @@ -474,9 +475,9 @@ describe('more-link popover', () => { // TODO: rename file }, }) let viewWrapper = new DayGridViewWrapper(calendar) - let dayGridWrapper = viewWrapper.dayGrid - + dayGridWrapper = viewWrapper.dayGrid dayGridWrapper.openMorePopover() + setTimeout(() => { // simulate was getting confused about which thing was being clicked :( $('.event1', dayGridWrapper.getMorePopoverEl()).simulate('drag', { localPoint: { left: '0%', top: '50%' }, // leftmost is guaranteed to be over the 30th diff --git a/packages/__tests__/src/legacy/eventLimit-popoverDestroy.ts b/packages/__tests__/src/legacy/eventLimit-popoverDestroy.ts index 6b76b93aa0..4fa32cd44f 100644 --- a/packages/__tests__/src/legacy/eventLimit-popoverDestroy.ts +++ b/packages/__tests__/src/legacy/eventLimit-popoverDestroy.ts @@ -23,12 +23,12 @@ describe('more-link popover', () => { // TODO: rename file eventDidMount(arg) { if (activated) { eventsRendered[arg.event.title] = true - ++renderCount + renderCount += 1 } }, eventWillUnmount(arg) { delete eventsRendered[arg.event.title] - --renderCount + renderCount -= 1 }, }) let dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid @@ -58,12 +58,12 @@ describe('more-link popover', () => { // TODO: rename file eventDidMount(arg) { if (activated) { eventsRendered[arg.event.title] = true - ++renderCount + renderCount += 1 } }, eventWillUnmount(arg) { delete eventsRendered[arg.event.title] - --renderCount + renderCount -= 1 }, }) let dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid diff --git a/packages/__tests__/src/legacy/events-function.ts b/packages/__tests__/src/legacy/events-function.ts index 47a3a6cb2d..5e3179454a 100644 --- a/packages/__tests__/src/legacy/events-function.ts +++ b/packages/__tests__/src/legacy/events-function.ts @@ -64,7 +64,7 @@ describe('events as a function', () => { timeZone: 'America/Chicago', events(arg, callback) { testEventFunctionParams(arg, callback) - callCnt++ + callCnt += 1 if (callCnt === 1) { expect(arg.timeZone).toEqual('America/Chicago') expect(arg.start).toEqualDate('2014-04-27') diff --git a/packages/__tests__/src/legacy/events-gcal.ts b/packages/__tests__/src/legacy/events-gcal.ts index 7c81a88d13..17b6b8e6f8 100644 --- a/packages/__tests__/src/legacy/events-gcal.ts +++ b/packages/__tests__/src/legacy/events-gcal.ts @@ -7,7 +7,7 @@ import { CalendarWrapper } from '../lib/wrappers/CalendarWrapper' // (requests to other services were working however) const SKIP_GCAL = window.karmaConfig.isCi // maybe use webpack for this??? if (SKIP_GCAL) { - console.log('skipping google-calendar') + console.log('skipping google-calendar') // eslint-disable-line no-console } // eslint-disable-next-line @@ -33,8 +33,8 @@ describe('Google Calendar plugin', () => { // Intercept calls to console.warn currentWarnArgs = null oldConsoleWarn = console.warn - console.warn = function () { - currentWarnArgs = arguments + console.warn = function () { // eslint-disable-line func-names + currentWarnArgs = arguments // eslint-disable-line prefer-rest-params } }) @@ -54,7 +54,7 @@ describe('Google Calendar plugin', () => { let i expect(events.length).toBe(NUM_EVENTS) - for (i = 0; i < events.length; i++) { + for (i = 0; i < events.length; i += 1) { expect(events[i].url).not.toMatch('ctz=') } @@ -74,7 +74,7 @@ describe('Google Calendar plugin', () => { let i expect(events.length).toBe(NUM_EVENTS) - for (i = 0; i < events.length; i++) { + for (i = 0; i < events.length; i += 1) { expect(events[i].url).toMatch('ctz=UTC') } @@ -96,7 +96,7 @@ describe('Google Calendar plugin', () => { let i expect(events.length).toBe(NUM_EVENTS) - for (i = 0; i < events.length; i++) { + for (i = 0; i < events.length; i += 1) { expect(events[i].url).toMatch('ctz=America/New_York') } @@ -272,7 +272,7 @@ describe('Google Calendar plugin', () => { }) }) - function afterEventsLoaded(calendar, callback) { + function afterEventsLoaded(calendar, callback: () => void) { calendar.on('eventsSet', () => { setTimeout(callback) // because nothing is rendered yet when eventSourceSuccess fires }) diff --git a/packages/__tests__/src/legacy/events-json-feed.ts b/packages/__tests__/src/legacy/events-json-feed.ts index 67028d7302..74ea72c757 100644 --- a/packages/__tests__/src/legacy/events-json-feed.ts +++ b/packages/__tests__/src/legacy/events-json-feed.ts @@ -93,9 +93,8 @@ describe('events as a json feed', () => { calendar.setOption('timeZone', 'America/New_York') setTimeout(() => { - let eventStartStr = calendar.getEvents()[0].startStr + eventStartStr = calendar.getEvents()[0].startStr expect(eventStartStr).toBe('2014-06-08T03:00:00') - done() }, 100) }, 100) diff --git a/packages/__tests__/src/legacy/external-dnd-advanced.ts b/packages/__tests__/src/legacy/external-dnd-advanced.ts index 9bfae2503e..4848fd4d09 100644 --- a/packages/__tests__/src/legacy/external-dnd-advanced.ts +++ b/packages/__tests__/src/legacy/external-dnd-advanced.ts @@ -337,12 +337,12 @@ describe('advanced external dnd', () => { function testExternalElDrag(options, dragToDate, expectedDate, expectSuccess, callback) { // with NO event creation options.droppable = true - options.drop = function (arg) { + options.drop = (arg) => { expect(arg.date instanceof Date).toBe(true) expect(arg.date).toEqualDate(expectedDate) expect(typeof arg.jsEvent).toBe('object') } - options.eventReceive = function () { } + options.eventReceive = () => {} spyOn(options, 'drop').and.callThrough() spyOn(options, 'eventReceive').and.callThrough() @@ -361,13 +361,13 @@ describe('advanced external dnd', () => { let expectedAllDay = dragToDate.indexOf('T') === -1 // for the drop callback only! options.droppable = true - options.drop = function (arg) { + options.drop = (arg) => { expect(arg.date instanceof Date).toBe(true) expect(arg.date).toEqualDate(dragToDate) expect(arg.allDay).toBe(expectedAllDay) expect(typeof arg.jsEvent).toBe('object') } - options.eventReceive = function (arg) { + options.eventReceive = (arg) => { expect(arg.event.start).toEqualDate(expectedDate) } spyOn(options, 'drop').and.callThrough() diff --git a/packages/__tests__/src/legacy/external-dnd.ts b/packages/__tests__/src/legacy/external-dnd.ts index e5e633d122..94934abc6d 100644 --- a/packages/__tests__/src/legacy/external-dnd.ts +++ b/packages/__tests__/src/legacy/external-dnd.ts @@ -55,6 +55,7 @@ describe('external drag and drop with jquery UI', () => { it('works after the view is changed', (done) => { // issue 2240 let callCnt = 0 + let dayGridWrapper let calendar = initCalendarInContainer({ drop(arg) { if (callCnt === 0) { @@ -74,10 +75,10 @@ describe('external drag and drop with jquery UI', () => { setTimeout(done) // weird } - callCnt++ + callCnt += 1 }, }) - let dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid + dayGridWrapper = new DayGridViewWrapper(calendar).dayGrid initDnd() setTimeout(() => { // weird @@ -193,6 +194,7 @@ describe('external drag and drop with jquery UI', () => { it('works after the view is changed', (done) => { let callCnt = 0 + let timeGridWrapper let calendar = initCalendarInContainer({ drop(arg) { if (callCnt === 0) { @@ -212,10 +214,10 @@ describe('external drag and drop with jquery UI', () => { setTimeout(done) // weird } - callCnt++ + callCnt += 1 }, }) - let timeGridWrapper = new TimeGridViewWrapper(calendar).timeGrid + timeGridWrapper = new TimeGridViewWrapper(calendar).timeGrid initDnd() setTimeout(() => { // weird diff --git a/packages/__tests__/src/legacy/firstDay.ts b/packages/__tests__/src/legacy/firstDay.ts index 2dc58fa301..13eb278e29 100644 --- a/packages/__tests__/src/legacy/firstDay.ts +++ b/packages/__tests__/src/legacy/firstDay.ts @@ -94,7 +94,7 @@ describe('firstDay', () => { let headerWrapper = new DayGridViewWrapper(calendar).header let cellEls = headerWrapper.getCellEls() - for (let i = 0; i < 7; i++) { + for (let i = 0; i < 7; i += 1) { expect(cellEls[i]).toHaveClass(DOW_CLASSNAMES[(i + dowNum) % 7]) } } diff --git a/packages/__tests__/src/legacy/header-rendering.ts b/packages/__tests__/src/legacy/header-rendering.ts index c1fd4a32a6..8be4ead024 100644 --- a/packages/__tests__/src/legacy/header-rendering.ts +++ b/packages/__tests__/src/legacy/header-rendering.ts @@ -114,7 +114,7 @@ children: [ .appendTo('body') function beforeUnloadHandler() { - console.log('when calendar is within a form, it submits!!!') + console.log('when calendar is within a form, it submits!!!') // eslint-disable-line no-console unloadCalled = true cleanup() return 'click stay on this page' diff --git a/packages/__tests__/src/legacy/height-and-contentHeight.ts b/packages/__tests__/src/legacy/height-and-contentHeight.ts index c0d3d7e0e8..998eb342a2 100644 --- a/packages/__tests__/src/legacy/height-and-contentHeight.ts +++ b/packages/__tests__/src/legacy/height-and-contentHeight.ts @@ -3,75 +3,173 @@ import { DayGridViewWrapper } from '../lib/wrappers/DayGridViewWrapper' import { TimeGridViewWrapper } from '../lib/wrappers/TimeGridViewWrapper' import '../lib/dom-misc' -(function () { - ['height', 'contentHeight'].forEach((heightProp) => { - describe(heightProp, () => { - let $calendarEl - let heightEl // HTMLElement - let asAMethod - let heightPropDescriptions: { description: string, height: string | number, heightWrapper?: boolean }[] = [ - { description: 'as a number', height: 600 }, - ] +['height', 'contentHeight'].forEach((heightProp) => { + describe(heightProp, () => { + let $calendarEl + let heightEl // HTMLElement + let asAMethod + let heightPropDescriptions: { description: string, height: string | number, heightWrapper?: boolean }[] = [ + { description: 'as a number', height: 600 }, + ] + + if (heightProp === 'height') { + heightPropDescriptions.push({ description: 'as "100%"', height: '100%', heightWrapper: true }) + } - if (heightProp === 'height') { - heightPropDescriptions.push({ description: 'as "100%"', height: '100%', heightWrapper: true }) - } + pushOptions({ + initialDate: '2014-08-01', + }) - pushOptions({ - initialDate: '2014-08-01', - }) + beforeEach(() => { + $calendarEl = $('
').appendTo('body').width(900) + }) - beforeEach(() => { - $calendarEl = $('').appendTo('body').width(900) - }) + afterEach(() => { + $calendarEl.remove() + }) - afterEach(() => { - $calendarEl.remove() - }) + // relies on asAMethod (boolean) + // otherOptions: other calendar options to dynamically set (assumes asAMethod) + function init(heightVal) { + let calendar - // relies on asAMethod (boolean) - // otherOptions: other calendar options to dynamically set (assumes asAMethod) - function init(heightVal) { - let calendar - - if (asAMethod) { - calendar = initCalendar({}, $calendarEl[0]) - let calendarWrapper = new CalendarWrapper(calendar) - let dateEl = calendarWrapper.getFirstDateEl() - - calendar.setOption(heightProp, heightVal) - expect(calendarWrapper.getFirstDateEl()).toBe(dateEl) - } else { - calendar = initCalendar({ [heightProp]: heightVal }, $calendarEl[0]) - } - - if (heightProp === 'height') { - heightEl = calendar.el - } else { - heightEl = new CalendarWrapper(calendar).getViewEl() - } - - return calendar + if (asAMethod) { + calendar = initCalendar({}, $calendarEl[0]) + let calendarWrapper = new CalendarWrapper(calendar) + let dateEl = calendarWrapper.getFirstDateEl() + + calendar.setOption(heightProp, heightVal) + expect(calendarWrapper.getFirstDateEl()).toBe(dateEl) + } else { + calendar = initCalendar({ [heightProp]: heightVal }, $calendarEl[0]) } - function expectHeight(heightVal) { - let diff = Math.abs(heightEl.offsetHeight - heightVal) - expect(diff).toBeLessThan(2) // off-by-one or exactly the same. for zoom, and firefox + if (heightProp === 'height') { + heightEl = calendar.el + } else { + heightEl = new CalendarWrapper(calendar).getViewEl() } - $.each({ - 'as an init option': false, - 'as a method': true, - }, (desc, bool) => { - describe(desc, () => { - beforeEach(() => { - asAMethod = bool - }) + return calendar + } + + function expectHeight(heightVal) { + let diff = Math.abs(heightEl.offsetHeight - heightVal) + expect(diff).toBeLessThan(2) // off-by-one or exactly the same. for zoom, and firefox + } + + $.each({ + 'as an init option': false, + 'as a method': true, + }, (desc, bool) => { + describe(desc, () => { + beforeEach(() => { + asAMethod = bool + }) + + describe('for ' + heightProp, () => { + describe('when in month view', () => { + pushOptions({ + initialView: 'dayGridMonth', + }) + + heightPropDescriptions.forEach((testInfo) => { + describe(testInfo.description, () => { + if (testInfo.heightWrapper) { + beforeEach(() => { + $calendarEl.wrap('') + }) + afterEach(() => { + $('#calendar-container').remove() + }) + } + + describe('when there are no events', () => { + it('should be the specified height, with no scrollbars', () => { + let calendar = init(testInfo.height) + let viewWrapper = new DayGridViewWrapper(calendar) + let diff = Math.abs(heightEl.offsetHeight - 600) + + expect(diff).toBeLessThan(2) + expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() + }) + }) + + describe('when there is one tall row of events', () => { + pushOptions({ + events: repeatClone({ title: 'event', start: '2014-08-04' }, 9), + }) + + it('should take away height from other rows, but not do scrollbars', () => { + let calendar = init(testInfo.height) + let viewWrapper = new DayGridViewWrapper(calendar) + let $rows = $(viewWrapper.dayGrid.getRowEls()) + let $tallRow = $rows.eq(1) + let $shortRows = $rows.not($tallRow) // 0, 2, 3, 4, 5 + let shortHeight = $shortRows.eq(0).outerHeight() + + expectHeight(600) + + $shortRows.each((i, node) => { + let rowHeight = $(node).outerHeight() + let diff = Math.abs(rowHeight - shortHeight) + expect(diff).toBeLessThan(10) // all roughly the same + }) + + expect($tallRow.outerHeight()).toBeGreaterThan(shortHeight * 2) // much taller + expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() + }) + }) + + describe('when there are many tall rows of events', () => { + pushOptions({ + events: [].concat( + repeatClone({ title: 'event0', start: '2014-07-28' }, 9), + repeatClone({ title: 'event1', start: '2014-08-04' }, 9), + repeatClone({ title: 'event2', start: '2014-08-11' }, 9), + repeatClone({ title: 'event3', start: '2014-08-18' }, 9), + repeatClone({ title: 'event4', start: '2014-08-25' }, 9), + repeatClone({ title: 'event5', start: '2014-09-01' }, 9), + ), + }) + + it('height is correct and scrollbars show up', () => { + let calendar = init(testInfo.height) + let viewWrapper = new DayGridViewWrapper(calendar) + + expectHeight(600) + expect(viewWrapper.getScrollerEl()).toHaveScrollbars() + }) + }) + }) + }) + + describe('as "auto", when there are many tall rows of events', () => { + pushOptions({ + events: [].concat( + repeatClone({ title: 'event0', start: '2014-07-28' }, 9), + repeatClone({ title: 'event1', start: '2014-08-04' }, 9), + repeatClone({ title: 'event2', start: '2014-08-11' }, 9), + repeatClone({ title: 'event3', start: '2014-08-18' }, 9), + repeatClone({ title: 'event4', start: '2014-08-25' }, 9), + repeatClone({ title: 'event5', start: '2014-09-01' }, 9), + ), + }) + + it('height is really tall and there are no scrollbars', () => { + let calendar = init('auto') + let viewWrapper = new DayGridViewWrapper(calendar) + + expect(heightEl.offsetHeight).toBeGreaterThan(1000) // pretty tall + expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() + }) + }) + }); - describe('for ' + heightProp, () => { - describe('when in month view', () => { + ['dayGridWeek', 'dayGridDay'].forEach((viewName) => { + describe('in ' + viewName + ' view', () => { pushOptions({ - initialView: 'dayGridMonth', + initialView: viewName, }) heightPropDescriptions.forEach((testInfo) => { @@ -89,52 +187,18 @@ import '../lib/dom-misc' it('should be the specified height, with no scrollbars', () => { let calendar = init(testInfo.height) let viewWrapper = new DayGridViewWrapper(calendar) - let diff = Math.abs(heightEl.offsetHeight - 600) - - expect(diff).toBeLessThan(2) - expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() - }) - }) - - describe('when there is one tall row of events', () => { - pushOptions({ - events: repeatClone({ title: 'event', start: '2014-08-04' }, 9), - }) - - it('should take away height from other rows, but not do scrollbars', () => { - let calendar = init(testInfo.height) - let viewWrapper = new DayGridViewWrapper(calendar) - let $rows = $(viewWrapper.dayGrid.getRowEls()) - let $tallRow = $rows.eq(1) - let $shortRows = $rows.not($tallRow) // 0, 2, 3, 4, 5 - let shortHeight = $shortRows.eq(0).outerHeight() expectHeight(600) - - $shortRows.each((i, node) => { - let rowHeight = $(node).outerHeight() - let diff = Math.abs(rowHeight - shortHeight) - expect(diff).toBeLessThan(10) // all roughly the same - }) - - expect($tallRow.outerHeight()).toBeGreaterThan(shortHeight * 2) // much taller expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() }) }) - describe('when there are many tall rows of events', () => { + describe('when there are many events', () => { pushOptions({ - events: [].concat( - repeatClone({ title: 'event0', start: '2014-07-28' }, 9), - repeatClone({ title: 'event1', start: '2014-08-04' }, 9), - repeatClone({ title: 'event2', start: '2014-08-11' }, 9), - repeatClone({ title: 'event3', start: '2014-08-18' }, 9), - repeatClone({ title: 'event4', start: '2014-08-25' }, 9), - repeatClone({ title: 'event5', start: '2014-09-01' }, 9), - ), + events: repeatClone({ title: 'event', start: '2014-08-01' }, 100), }) - it('height is correct and scrollbars show up', () => { + it('should have the correct height, with scrollbars', () => { let calendar = init(testInfo.height) let viewWrapper = new DayGridViewWrapper(calendar) @@ -145,19 +209,11 @@ import '../lib/dom-misc' }) }) - describe('as "auto", when there are many tall rows of events', () => { + describe('as "auto", when there are many events', () => { pushOptions({ - events: [].concat( - repeatClone({ title: 'event0', start: '2014-07-28' }, 9), - repeatClone({ title: 'event1', start: '2014-08-04' }, 9), - repeatClone({ title: 'event2', start: '2014-08-11' }, 9), - repeatClone({ title: 'event3', start: '2014-08-18' }, 9), - repeatClone({ title: 'event4', start: '2014-08-25' }, 9), - repeatClone({ title: 'event5', start: '2014-09-01' }, 9), - ), + events: repeatClone({ title: 'event', start: '2014-08-01' }, 100), }) - - it('height is really tall and there are no scrollbars', () => { + it('should be really tall with no scrollbars', () => { let calendar = init('auto') let viewWrapper = new DayGridViewWrapper(calendar) @@ -165,14 +221,20 @@ import '../lib/dom-misc' expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() }) }) - }); + }) + }); - ['dayGridWeek', 'dayGridDay'].forEach((viewName) => { - describe('in ' + viewName + ' view', () => { - pushOptions({ - initialView: viewName, - }) + ['timeGridWeek', 'timeGridDay'].forEach((viewName) => { + describe('in ' + viewName + ' view', () => { + pushOptions({ + initialView: viewName, + }) + describeOptions({ + 'with no all-day section': { allDaySlot: false }, + 'with no all-day events': { }, + 'with some all-day events': { events: repeatClone({ title: 'event', start: '2014-08-01' }, 6) }, + }, () => { heightPropDescriptions.forEach((testInfo) => { describe(testInfo.description, () => { if (testInfo.heightWrapper) { @@ -184,24 +246,14 @@ import '../lib/dom-misc' }) } - describe('when there are no events', () => { - it('should be the specified height, with no scrollbars', () => { - let calendar = init(testInfo.height) - let viewWrapper = new DayGridViewWrapper(calendar) - - expectHeight(600) - expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() - }) - }) - - describe('when there are many events', () => { + describe('with many slots', () => { pushOptions({ - events: repeatClone({ title: 'event', start: '2014-08-01' }, 100), + slotMinTime: '00:00:00', + slotMaxTime: '24:00:00', }) - - it('should have the correct height, with scrollbars', () => { + it('should be the correct height, with scrollbars', () => { let calendar = init(testInfo.height) - let viewWrapper = new DayGridViewWrapper(calendar) + let viewWrapper = new TimeGridViewWrapper(calendar) expectHeight(600) expect(viewWrapper.getScrollerEl()).toHaveScrollbars() @@ -210,86 +262,32 @@ import '../lib/dom-misc' }) }) - describe('as "auto", when there are many events', () => { + describe('as "auto", with only a few slots', () => { pushOptions({ - events: repeatClone({ title: 'event', start: '2014-08-01' }, 100), + slotMinTime: '06:00:00', + slotMaxTime: '10:00:00', }) - it('should be really tall with no scrollbars', () => { + it('should be really short with no scrollbars nor horizontal rule', () => { let calendar = init('auto') - let viewWrapper = new DayGridViewWrapper(calendar) + let viewWrapper = new TimeGridViewWrapper(calendar) - expect(heightEl.offsetHeight).toBeGreaterThan(1000) // pretty tall + expect(heightEl.offsetHeight).toBeLessThan(500) // pretty short expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() }) }) - }) - }); - - ['timeGridWeek', 'timeGridDay'].forEach((viewName) => { - describe('in ' + viewName + ' view', () => { - pushOptions({ - initialView: viewName, - }) - - describeOptions({ - 'with no all-day section': { allDaySlot: false }, - 'with no all-day events': { }, - 'with some all-day events': { events: repeatClone({ title: 'event', start: '2014-08-01' }, 6) }, - }, () => { - heightPropDescriptions.forEach((testInfo) => { - describe(testInfo.description, () => { - if (testInfo.heightWrapper) { - beforeEach(() => { - $calendarEl.wrap('') - }) - afterEach(() => { - $('#calendar-container').remove() - }) - } - - describe('with many slots', () => { - pushOptions({ - slotMinTime: '00:00:00', - slotMaxTime: '24:00:00', - }) - it('should be the correct height, with scrollbars', () => { - let calendar = init(testInfo.height) - let viewWrapper = new TimeGridViewWrapper(calendar) - - expectHeight(600) - expect(viewWrapper.getScrollerEl()).toHaveScrollbars() - }) - }) - }) - }) - - describe('as "auto", with only a few slots', () => { - pushOptions({ - slotMinTime: '06:00:00', - slotMaxTime: '10:00:00', - }) - it('should be really short with no scrollbars nor horizontal rule', () => { - let calendar = init('auto') - let viewWrapper = new TimeGridViewWrapper(calendar) - expect(heightEl.offsetHeight).toBeLessThan(500) // pretty short - expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() - }) + describe('as a "auto", with many slots', () => { + pushOptions({ + slotMinTime: '00:00:00', + slotMaxTime: '24:00:00', }) - describe('as a "auto", with many slots', () => { - pushOptions({ - slotMinTime: '00:00:00', - slotMaxTime: '24:00:00', - }) - - it('should be really tall with no scrollbars nor horizontal rule', () => { - let calendar = init('auto') - let viewWrapper = new TimeGridViewWrapper(calendar) + it('should be really tall with no scrollbars nor horizontal rule', () => { + let calendar = init('auto') + let viewWrapper = new TimeGridViewWrapper(calendar) - expect(heightEl.offsetHeight).toBeGreaterThan(900) // pretty tall - expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() - }) + expect(heightEl.offsetHeight).toBeGreaterThan(900) // pretty tall + expect(viewWrapper.getScrollerEl()).not.toHaveScrollbars() }) }) }) @@ -299,33 +297,33 @@ import '../lib/dom-misc' }) }) }) - - it('no height oscillation happens', () => { - let $container = $( - '