diff --git a/packages/calendar/src/LionCalendar.js b/packages/calendar/src/LionCalendar.js index 32ddf6fb0..1c45b313c 100644 --- a/packages/calendar/src/LionCalendar.js +++ b/packages/calendar/src/LionCalendar.js @@ -374,7 +374,9 @@ export class LionCalendar extends LocalizeMixin(LitElement) { } __disableDatesChanged() { - this.__ensureValidCentralDate(); + if (this.__connectedCallbackDone) { + this.__ensureValidCentralDate(); + } } __dateSelectedByUser(selectedDate) { diff --git a/packages/calendar/test/lion-calendar.test.js b/packages/calendar/test/lion-calendar.test.js index c1998eefc..60aac2cef 100644 --- a/packages/calendar/test/lion-calendar.test.js +++ b/packages/calendar/test/lion-calendar.test.js @@ -306,6 +306,22 @@ describe('', () => { expect(new DayObject(d).isDisabled).to.equal(shouldBeDisabled); }); }); + + it('does not prevent initializing "centralDate" from "selectedDate" when today is disabled', async () => { + const clock = sinon.useFakeTimers({ now: new Date('2019/06/03').getTime() }); + + const el = await fixture(html` + day.getDate() === 3} + > + `); + const elObj = new CalendarObject(el); + expect(isSameDate(el.centralDate, new Date('2001/01/08'))).to.be.true; + expect(elObj.activeMonthAndYear).to.equal('January 2001'); + + clock.restore(); + }); }); });