| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- describe('validRange', function() {
- pushOptions({
- defaultDate: '2017-06-08'
- });
- describe('when one week view', function() { // a view that has date-alignment by default
- pushOptions({
- defaultView: 'agendaWeek' // default range = 2017-06-04 - 2017-06-11
- });
- describe('when default range is partially before validRange', function() {
- pushOptions({
- validRange: { start: '2017-06-06' }
- });
- it('allows full renderRange but restricts activeRange', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-06-04', '2017-06-11');
- ViewDateUtils.expectActiveRange('2017-06-06', '2017-06-11');
- });
- });
- describe('when default range is partially after validRange', function() {
- pushOptions({
- validRange: { end: '2017-06-05' }
- });
- it('allows full renderRange but restricts activeRange', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-06-04', '2017-06-11');
- ViewDateUtils.expectActiveRange('2017-06-04', '2017-06-05');
- });
- });
- describe('when default range is completely before validRange', function() {
- pushOptions({
- validRange: { start: '2017-06-14' } // a Wednesday
- });
- it('initializes at earliest partially visible week', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-06-11', '2017-06-18');
- ViewDateUtils.expectActiveRange('2017-06-14', '2017-06-18');
- });
- });
- describe('when default range is completely before validRange', function() {
- pushOptions({
- validRange: { end: '2017-05-24' } // a Wednesday
- });
- it('initializes at latest partially visible week', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-05-21', '2017-05-28');
- ViewDateUtils.expectActiveRange('2017-05-21', '2017-05-24');
- });
- });
- describe('when validRange is a function', function() {
- var nowInput = '2017-06-09T06:00:00';
- it('receives the nowDate, timezoneless', function() {
- var validRangeSpy = spyOnCalendarCallback('validRange', function(date) {
- expect(moment.isMoment(date)).toBe(true);
- expect(date).toEqualMoment(nowInput);
- });
- initCalendar({
- now: nowInput
- });
- expect(validRangeSpy).toHaveBeenCalled();
- });
- /* getNow() always returns ambig zone for some reason. intentional?
- xit('receives the nowDate, with UTC timezone', function() {
- var validRangeSpy = spyOnCalendarCallback('validRange', function(date) {
- expect(date).toEqualMoment(nowInput + 'Z');
- });
- initCalendar({
- timezone: 'UTC',
- now: nowInput
- });
- expect(validRangeSpy).toHaveBeenCalled();
- });*/
- it('can return a range object with strings', function() {
- var validRangeSpy = spyOnCalendarCallback('validRange', function() {
- return { start: '2017-06-06' };
- });
- initCalendar();
- expect(validRangeSpy).toHaveBeenCalled();
- ViewDateUtils.expectRenderRange('2017-06-04', '2017-06-11');
- ViewDateUtils.expectActiveRange('2017-06-06', '2017-06-11');
- });
- it('can return a range object with moments', function() {
- var validRangeSpy = spyOnCalendarCallback('validRange', function() {
- return { start: $.fullCalendar.moment.parseZone('2017-06-06') };
- });
- initCalendar();
- expect(validRangeSpy).toHaveBeenCalled();
- ViewDateUtils.expectRenderRange('2017-06-04', '2017-06-11');
- ViewDateUtils.expectActiveRange('2017-06-06', '2017-06-11');
- });
- it('does not cause side effects when given date is mutated', function() {
- initCalendar({
- now: nowInput,
- validRange: function(nowDate) {
- nowDate.add(2, 'years');
- }
- });
- expect(currentCalendar.getNow().year()).toBe(2017);
- });
- });
- });
- describe('when a three-day view', function() { // a view with no alignment
- pushOptions({
- defaultView: 'agenda',
- duration: { days: 3 }
- });
- describe('when default range is completely before of validRange', function() {
- pushOptions({
- validRange: { start: '2017-06-14' }
- });
- it('renders earliest three valid days', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-06-14', '2017-06-17');
- ViewDateUtils.expectActiveRange('2017-06-14', '2017-06-17');
- });
- });
- describe('when default range is completely after validRange', function() {
- pushOptions({
- validRange: { end: '2017-05-31' }
- });
- it('renders latest possible valid day and two invalid days', function() {
- initCalendar();
- ViewDateUtils.expectRenderRange('2017-05-30', '2017-06-02');
- ViewDateUtils.expectActiveRange('2017-05-30', '2017-05-31');
- });
- });
- });
- });
|