2019-04-03 10:39:24 +00:00
|
|
|
describe('Component vnCalendar', () => {
|
2019-04-03 09:34:58 +00:00
|
|
|
let controller;
|
|
|
|
let $element;
|
|
|
|
|
2019-09-13 14:09:14 +00:00
|
|
|
beforeEach(angular.mock.module('vnCore', $translateProvider => {
|
|
|
|
$translateProvider.translations('en', {});
|
|
|
|
}));
|
2019-04-03 09:34:58 +00:00
|
|
|
|
|
|
|
beforeEach(inject(($compile, $rootScope) => {
|
|
|
|
$element = $compile(`<vn-calendar></vn-calendar`)($rootScope);
|
|
|
|
controller = $element.controller('vnCalendar');
|
|
|
|
controller.defaultDate = new Date();
|
|
|
|
}));
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
$element.remove();
|
|
|
|
});
|
|
|
|
|
2019-04-03 10:39:24 +00:00
|
|
|
describe('data() setter', () => {
|
2019-04-03 09:34:58 +00:00
|
|
|
it(`should set an array of events and convert string dates to string object, then call repaint() method`, () => {
|
|
|
|
spyOn(controller, 'repaint');
|
|
|
|
|
|
|
|
let currentDate = new Date().toString();
|
2019-04-03 10:39:24 +00:00
|
|
|
controller.data = [
|
2019-06-26 11:35:38 +00:00
|
|
|
{dated: currentDate, name: 'Event 1'},
|
|
|
|
{dated: currentDate, name: 'Event 2'},
|
2019-04-03 09:34:58 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
expect(controller.events[0].dated instanceof Object).toBeTruthy();
|
|
|
|
expect(controller.repaint).toHaveBeenCalledWith();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('moveNext()', () => {
|
|
|
|
it(`should shift to the next n months, then emit a 'moveNext' event`, () => {
|
|
|
|
spyOn(controller, 'emit');
|
|
|
|
const currentMonth = controller.defaultDate.getMonth();
|
|
|
|
let nextMonth = currentMonth + 1;
|
|
|
|
|
|
|
|
controller.moveNext(1);
|
|
|
|
|
|
|
|
expect(controller.defaultDate.getMonth()).toEqual(nextMonth);
|
|
|
|
expect(controller.emit).toHaveBeenCalledWith('moveNext');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('movePrevious()', () => {
|
|
|
|
it(`should shift to the previous n months, then emit a 'movePrevious' event`, () => {
|
|
|
|
spyOn(controller, 'emit');
|
|
|
|
const currentMonth = controller.defaultDate.getMonth();
|
|
|
|
let previousMonth = currentMonth - 1;
|
|
|
|
|
|
|
|
controller.movePrevious(1);
|
|
|
|
|
|
|
|
expect(controller.defaultDate.getMonth()).toEqual(previousMonth);
|
|
|
|
expect(controller.emit).toHaveBeenCalledWith('movePrevious');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('select()', () => {
|
|
|
|
it(`should return the selected element, then emit a 'selection' event`, () => {
|
|
|
|
spyOn(controller, 'emit');
|
2019-10-01 11:45:43 +00:00
|
|
|
const dated = new Date();
|
|
|
|
const days = [{dated}];
|
2019-04-03 09:34:58 +00:00
|
|
|
controller.days = days;
|
|
|
|
controller.select(0);
|
|
|
|
|
2019-10-01 11:45:43 +00:00
|
|
|
let res = {
|
|
|
|
$days: [dated],
|
|
|
|
$type: 'day'
|
|
|
|
};
|
|
|
|
|
|
|
|
expect(controller.emit).toHaveBeenCalledWith('selection', res);
|
2019-04-03 09:34:58 +00:00
|
|
|
});
|
|
|
|
});
|
2019-09-26 08:43:06 +00:00
|
|
|
|
|
|
|
describe('renderStyle()', () => {
|
|
|
|
it(`should normalize CSS attributes`, () => {
|
|
|
|
const result = controller.renderStyle({
|
|
|
|
backgroundColor: 'red'
|
|
|
|
});
|
|
|
|
|
|
|
|
expect(result['background-color']).toEqual('red');
|
|
|
|
});
|
|
|
|
});
|
2019-04-03 09:34:58 +00:00
|
|
|
});
|
|
|
|
|