describe('aspectRatio', function() { beforeEach(function() { affix('#cal'); }); describe('when default settings are used', function() { beforeEach(function() { $('#cal').width(675); $('#cal').fullCalendar(); }); it('fc-content should use the ratio 1:35 to set height', function() { var height = $('.fc-content').height(); expect(height).toEqual(500); }); it('fc-content should have width of div', function() { var width = $('.fc-content').width(); expect(width).toEqual(675); }); }); describe('when initializing the aspectRatio', function() { describe('to 2', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: 2 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should set the height to width sizes very close to ratio of 2', function() { var width = $('.fc-content').width(); var height = $('.fc-content').height(); var ratio = Math.round(width / height * 100); expect(ratio).toEqual(200); }); }); describe('to 1', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: 1 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should set the height to width sizes very close to ratio of 2', function() { var width = $('.fc-content').width(); var height = $('.fc-content').height(); var ratio = Math.round(width / height * 100); expect(ratio).toEqual(100); }); }); describe('to less than 0.5', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: 0.4 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should set the height to width ratio to 0.5', function() { var width = $('.fc-content').width(); var height = $('.fc-content').height(); var ratio = Math.round(width / height * 100); expect(ratio).toEqual(50); }); }); describe('to negative', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: -2 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should set the height to width ratio to 0.5', function() { var width = $('.fc-content').width(); var height = $('.fc-content').height(); var ratio = Math.round(width / height * 100); expect(ratio).toEqual(50); }); }); describe('to zero', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: 0 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should set the height to width ratio to 0.5', function() { var width = $('.fc-content').width(); var height = $('.fc-content').height(); var ratio = Math.round(width / height * 100); expect(ratio).toEqual(50); }); }); describe('to very large', function() { beforeEach(function() { $('#cal').width(1000); $('#cal').fullCalendar({ aspectRatio: 4000 }); }); it('should not change the width', function() { var width = $('.fc-content').width(); expect(width).toEqual(1000); }); it('should cause rows to be natural height', function() { var actualHeight = $('.fc-content').height(); $('tr.fc-week td:first-child > div').css('min-height', '').css('background', 'red'); var naturalHeight = $('.fc-content').height(); expect(actualHeight).toEqual(naturalHeight); }); }); }); });