Skip to content
This repository was archived by the owner on Sep 12, 2024. It is now read-only.

Commit c89fd9f

Browse files
committed
Merge pull request #10 from sensortower/add-more-specs
Add more specs
2 parents c1bb4e5 + c812585 commit c89fd9f

File tree

4 files changed

+117
-3
lines changed

4 files changed

+117
-3
lines changed

docs/index.md

+15-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ minDate: [null, 'exclusive'] // date defaults to moment().subtract(2, 'years')
110110

111111
### maxDate
112112

113-
Sets a minimum possible date a user can select.
113+
Sets a maximum possible date a user can select.
114114

115115
```javascript
116116
maxDate: [(moment.js-compatible object), ('inclusive' | 'exclusive' | 'expanded')]
@@ -353,6 +353,20 @@ parentElement: document.querySelector('.daterangepicker-container')
353353
```
354354

355355

356+
### forceUpdate
357+
358+
```javascript
359+
forceUpdate: Boolean
360+
```
361+
362+
Immediately invokes `callback` after constructing daterangepicker.
363+
364+
Default:
365+
```javascript
366+
forceUpdate: false
367+
```
368+
369+
356370
## Customization
357371

358372
Source code is available on [GitHub](https://github.com/sensortower/daterangepicker) for you to fork or monkey-patch. Here are some starting points:

src/scripts/daterangepicker/date-range-picker-view.coffee

-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,6 @@ class DateRangePickerView
9090

9191
setPeriod: (period) ->
9292
@period(period)
93-
# @startDate(@startDate())
94-
# @endDate(@endDate())
9593
@expanded(true)
9694

9795
setDateRange: (dateRange) =>

test/config.coffee

+5
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ describe 'Config', ->
4747
c = new Config({ callback: 'invalid' })
4848
, /Invalid callback/)
4949

50+
describe 'forceUpdate', ->
51+
it 'defaults to undefined', () ->
52+
c = new Config({})
53+
assert.equal(c.forceUpdate, undefined)
54+
5055
describe 'ranges', ->
5156
it 'works with a valid object', () ->
5257
new Config({

test/date-range-picker-view.coffee

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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

Comments
 (0)