diff --git a/src/main/js/Widgets/DateTimePicker.js b/src/main/js/Widgets/DateTimePicker.js index 8e5a84e..0ba85a9 100644 --- a/src/main/js/Widgets/DateTimePicker.js +++ b/src/main/js/Widgets/DateTimePicker.js @@ -254,9 +254,9 @@ class DateTimePicker { // Setup year dropdown html = '
'; - const startYear = this.date.getFullYear() - 10; - const endYear = this.date.getFullYear() + 10; - for (let i = startYear; i < endYear; i++) { + const startYear = this.date.getFullYear() - 100; + const endYear = this.date.getFullYear(); + for (let i = startYear; i <= endYear; i++) { html += `
${i}
`; } html += '
'; diff --git a/src/test/js/Widgets.DateTimePickerTest.js b/src/test/js/Widgets.DateTimePickerTest.js index cb1541c..84a0219 100644 --- a/src/test/js/Widgets.DateTimePickerTest.js +++ b/src/test/js/Widgets.DateTimePickerTest.js @@ -67,4 +67,17 @@ describe('DateTimePicker class tests', function() { assert.equal(this.dateWidget.previousMonth().monthDisplay.getDataAttribute('month'), 3); // April assert.equal(this.dateWidget.previousMonth().monthDisplay.getDataAttribute('month'), 2); // March }); + + it('year-range', function() { + // check that the list starts from a 100 years before the current year and make + // sure it contains each year after that. Total 100 entries should be present. + var newDate = new Date(); + newDate.setYear(2000); + this.dateWidget.setDate(newDate); + var startYear = new Date().getFullYear() - 100; + this.dateWidget.years.getChildren().each(function (year) { + assert.equal(year.getDataAttribute('year'), startYear++) + }); + assert(this.dateWidget.years.getChildren().length, 100); + }); });