diff --git a/lib/moment-range.js b/lib/moment-range.js index 5ef79f1..576b76b 100644 --- a/lib/moment-range.js +++ b/lib/moment-range.js @@ -37,6 +37,10 @@ export class DateRange { this.start = s || s === 0 ? moment(s) : moment(-8640000000000000); this.end = e || e === 0 ? moment(e) : moment(8640000000000000); + + if (this.end.isBefore(this.start)) { + [this.start, this.end] = [this.end, this.start]; + } } adjacent(other) { diff --git a/lib/moment-range_test.js b/lib/moment-range_test.js index 0ebdb8b..d9770d3 100644 --- a/lib/moment-range_test.js +++ b/lib/moment-range_test.js @@ -167,6 +167,15 @@ describe('DateRange', function() { expect(r.start.isSame(quarterStart)).to.be(true); expect(r.end.isSame(quarterEnd)).to.be(true); }); + + it('should automatically sort the range start and end date', function() { + const a = moment('2005-01-01'); + const b = moment('2008-12-20'); + const r = moment.range(b, a); + + expect(r.start.isSame(a)).to.be(true); + expect(r.end.isSame(b)).to.be(true); + }); }); describe('#adjacent', function() {