|
|
@@ -0,0 +1,86 @@
|
|
|
+
|
|
|
+describe('dayRender', function() {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ affix('#cal');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('is triggered upon initialization of a view, with correct parameters', function() {
|
|
|
+ var options = {
|
|
|
+ defaultView: 'month',
|
|
|
+ weekMode: 'fixed',
|
|
|
+ defaultDate: '2014-05-01',
|
|
|
+ dayRender: function(date, cell) {
|
|
|
+ expect(moment.isMoment(date)).toEqual(true);
|
|
|
+ expect(date.hasTime()).toEqual(false);
|
|
|
+ expect(date.format()).toEqual(cell.data('date'));
|
|
|
+ expect(cell).toBeInDOM();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ spyOn(options, 'dayRender').and.callThrough();
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
+ expect(options.dayRender.calls.count()).toEqual(42);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('is called when view is changed', function() {
|
|
|
+ var options = {
|
|
|
+ defaultView: 'month',
|
|
|
+ weekMode: 'fixed',
|
|
|
+ defaultDate: '2014-05-01',
|
|
|
+ dayRender: function(date, cell) { }
|
|
|
+ };
|
|
|
+
|
|
|
+ spyOn(options, 'dayRender').and.callThrough();
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
+ options.dayRender.calls.reset();
|
|
|
+ $('#cal').fullCalendar('changeView', 'basicWeek');
|
|
|
+ expect(options.dayRender.calls.count()).toEqual(7);
|
|
|
+ });
|
|
|
+
|
|
|
+ // called if the date is navigated to a different visible range
|
|
|
+ it('is called when view is changed', function() {
|
|
|
+ var options = {
|
|
|
+ defaultView: 'basicWeek',
|
|
|
+ defaultDate: '2014-05-01',
|
|
|
+ dayRender: function(date, cell) { }
|
|
|
+ };
|
|
|
+
|
|
|
+ spyOn(options, 'dayRender').and.callThrough();
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
+ options.dayRender.calls.reset();
|
|
|
+ $('#cal').fullCalendar('gotoDate', '2014-05-04'); // a day in the next week
|
|
|
+ expect(options.dayRender.calls.count()).toEqual(7);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('won\'t be called when date is navigated but remains in the current visible range', function() {
|
|
|
+ var options = {
|
|
|
+ defaultView: 'basicWeek',
|
|
|
+ defaultDate: '2014-05-01',
|
|
|
+ dayRender: function(date, cell) { }
|
|
|
+ };
|
|
|
+
|
|
|
+ spyOn(options, 'dayRender').and.callThrough();
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
+ options.dayRender.calls.reset();
|
|
|
+ $('#cal').fullCalendar('gotoDate', '2014-05-02'); // a day in the same week
|
|
|
+ expect(options.dayRender.calls.count()).toEqual(0);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('allows you to modify the element', function() {
|
|
|
+ var options = {
|
|
|
+ defaultView: 'month',
|
|
|
+ weekMode: 'fixed',
|
|
|
+ defaultDate: '2014-05-01',
|
|
|
+ dayRender: function(date, cell) {
|
|
|
+ if (date.isSame('2014-05-01')) {
|
|
|
+ cell.addClass('mycustomclass');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
+ expect($('#cal td[data-date="2014-05-01"]')).toHaveClass('mycustomclass');
|
|
|
+ });
|
|
|
+
|
|
|
+});
|