From 1643379d74ae261c8fc1dd7d66e8ae02d2d4ab21 Mon Sep 17 00:00:00 2001 From: Mikhail Bashkirov Date: Tue, 4 Jun 2019 16:00:52 +0200 Subject: [PATCH] fix(calendar): init centralDate from selectedDate when today is disabled --- packages/calendar/src/LionCalendar.js | 4 +++- packages/calendar/test/lion-calendar.test.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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(); + }); }); });