From f449d2ad517df4a083333d304cb62d98ef10d34f Mon Sep 17 00:00:00 2001 From: "Rong Sen Ng (motss)" Date: Mon, 6 Dec 2021 01:39:02 +0800 Subject: [PATCH] test: fix tests after updating DatePickerDialogBase to use ShadowDOM --- src/__demo__/demo-app.ts | 18 ++++- .../app-date-picker-dialog.test.ts | 74 ++++++++++++------- .../app-datepicker-dialog-base.test.ts | 53 +++++++++++++ .../date-picker-dialog-base.ts | 22 +++--- src/date-picker-dialog/date-picker-dialog.ts | 2 - src/date-picker-input/date-picker-input.ts | 2 - src/helpers/date-picker-slot.ts | 4 + 7 files changed, 130 insertions(+), 45 deletions(-) create mode 100644 src/__tests__/date-picker-dialog/app-datepicker-dialog-base.test.ts diff --git a/src/__demo__/demo-app.ts b/src/__demo__/demo-app.ts index 0e4c11a1..57c2fbfa 100644 --- a/src/__demo__/demo-app.ts +++ b/src/__demo__/demo-app.ts @@ -1,6 +1,7 @@ +import '../date-picker-dialog/app-date-picker-dialog-base.js'; import '../date-picker-dialog/app-date-picker-dialog.js'; -import '../date-picker-input/app-date-picker-input.js'; import '../date-picker-input-surface/app-date-picker-input-surface.js'; +import '../date-picker-input/app-date-picker-input.js'; import '../date-picker/app-date-picker.js'; import { css, html } from 'lit'; @@ -8,7 +9,8 @@ import { customElement, queryAsync } from 'lit/decorators.js'; import type { AppDatePicker } from '../date-picker/app-date-picker.js'; import type { AppDatePickerDialog } from '../date-picker-dialog/app-date-picker-dialog.js'; -import { appDatePickerDialogName } from '../date-picker-dialog/constants.js'; +import type { AppDatePickerDialogBase } from '../date-picker-dialog/app-date-picker-dialog-base.js'; +import { appDatePickerDialogBaseName, appDatePickerDialogName } from '../date-picker-dialog/constants.js'; import type { AppDatePickerInput } from '../date-picker-input/app-date-picker-input.js'; import { appDatePickerInputName } from '../date-picker-input/constants.js'; import { RootElement } from '../root-element/root-element.js'; @@ -17,6 +19,7 @@ import type { CustomEventDetail } from '../typings.js'; @customElement('demo-app') export class DemoApp extends RootElement { @queryAsync(appDatePickerDialogName) dialog!: Promise; + @queryAsync(appDatePickerDialogBaseName) dialogBase!: Promise; @queryAsync(appDatePickerInputName) input!: Promise; public static override styles = [ @@ -83,6 +86,11 @@ export class DemoApp extends RootElement { + + +
Test
+
+ @@ -95,6 +103,12 @@ export class DemoApp extends RootElement { dialog?.show(); } + async #showDialogBase() { + const dialog = await this.dialogBase; + + dialog?.show(); + } + #dateUpdated({ detail, currentTarget, diff --git a/src/__tests__/date-picker-dialog/app-date-picker-dialog.test.ts b/src/__tests__/date-picker-dialog/app-date-picker-dialog.test.ts index 29abb941..f1f49313 100644 --- a/src/__tests__/date-picker-dialog/app-date-picker-dialog.test.ts +++ b/src/__tests__/date-picker-dialog/app-date-picker-dialog.test.ts @@ -54,8 +54,8 @@ describe(appDatePickerDialogName, () => { }); const datePickerDialogDialog = - el.querySelector(elementSelectors.datePickerDialogDialog); - const datePicker = el.querySelector(elementSelectors.datePicker); + el.query(elementSelectors.datePickerDialogDialog); + const datePicker = el.query(elementSelectors.datePicker); await datePicker?.updateComplete; await datePickerDialogDialog?.updateComplete; @@ -66,9 +66,9 @@ describe(appDatePickerDialogName, () => { expect(el.valueAsDate).deep.equal(new Date(value)); expect(el.valueAsNumber).equal(+new Date(value)); - const dialogActionReset = el.querySelector(elementSelectors.dialogActionReset); - const dialogActionCancel = el.querySelector(elementSelectors.dialogActionCancel); - const dialogActionSet = el.querySelector(elementSelectors.dialogActionSet); + const dialogActionReset = el.query(elementSelectors.dialogActionReset); + const dialogActionCancel = el.query(elementSelectors.dialogActionCancel); + const dialogActionSet = el.query(elementSelectors.dialogActionSet); expect(dialogActionReset).exist; expect(dialogActionCancel).exist; @@ -87,21 +87,22 @@ describe(appDatePickerDialogName, () => { >(el, 'opened'); const datePickerDialogDialog = - el.querySelector(elementSelectors.datePickerDialogDialog); - let datePicker = el.querySelector(elementSelectors.datePicker); + el.query(elementSelectors.datePickerDialogDialog); + let datePicker = datePickerDialogDialog?.query(elementSelectors.datePicker); expect(datePickerDialogDialog).exist; - expect(datePicker).exist; + expect(datePicker).not.exist; expect(datePickerDialogDialog?.hasAttribute('open')).false; el.show(); const opened = await openedTask; + await datePicker?.updateComplete; + await datePickerDialogDialog?.updateComplete; await el.updateComplete; - expect(opened).not.undefined; - - datePicker = el.querySelector(elementSelectors.datePicker); + datePicker = el.query(elementSelectors.datePicker); + expect(opened).not.undefined; expect(datePickerDialogDialog?.hasAttribute('open')).true; const closedTask = eventOnce< @@ -112,12 +113,13 @@ describe(appDatePickerDialogName, () => { el.hide(); const closed = await closedTask; + await datePicker?.updateComplete; + await datePickerDialogDialog?.updateComplete; await el.updateComplete; - expect(closed).not.undefined; - - datePicker = el.querySelector(elementSelectors.datePicker); + datePicker = el.query(elementSelectors.datePicker); + expect(closed).not.undefined; expect(datePickerDialogDialog?.hasAttribute('open')).false; }); @@ -154,26 +156,39 @@ describe(appDatePickerDialogName, () => { CustomEvent >(el, 'opened'); - const datePickerDialogDialog = - el.querySelector(elementSelectors.datePickerDialogDialog); - const datePicker = - el.querySelector(elementSelectors.datePicker); - const monthCalendar = + let datePickerDialogDialog = + el.query(elementSelectors.datePickerDialogDialog); + let datePicker = + datePickerDialogDialog?.query(elementSelectors.datePicker); + let monthCalendar = datePicker?.query(elementSelectors.monthCalendar); - const dialogActionReset = - el.querySelector