mirror of https://github.com/nextcloud/calendar
187 lines
6.4 KiB
JavaScript
187 lines
6.4 KiB
JavaScript
/**
|
|
* @copyright Copyright (c) 2019 Georg Ehrke
|
|
*
|
|
* @author Georg Ehrke <oc.list@georgehrke.com>
|
|
*
|
|
* @license GNU AGPL version 3 or any later version
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
import eventRender from "../../../../../src/fullcalendar/rendering/eventContent.js";
|
|
|
|
describe('fullcalendar/eventContent test suite', () => {
|
|
|
|
it('should add extended properties from the event to the dataset of the dom element - existing event', () => {
|
|
const el = document.createElement('div')
|
|
const event = {
|
|
source: {},
|
|
extendedProps: {
|
|
objectId: 'object123',
|
|
recurrenceId: 'recurrence456',
|
|
},
|
|
}
|
|
|
|
eventRender({ event, el })
|
|
|
|
expect(el.dataset.isNew).toEqual(undefined)
|
|
expect(el.dataset.objectId).toEqual('object123')
|
|
expect(el.dataset.recurrenceId).toEqual('recurrence456')
|
|
})
|
|
|
|
it('should add extended properties from the event to the dataset of the dom element - new event', () => {
|
|
const el = document.createElement('div')
|
|
const event = {
|
|
source: null,
|
|
extendedProps: {},
|
|
}
|
|
|
|
eventRender({ event, el })
|
|
|
|
expect(el.dataset.isNew).toEqual('yes')
|
|
expect(el.dataset.objectId).toEqual(undefined)
|
|
expect(el.dataset.recurrenceId).toEqual(undefined)
|
|
})
|
|
|
|
it('should add an alarm bell icon if event has an alarm - dark', () => {
|
|
const fcTime = document.createElement('span')
|
|
fcTime.classList.add('fc-time')
|
|
fcTime.appendChild(document.createTextNode('2pm'))
|
|
const fcTitle = document.createElement('span')
|
|
fcTitle.classList.add('fc-title')
|
|
fcTitle.appendChild(document.createTextNode('Title 123'))
|
|
|
|
const fcContent = document.createElement('div')
|
|
fcContent.classList.add('fc-content')
|
|
fcContent.appendChild(fcTime)
|
|
fcContent.appendChild(fcTitle)
|
|
|
|
const el = document.createElement('div')
|
|
el.classList.add('fc-event-nc-alarms')
|
|
el.appendChild(fcContent)
|
|
|
|
const event = {
|
|
source: {},
|
|
extendedProps: {
|
|
objectId: 'object123',
|
|
recurrenceId: 'recurrence456',
|
|
darkText: true,
|
|
percent: 100,
|
|
},
|
|
}
|
|
|
|
eventRender({ event, el })
|
|
|
|
expect(el.outerHTML).toEqual('<div class="fc-event-nc-alarms" data-object-id="object123" data-recurrence-id="recurrence456"><div class="fc-content"><span class="fc-time">2pm</span><span class="fc-title">Title 123</span><span class="icon-event-reminder icon-event-reminder--dark"></span></div></div>')
|
|
})
|
|
|
|
it('should add an alarm bell icon if event has an alarm - light', () => {
|
|
const fcTime = document.createElement('span')
|
|
fcTime.classList.add('fc-time')
|
|
fcTime.appendChild(document.createTextNode('2pm'))
|
|
const fcTitle = document.createElement('span')
|
|
fcTitle.classList.add('fc-title')
|
|
fcTitle.appendChild(document.createTextNode('Title 123'))
|
|
|
|
const fcContent = document.createElement('div')
|
|
fcContent.classList.add('fc-content')
|
|
fcContent.appendChild(fcTime)
|
|
fcContent.appendChild(fcTitle)
|
|
|
|
const el = document.createElement('div')
|
|
el.classList.add('fc-event-nc-alarms')
|
|
el.appendChild(fcContent)
|
|
|
|
const event = {
|
|
source: {},
|
|
extendedProps: {
|
|
objectId: 'object123',
|
|
recurrenceId: 'recurrence456',
|
|
darkText: false,
|
|
percent: 100,
|
|
},
|
|
}
|
|
|
|
eventRender({ event, el })
|
|
|
|
expect(el.outerHTML).toEqual('<div class="fc-event-nc-alarms" data-object-id="object123" data-recurrence-id="recurrence456"><div class="fc-content"><span class="fc-time">2pm</span><span class="fc-title">Title 123</span><span class="icon-event-reminder icon-event-reminder--light"></span></div></div>')
|
|
})
|
|
|
|
// TODO: fix me later
|
|
// it('should prepend a checkbox before tasks - incomplete', () => {
|
|
// const fcTime = document.createElement('span')
|
|
// fcTime.classList.add('fc-time')
|
|
// fcTime.appendChild(document.createTextNode('2pm'))
|
|
// const fcTitle = document.createElement('span')
|
|
// fcTitle.classList.add('fc-title')
|
|
// fcTitle.appendChild(document.createTextNode('Title 123'))
|
|
//
|
|
// const fcContent = document.createElement('div')
|
|
// fcContent.classList.add('fc-content')
|
|
// fcContent.appendChild(fcTime)
|
|
// fcContent.appendChild(fcTitle)
|
|
//
|
|
// const el = document.createElement('div')
|
|
// el.classList.add('fc-event-nc-task')
|
|
// el.appendChild(fcContent)
|
|
//
|
|
// const event = {
|
|
// source: {},
|
|
// extendedProps: {
|
|
// objectId: 'object123',
|
|
// recurrenceId: 'recurrence456',
|
|
// darkText: false,
|
|
// percent: 50,
|
|
// },
|
|
// }
|
|
//
|
|
// eventRender({ event, el })
|
|
//
|
|
// expect(el.outerHTML).toEqual('<div class="fc-event-nc-task" data-object-id="object123" data-recurrence-id="recurrence456"><div class="fc-content"><span class="icon-event-task icon-event-task--light"></span><span class="fc-time">2pm</span><span class="fc-title">Title 123</span></div></div>')
|
|
// })
|
|
//
|
|
// it('should prepend a checkbox before tasks - completed', () => {
|
|
// const fcTime = document.createElement('span')
|
|
// fcTime.classList.add('fc-time')
|
|
// fcTime.appendChild(document.createTextNode('2pm'))
|
|
// const fcTitle = document.createElement('span')
|
|
// fcTitle.classList.add('fc-title')
|
|
// fcTitle.appendChild(document.createTextNode('Title 123'))
|
|
//
|
|
// const fcContent = document.createElement('div')
|
|
// fcContent.classList.add('fc-content')
|
|
// fcContent.appendChild(fcTime)
|
|
// fcContent.appendChild(fcTitle)
|
|
//
|
|
// const el = document.createElement('div')
|
|
// el.classList.add('fc-event-nc-task')
|
|
// el.appendChild(fcContent)
|
|
//
|
|
// const event = {
|
|
// source: {},
|
|
// extendedProps: {
|
|
// objectId: 'object123',
|
|
// recurrenceId: 'recurrence456',
|
|
// darkText: false,
|
|
// percent: 100,
|
|
// },
|
|
// }
|
|
//
|
|
// eventRender({ event, el })
|
|
//
|
|
// expect(el.outerHTML).toEqual('<div class="fc-event-nc-task" data-object-id="object123" data-recurrence-id="recurrence456"><div class="fc-content"><span class="icon-event-task icon-event-task--light icon-event-task--checked--light"></span><span class="fc-time">2pm</span><span class="fc-title">Title 123</span></div></div>')
|
|
// })
|
|
|
|
})
|