|
| 1 | +describe 'DateRangePickerView', -> |
| 2 | + $('.secondary-section').after($("<div id='daterangepickerview-test-container' style='display: none'></div>")) |
| 3 | + parentSelector = '#daterangepickerview-test-container' |
| 4 | + |
| 5 | + DateRangePickerView = (options = {}) -> |
| 6 | + new $.fn.daterangepicker.DateRangePickerView($.extend(options, { |
| 7 | + parentElement: parentSelector |
| 8 | + })) |
| 9 | + |
| 10 | + describe '#calendars', -> |
| 11 | + it 'defaults to two', -> |
| 12 | + d = new DateRangePickerView() |
| 13 | + assert.equal(d.calendars().length, 2) |
| 14 | + |
| 15 | + it 'has single calendar when single is set', -> |
| 16 | + d = new DateRangePickerView({ |
| 17 | + single: true |
| 18 | + }) |
| 19 | + assert.equal(d.calendars().length, 1) |
| 20 | + |
| 21 | + describe 'forceUpdate', -> |
| 22 | + it 'does not invoke callback on creation when undefined', -> |
| 23 | + called = false |
| 24 | + cb = -> called = true |
| 25 | + d = new DateRangePickerView({ |
| 26 | + callback: cb |
| 27 | + }) |
| 28 | + assert.isFalse(called) |
| 29 | + it 'invokes callback on creation when true', -> |
| 30 | + called = false |
| 31 | + cb = -> called = true |
| 32 | + d = new DateRangePickerView({ |
| 33 | + callback: cb, |
| 34 | + forceUpdate: true |
| 35 | + }) |
| 36 | + assert.isTrue(called) |
| 37 | + |
| 38 | + describe '#isActivePeriod', -> |
| 39 | + it 'defaults to day when no custom periods defined', -> |
| 40 | + d = new DateRangePickerView({}) |
| 41 | + assert.isTrue(d.isActivePeriod('day')) |
| 42 | + it 'defaults to first period when custom periods defined', -> |
| 43 | + d = new DateRangePickerView({ |
| 44 | + periods: ['month', 'week', 'day'] |
| 45 | + }) |
| 46 | + assert.isTrue(d.isActivePeriod('month')) |
| 47 | + |
| 48 | + describe '#setPeriod', -> |
| 49 | + it 'works with valid period', -> |
| 50 | + d = new DateRangePickerView({}) |
| 51 | + d.setPeriod('week') |
| 52 | + assert.equal(d.isActivePeriod('week'), true) |
| 53 | + |
| 54 | + describe '#setDateRange #isActiveDateRange', -> |
| 55 | + it 'works with default ranges', -> |
| 56 | + d = new DateRangePickerView({}) |
| 57 | + range = d.ranges[0] |
| 58 | + assert.instanceOf(range, $.fn.daterangepicker.DateRange) |
| 59 | + d.setDateRange(range) |
| 60 | + assert.isTrue(d.isActiveDateRange(range)) |
| 61 | + it 'works with custom ranges', -> |
| 62 | + d = new DateRangePickerView({ |
| 63 | + ranges: { |
| 64 | + 'May 2015': [moment.utc('2015-05-01'), moment.utc('2015-05-31')] |
| 65 | + } |
| 66 | + }) |
| 67 | + range = d.ranges[0] |
| 68 | + assert.instanceOf(range, $.fn.daterangepicker.DateRange) |
| 69 | + d.setDateRange(range) |
| 70 | + assert.isTrue(d.isActiveDateRange(range)) |
| 71 | + |
| 72 | + describe 'open and closed states', -> |
| 73 | + it 'is not open by default', -> |
| 74 | + d = new DateRangePickerView({}) |
| 75 | + assert.isFalse(d.opened()) |
| 76 | + it 'works with opened flag', -> |
| 77 | + $(parentSelector).append($("<div id='open-test-anchor-one'></div>")) |
| 78 | + d = new DateRangePickerView({ |
| 79 | + opened: true, |
| 80 | + anchorElement: '#open-test-anchor-one' |
| 81 | + }) |
| 82 | + assert.isTrue(d.opened()) |
| 83 | + describe 'interaction methods', -> |
| 84 | + d = new DateRangePickerView({}) |
| 85 | + |
| 86 | + it 'works with #open', -> |
| 87 | + assert.isFalse(d.opened()) |
| 88 | + d.open() |
| 89 | + assert.isTrue(d.opened()) |
| 90 | + it 'works with #close', -> |
| 91 | + d.close() |
| 92 | + assert.isFalse(d.opened()) |
| 93 | + it 'works with #toggle', -> |
| 94 | + d.toggle() |
| 95 | + assert.isTrue(d.opened()) |
| 96 | + d.toggle() |
| 97 | + assert.isFalse(d.opened()) |
0 commit comments