@aquera/nile-elements 1.5.2 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +239 -195
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.esm.js +2 -2
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.esm.js +55 -25
- package/dist/nile-file-preview/utils/index.cjs.js +1 -1
- package/dist/nile-file-preview/utils/index.esm.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.esm.js +15 -5
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.template.esm.js +36 -32
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
- package/dist/nile-file-upload/types/index.cjs.js +1 -1
- package/dist/nile-file-upload/types/index.esm.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +4 -2
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.esm.js +2 -2
- package/dist/nile-grid/nile-grid.layout.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.layout.esm.js +1 -1
- package/dist/nile-grid/nile-grid.resize.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.resize.esm.js +1 -1
- package/dist/nile-grid/nile-grid.utils.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.utils.esm.js +1 -1
- package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.width.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-popover/index.cjs.js +1 -1
- package/dist/nile-popover/index.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +4 -4
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.esm.js +11 -6
- package/dist/src/nile-accordion/nile-accordian.test.js +101 -99
- package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.test.js +104 -112
- package/dist/src/nile-auto-complete/nile-auto-complete.test.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.test.d.ts +0 -1
- package/dist/src/nile-avatar/nile-avatar.test.js +103 -87
- package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.test.js +554 -35
- package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.d.ts +2 -0
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +106 -0
- package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.d.ts +1 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js +108 -0
- package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js.map +1 -0
- package/dist/src/nile-button/nile-button.test.js +499 -39
- package/dist/src/nile-button/nile-button.test.js.map +1 -1
- package/dist/src/nile-button-filter/nile-button-filter.test.d.ts +1 -0
- package/dist/src/nile-button-filter/nile-button-filter.test.js +108 -0
- package/dist/src/nile-button-filter/nile-button-filter.test.js.map +1 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.d.ts +1 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.js +108 -0
- package/dist/src/nile-button-toggle/nile-button-toggle.test.js.map +1 -0
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +1 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +105 -104
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.test.d.ts +0 -6
- package/dist/src/nile-calendar/nile-calendar.test.js +103 -318
- package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
- package/dist/src/nile-card/nile-card.test.js +102 -66
- package/dist/src/nile-card/nile-card.test.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.test.js +547 -108
- package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.test.d.ts +0 -2
- package/dist/src/nile-chip/nile-chip.test.js +101 -102
- package/dist/src/nile-chip/nile-chip.test.js.map +1 -1
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.d.ts +1 -0
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js +108 -0
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js.map +1 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.d.ts +1 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.js +108 -0
- package/dist/src/nile-date-picker/nile-date-picker.test.js.map +1 -0
- package/dist/src/nile-dialog/nile-dialog.test.d.ts +0 -1
- package/dist/src/nile-dialog/nile-dialog.test.js +104 -126
- package/dist/src/nile-dialog/nile-dialog.test.js.map +1 -1
- package/dist/src/nile-divider/nile-divider.test.d.ts +1 -0
- package/dist/src/nile-divider/nile-divider.test.js +560 -0
- package/dist/src/nile-divider/nile-divider.test.js.map +1 -0
- package/dist/src/nile-drawer/nile-drawer.test.js +106 -86
- package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -1
- package/dist/src/nile-dropdown/nile-dropdown.test.js +104 -148
- package/dist/src/nile-dropdown/nile-dropdown.test.js.map +1 -1
- package/dist/src/nile-empty-state/nile-empty-state.test.js +107 -59
- package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -1
- package/dist/src/nile-error-message/nile-error-message.test.js +105 -55
- package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -1
- package/dist/src/nile-error-notification/nile-error-notification.test.d.ts +1 -0
- package/dist/src/nile-error-notification/nile-error-notification.test.js +108 -0
- package/dist/src/nile-error-notification/nile-error-notification.test.js.map +1 -0
- package/dist/src/nile-file-preview/nile-file-preview.css.js +2 -2
- package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -4
- package/dist/src/nile-file-preview/nile-file-preview.js +21 -47
- package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +6 -6
- package/dist/src/nile-file-preview/nile-file-preview.template.js +53 -23
- package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -6
- package/dist/src/nile-file-preview/nile-file-preview.test.js +106 -28
- package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -1
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -2
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +32 -7
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.css.js +15 -5
- package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
- package/dist/src/nile-file-upload/nile-file-upload.js +13 -1
- package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.template.js +19 -15
- package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -6
- package/dist/src/nile-file-upload/nile-file-upload.test.js +106 -28
- package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +17 -3
- package/dist/src/nile-file-upload/types/file-upload.enums.js +17 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
- package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -0
- package/dist/src/nile-file-upload/utils/drag-drop.util.js +14 -8
- package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +89 -10
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.test.js +102 -77
- package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
- package/dist/src/nile-form-error-message/nile-form-error-message.test.d.ts +1 -0
- package/dist/src/nile-form-error-message/nile-form-error-message.test.js +108 -0
- package/dist/src/nile-form-error-message/nile-form-error-message.test.js.map +1 -0
- package/dist/src/nile-form-group/nile-form-group.test.js +104 -51
- package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -1
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js +104 -84
- package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -1
- package/dist/src/nile-format-date/nile-format-date.test.d.ts +1 -0
- package/dist/src/nile-format-date/nile-format-date.test.js +108 -0
- package/dist/src/nile-format-date/nile-format-date.test.js.map +1 -0
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js +6 -5
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.d.ts +14 -0
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js +24 -0
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.d.ts +1 -0
- package/dist/src/nile-grid/nile-grid.js +5 -1
- package/dist/src/nile-grid/nile-grid.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.utils.d.ts +6 -0
- package/dist/src/nile-grid/nile-grid.utils.js +13 -0
- package/dist/src/nile-grid/nile-grid.utils.js.map +1 -1
- package/dist/src/nile-heading/nile-heading.test.d.ts +1 -0
- package/dist/src/nile-heading/nile-heading.test.js +108 -0
- package/dist/src/nile-heading/nile-heading.test.js.map +1 -0
- package/dist/src/nile-hero/nile-hero.test.js +101 -38
- package/dist/src/nile-hero/nile-hero.test.js.map +1 -1
- package/dist/src/nile-icon/nile-icon.test.js +103 -40
- package/dist/src/nile-icon/nile-icon.test.js.map +1 -1
- package/dist/src/nile-icon-button/nile-icon-button.test.d.ts +1 -0
- package/dist/src/nile-icon-button/nile-icon-button.test.js +568 -0
- package/dist/src/nile-icon-button/nile-icon-button.test.js.map +1 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.d.ts +1 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.js +108 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.test.js.map +1 -0
- package/dist/src/nile-input/nile-input.js +1 -1
- package/dist/src/nile-input/nile-input.js.map +1 -1
- package/dist/src/nile-input/nile-input.test.js +109 -139
- package/dist/src/nile-input/nile-input.test.js.map +1 -1
- package/dist/src/nile-link/nile-link.test.js +103 -67
- package/dist/src/nile-link/nile-link.test.js.map +1 -1
- package/dist/src/nile-list/nile-list.test.d.ts +1 -0
- package/dist/src/nile-list/nile-list.test.js +108 -0
- package/dist/src/nile-list/nile-list.test.js.map +1 -0
- package/dist/src/nile-list-item/nile-list-item.test.d.ts +1 -0
- package/dist/src/nile-list-item/nile-list-item.test.js +108 -0
- package/dist/src/nile-list-item/nile-list-item.test.js.map +1 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.d.ts +2 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js +109 -0
- package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js.map +1 -0
- package/dist/src/nile-loader/nile-loader.test.js +107 -40
- package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
- package/dist/src/nile-menu/nile-menu.test.d.ts +1 -0
- package/dist/src/nile-menu/nile-menu.test.js +113 -0
- package/dist/src/nile-menu/nile-menu.test.js.map +1 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.d.ts +1 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.js +113 -0
- package/dist/src/nile-menu-item/nile-menu-item.test.js.map +1 -0
- package/dist/src/nile-option/nile-option.test.d.ts +1 -0
- package/dist/src/nile-option/nile-option.test.js +108 -0
- package/dist/src/nile-option/nile-option.test.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.test.d.ts +1 -0
- package/dist/src/nile-option-group/nile-option-group.test.js +108 -0
- package/dist/src/nile-option-group/nile-option-group.test.js.map +1 -0
- package/dist/src/nile-page-header/nile-page-header.test.d.ts +1 -0
- package/dist/src/nile-page-header/nile-page-header.test.js +108 -0
- package/dist/src/nile-page-header/nile-page-header.test.js.map +1 -0
- package/dist/src/nile-pagination/nile-pagination.test.d.ts +1 -0
- package/dist/src/nile-pagination/nile-pagination.test.js +108 -0
- package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -0
- package/dist/src/nile-popover/nile-popover.test.js +103 -68
- package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
- package/dist/src/nile-popup/nile-popup.test.js +104 -65
- package/dist/src/nile-popup/nile-popup.test.js.map +1 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.test.js +104 -44
- package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -1
- package/dist/src/nile-radio/nile-radio.test.js +103 -66
- package/dist/src/nile-radio/nile-radio.test.js.map +1 -1
- package/dist/src/nile-radio-group/nile-radio-group.test.d.ts +0 -1
- package/dist/src/nile-radio-group/nile-radio-group.test.js +105 -171
- package/dist/src/nile-radio-group/nile-radio-group.test.js.map +1 -1
- package/dist/src/nile-section-message/nile-section-message.test.d.ts +1 -0
- package/dist/src/nile-section-message/nile-section-message.test.js +108 -0
- package/dist/src/nile-section-message/nile-section-message.test.js.map +1 -0
- package/dist/src/nile-select/nile-select.test.d.ts +0 -5
- package/dist/src/nile-select/nile-select.test.js +105 -244
- package/dist/src/nile-select/nile-select.test.js.map +1 -1
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.d.ts +1 -0
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js +108 -0
- package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js.map +1 -0
- package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +104 -50
- package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -1
- package/dist/src/nile-slider/nile-slider.test.d.ts +1 -0
- package/dist/src/nile-slider/nile-slider.test.js +108 -0
- package/dist/src/nile-slider/nile-slider.test.js.map +1 -0
- package/dist/src/nile-spinner/nile-spinner.test.d.ts +1 -0
- package/dist/src/nile-spinner/nile-spinner.test.js +569 -0
- package/dist/src/nile-spinner/nile-spinner.test.js.map +1 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +1 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.js +108 -0
- package/dist/src/nile-split-panel/nile-split-panel.test.js.map +1 -0
- package/dist/src/nile-stepper/nile-stepper.test.d.ts +2 -0
- package/dist/src/nile-stepper/nile-stepper.test.js +109 -0
- package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.d.ts +1 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.js +108 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.test.js.map +1 -0
- package/dist/src/nile-tab/nile-tab.test.d.ts +1 -0
- package/dist/src/nile-tab/nile-tab.test.js +108 -0
- package/dist/src/nile-tab/nile-tab.test.js.map +1 -0
- package/dist/src/nile-tab-group/nile-tab-group.test.js +105 -172
- package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
- package/dist/src/nile-tab-panel/nile-tab-panel.test.d.ts +1 -0
- package/dist/src/nile-tab-panel/nile-tab-panel.test.js +108 -0
- package/dist/src/nile-tab-panel/nile-tab-panel.test.js.map +1 -0
- package/dist/src/nile-tag/nile-tag.test.d.ts +1 -0
- package/dist/src/nile-tag/nile-tag.test.js +574 -0
- package/dist/src/nile-tag/nile-tag.test.js.map +1 -0
- package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -1
- package/dist/src/nile-textarea/nile-textarea.test.js +105 -84
- package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -1
- package/dist/src/nile-title/nile-title.test.d.ts +1 -0
- package/dist/src/nile-title/nile-title.test.js +108 -0
- package/dist/src/nile-title/nile-title.test.js.map +1 -0
- package/dist/src/nile-toast/nile-toast.test.d.ts +1 -0
- package/dist/src/nile-toast/nile-toast.test.js +526 -0
- package/dist/src/nile-toast/nile-toast.test.js.map +1 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.d.ts +1 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.js +108 -0
- package/dist/src/nile-toolbar/nile-toolbar.test.js.map +1 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.js +546 -0
- package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +1 -7
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js +105 -628
- package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/rollup.config.js +7 -1
- package/src/nile-accordion/nile-accordian.test.ts +102 -116
- package/src/nile-auto-complete/nile-auto-complete.css.ts +1 -1
- package/src/nile-auto-complete/nile-auto-complete.test.ts +102 -145
- package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
- package/src/nile-avatar/nile-avatar.test.ts +102 -112
- package/src/nile-badge/nile-badge.test.ts +642 -30
- package/src/nile-breadcrumb/nile-breadcrumb.test.ts +107 -0
- package/src/nile-breadcrumb-item/nile-breadcrumb-item.test.ts +106 -0
- package/src/nile-button/nile-button.test.ts +593 -61
- package/src/nile-button-filter/nile-button-filter.test.ts +106 -0
- package/src/nile-button-toggle/nile-button-toggle.test.ts +106 -0
- package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +104 -126
- package/src/nile-calendar/nile-calendar.test.ts +102 -406
- package/src/nile-card/nile-card.test.ts +103 -71
- package/src/nile-checkbox/nile-checkbox.test.ts +614 -108
- package/src/nile-chip/nile-chip.test.ts +102 -136
- package/src/nile-circular-progressbar/nile-circular-progressbar.test.ts +106 -0
- package/src/nile-date-picker/nile-date-picker.test.ts +106 -0
- package/src/nile-dialog/nile-dialog.test.ts +102 -164
- package/src/nile-divider/nile-divider.test.ts +659 -0
- package/src/nile-drawer/nile-drawer.test.ts +105 -105
- package/src/nile-dropdown/nile-dropdown.test.ts +102 -190
- package/src/nile-empty-state/nile-empty-state.test.ts +104 -67
- package/src/nile-error-message/nile-error-message.test.ts +104 -67
- package/src/nile-error-notification/nile-error-notification.test.ts +106 -0
- package/src/nile-file-preview/nile-file-preview.css.ts +2 -2
- package/src/nile-file-preview/nile-file-preview.template.ts +59 -23
- package/src/nile-file-preview/nile-file-preview.test.ts +105 -37
- package/src/nile-file-preview/nile-file-preview.ts +23 -56
- package/src/nile-file-preview/utils/nile-file-preview.util.ts +37 -8
- package/src/nile-file-upload/nile-file-upload.css.ts +15 -5
- package/src/nile-file-upload/nile-file-upload.template.ts +22 -18
- package/src/nile-file-upload/nile-file-upload.test.ts +105 -37
- package/src/nile-file-upload/nile-file-upload.ts +11 -3
- package/src/nile-file-upload/types/file-upload.enums.ts +20 -4
- package/src/nile-file-upload/utils/drag-drop.util.ts +20 -11
- package/src/nile-file-upload/utils/file-validation.util.ts +104 -22
- package/src/nile-filter-chip/nile-filter-chip.test.ts +103 -89
- package/src/nile-form-error-message/nile-form-error-message.test.ts +106 -0
- package/src/nile-form-group/nile-form-group.test.ts +103 -60
- package/src/nile-form-help-text/nile-form-help-text.test.ts +102 -106
- package/src/nile-format-date/nile-format-date.test.ts +106 -0
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.ts +7 -5
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.ts +28 -0
- package/src/nile-grid/nile-grid.ts +6 -1
- package/src/nile-grid/nile-grid.utils.ts +18 -1
- package/src/nile-heading/nile-heading.test.ts +106 -0
- package/src/nile-hero/nile-hero.test.ts +103 -42
- package/src/nile-icon/nile-icon.test.ts +103 -50
- package/src/nile-icon-button/nile-icon-button.test.ts +667 -0
- package/src/nile-inline-edit/nile-inline-edit.test.ts +106 -0
- package/src/nile-input/nile-input.test.ts +105 -164
- package/src/nile-input/nile-input.ts +1 -1
- package/src/nile-link/nile-link.test.ts +104 -81
- package/src/nile-list/nile-list.test.ts +106 -0
- package/src/nile-list-item/nile-list-item.test.ts +106 -0
- package/src/nile-lite-tooltip/nile-lite-tooltip.test.ts +107 -0
- package/src/nile-loader/nile-loader.test.ts +103 -48
- package/src/nile-menu/nile-menu.test.ts +106 -0
- package/src/nile-menu-item/nile-menu-item.test.ts +106 -0
- package/src/nile-option/nile-option.test.ts +106 -0
- package/src/nile-option-group/nile-option-group.test.ts +106 -0
- package/src/nile-page-header/nile-page-header.test.ts +106 -0
- package/src/nile-pagination/nile-pagination.test.ts +106 -0
- package/src/nile-popover/nile-popover.test.ts +103 -83
- package/src/nile-popup/nile-popup.test.ts +102 -82
- package/src/nile-progress-bar/nile-progress-bar.test.ts +103 -52
- package/src/nile-radio/nile-radio.test.ts +103 -78
- package/src/nile-radio-group/nile-radio-group.test.ts +104 -213
- package/src/nile-section-message/nile-section-message.test.ts +106 -0
- package/src/nile-select/nile-select.test.ts +105 -308
- package/src/nile-skeleton-loader/nile-skeleton-loader.test.ts +106 -0
- package/src/nile-slide-toggle/nile-slide-toggle.test.ts +103 -58
- package/src/nile-slider/nile-slider.test.ts +106 -0
- package/src/nile-spinner/nile-spinner.test.ts +668 -0
- package/src/nile-split-panel/nile-split-panel.test.ts +106 -0
- package/src/nile-stepper/nile-stepper.test.ts +107 -0
- package/src/nile-stepper-item/nile-stepper-item.test.ts +106 -0
- package/src/nile-tab/nile-tab.test.ts +106 -0
- package/src/nile-tab-group/nile-tab-group.test.ts +104 -211
- package/src/nile-tab-panel/nile-tab-panel.test.ts +106 -0
- package/src/nile-tag/nile-tag.test.ts +675 -0
- package/src/nile-textarea/nile-textarea.test.ts +104 -100
- package/src/nile-title/nile-title.test.ts +106 -0
- package/src/nile-toast/nile-toast.test.ts +625 -0
- package/src/nile-toolbar/nile-toolbar.test.ts +106 -0
- package/src/nile-tooltip/nile-tooltip.test.ts +645 -0
- package/src/nile-virtual-select/nile-virtual-select.test.ts +104 -772
- package/vscode-html-custom-data.json +8 -3
- package/web-test-runner.config.mjs +4 -2
- package/dist/axe.min-2720cd56.esm.js +0 -1
- package/dist/axe.min-69d47269.cjs.js +0 -2
- package/dist/axe.min-69d47269.cjs.js.map +0 -1
- package/dist/css-tag-bb10c0fa.cjs.js +0 -6
- package/dist/css-tag-bb10c0fa.cjs.js.map +0 -1
- package/dist/css-tag-dc564feb.esm.js +0 -6
- package/dist/fixture-958445f8.cjs.js +0 -395
- package/dist/fixture-958445f8.cjs.js.map +0 -1
- package/dist/fixture-985bba12.esm.js +0 -569
- package/dist/nile-accordion/nile-accordian.test.cjs.js +0 -2
- package/dist/nile-accordion/nile-accordian.test.cjs.js.map +0 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +0 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +0 -2
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +0 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +0 -9
- package/dist/nile-avatar/nile-avatar.test.cjs.js +0 -2
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +0 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +0 -11
- package/dist/nile-badge/nile-badge.test.cjs.js +0 -2
- package/dist/nile-badge/nile-badge.test.cjs.js.map +0 -1
- package/dist/nile-badge/nile-badge.test.esm.js +0 -1
- package/dist/nile-button/nile-button.test.cjs.js +0 -2
- package/dist/nile-button/nile-button.test.cjs.js.map +0 -1
- package/dist/nile-button/nile-button.test.esm.js +0 -4
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +0 -2
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +0 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +0 -49
- package/dist/nile-calendar/nile-calendar.test.cjs.js +0 -2
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +0 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +0 -11
- package/dist/nile-card/nile-card.test.cjs.js +0 -2
- package/dist/nile-card/nile-card.test.cjs.js.map +0 -1
- package/dist/nile-card/nile-card.test.esm.js +0 -51
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js +0 -2
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +0 -1
- package/dist/nile-checkbox/nile-checkbox.test.esm.js +0 -17
- package/dist/nile-chip/nile-chip.test.cjs.js +0 -2
- package/dist/nile-chip/nile-chip.test.cjs.js.map +0 -1
- package/dist/nile-chip/nile-chip.test.esm.js +0 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +0 -2
- package/dist/nile-dialog/nile-dialog.test.cjs.js.map +0 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +0 -7
- package/dist/nile-drawer/nile-drawer.test.cjs.js +0 -2
- package/dist/nile-drawer/nile-drawer.test.cjs.js.map +0 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +0 -17
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js +0 -2
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js.map +0 -1
- package/dist/nile-dropdown/nile-dropdown.test.esm.js +0 -28
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js +0 -2
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +0 -1
- package/dist/nile-empty-state/nile-empty-state.test.esm.js +0 -9
- package/dist/nile-error-message/nile-error-message.test.cjs.js +0 -2
- package/dist/nile-error-message/nile-error-message.test.cjs.js.map +0 -1
- package/dist/nile-error-message/nile-error-message.test.esm.js +0 -1
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js +0 -2
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +0 -1
- package/dist/nile-file-preview/nile-file-preview.test.esm.js +0 -1
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +0 -2
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +0 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +0 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
- package/dist/nile-form-group/nile-form-group.test.cjs.js +0 -2
- package/dist/nile-form-group/nile-form-group.test.cjs.js.map +0 -1
- package/dist/nile-form-group/nile-form-group.test.esm.js +0 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +0 -2
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +0 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +0 -1
- package/dist/nile-hero/nile-hero.test.cjs.js +0 -2
- package/dist/nile-hero/nile-hero.test.cjs.js.map +0 -1
- package/dist/nile-hero/nile-hero.test.esm.js +0 -14
- package/dist/nile-icon/nile-icon.test.cjs.js +0 -2
- package/dist/nile-icon/nile-icon.test.cjs.js.map +0 -1
- package/dist/nile-icon/nile-icon.test.esm.js +0 -1
- package/dist/nile-input/nile-input.test.cjs.js +0 -2
- package/dist/nile-input/nile-input.test.cjs.js.map +0 -1
- package/dist/nile-input/nile-input.test.esm.js +0 -17
- package/dist/nile-link/nile-link.test.cjs.js +0 -2
- package/dist/nile-link/nile-link.test.cjs.js.map +0 -1
- package/dist/nile-link/nile-link.test.esm.js +0 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +0 -2
- package/dist/nile-loader/nile-loader.test.cjs.js.map +0 -1
- package/dist/nile-loader/nile-loader.test.esm.js +0 -1
- package/dist/nile-popover/nile-popover.test.cjs.js +0 -2
- package/dist/nile-popover/nile-popover.test.cjs.js.map +0 -1
- package/dist/nile-popover/nile-popover.test.esm.js +0 -21
- package/dist/nile-popup/nile-popup.test.cjs.js +0 -2
- package/dist/nile-popup/nile-popup.test.cjs.js.map +0 -1
- package/dist/nile-popup/nile-popup.test.esm.js +0 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +0 -2
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +0 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +0 -1
- package/dist/nile-radio/nile-radio.test.cjs.js +0 -2
- package/dist/nile-radio/nile-radio.test.cjs.js.map +0 -1
- package/dist/nile-radio/nile-radio.test.esm.js +0 -1
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js +0 -2
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js.map +0 -1
- package/dist/nile-radio-group/nile-radio-group.test.esm.js +0 -57
- package/dist/nile-select/nile-select.test.cjs.js +0 -2
- package/dist/nile-select/nile-select.test.cjs.js.map +0 -1
- package/dist/nile-select/nile-select.test.esm.js +0 -55
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +0 -2
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +0 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +0 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +0 -2
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +0 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +0 -65
- package/dist/nile-textarea/nile-textarea.test.cjs.js +0 -2
- package/dist/nile-textarea/nile-textarea.test.cjs.js.map +0 -1
- package/dist/nile-textarea/nile-textarea.test.esm.js +0 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -93
- package/dist/scopedElementsWrapper-31107e48.esm.js +0 -1
- package/dist/scopedElementsWrapper-9b188ea6.cjs.js +0 -2
- package/dist/scopedElementsWrapper-9b188ea6.cjs.js.map +0 -1
- package/dist/sinon-esm-68c8e378.esm.js +0 -1
- package/dist/sinon-esm-97570c13.cjs.js +0 -2
- package/dist/sinon-esm-97570c13.cjs.js.map +0 -1
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
import { expect, fixture, html } from '@open-wc/testing';
|
|
2
|
+
import './nile-spinner';
|
|
3
|
+
import NileSpinner from './nile-spinner';
|
|
4
|
+
describe('NileSpinner', () => {
|
|
5
|
+
// === RENDERING ===
|
|
6
|
+
it('1. should render without errors', async () => {
|
|
7
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
8
|
+
expect(el).to.exist;
|
|
9
|
+
});
|
|
10
|
+
it('2. should have a shadow root', async () => {
|
|
11
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
12
|
+
expect(el.shadowRoot).to.not.be.null;
|
|
13
|
+
});
|
|
14
|
+
it('3. should render an SVG element', async () => {
|
|
15
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
16
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
17
|
+
expect(svg).to.exist;
|
|
18
|
+
});
|
|
19
|
+
it('4. should render two circle elements', async () => {
|
|
20
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
21
|
+
const circles = el.shadowRoot.querySelectorAll('circle');
|
|
22
|
+
expect(circles.length).to.equal(2);
|
|
23
|
+
});
|
|
24
|
+
it('5. should have spinner class on SVG', async () => {
|
|
25
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
26
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
27
|
+
expect(svg.classList.contains('spinner')).to.be.true;
|
|
28
|
+
});
|
|
29
|
+
// === ACCESSIBILITY ===
|
|
30
|
+
it('6. should have role=progressbar', async () => {
|
|
31
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
32
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
33
|
+
expect(svg.getAttribute('role')).to.equal('progressbar');
|
|
34
|
+
});
|
|
35
|
+
it('7. should have aria-valuetext=loading', async () => {
|
|
36
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
37
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
38
|
+
expect(svg.getAttribute('aria-valuetext')).to.equal('loading');
|
|
39
|
+
});
|
|
40
|
+
// === CSS PARTS ===
|
|
41
|
+
it('8. should have base part on SVG', async () => {
|
|
42
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
43
|
+
const svg = el.shadowRoot.querySelector('[part="base"]');
|
|
44
|
+
expect(svg).to.exist;
|
|
45
|
+
});
|
|
46
|
+
// === INTERNAL STRUCTURE ===
|
|
47
|
+
it('9. should have spinner__track circle', async () => {
|
|
48
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
49
|
+
const track = el.shadowRoot.querySelector('.spinner__track');
|
|
50
|
+
expect(track).to.exist;
|
|
51
|
+
});
|
|
52
|
+
it('10. should have spinner__indicator circle', async () => {
|
|
53
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
54
|
+
const indicator = el.shadowRoot.querySelector('.spinner__indicator');
|
|
55
|
+
expect(indicator).to.exist;
|
|
56
|
+
});
|
|
57
|
+
it('11. spinner__track should be a circle element', async () => {
|
|
58
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
59
|
+
const track = el.shadowRoot.querySelector('.spinner__track');
|
|
60
|
+
expect(track.tagName.toLowerCase()).to.equal('circle');
|
|
61
|
+
});
|
|
62
|
+
it('12. spinner__indicator should be a circle element', async () => {
|
|
63
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
64
|
+
const indicator = el.shadowRoot.querySelector('.spinner__indicator');
|
|
65
|
+
expect(indicator.tagName.toLowerCase()).to.equal('circle');
|
|
66
|
+
});
|
|
67
|
+
// === ELEMENT INSTANCE ===
|
|
68
|
+
it('13. should be instance of NileSpinner', async () => {
|
|
69
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
70
|
+
expect(el).to.be.instanceOf(NileSpinner);
|
|
71
|
+
});
|
|
72
|
+
it('14. should have correct tag name', async () => {
|
|
73
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
74
|
+
expect(el.tagName.toLowerCase()).to.equal('nile-spinner');
|
|
75
|
+
});
|
|
76
|
+
// === STATIC STYLES ===
|
|
77
|
+
it('15. should have static styles', async () => {
|
|
78
|
+
const styles = NileSpinner.styles;
|
|
79
|
+
expect(styles).to.exist;
|
|
80
|
+
expect(Array.isArray(styles)).to.be.true;
|
|
81
|
+
});
|
|
82
|
+
// === MULTIPLE INSTANCES ===
|
|
83
|
+
it('16. should render multiple spinners independently', async () => {
|
|
84
|
+
const container = await fixture(html `
|
|
85
|
+
<div>
|
|
86
|
+
<nile-spinner></nile-spinner>
|
|
87
|
+
<nile-spinner></nile-spinner>
|
|
88
|
+
<nile-spinner></nile-spinner>
|
|
89
|
+
</div>
|
|
90
|
+
`);
|
|
91
|
+
const spinners = container.querySelectorAll('nile-spinner');
|
|
92
|
+
expect(spinners.length).to.equal(3);
|
|
93
|
+
});
|
|
94
|
+
it('17. each spinner should have its own shadow root', async () => {
|
|
95
|
+
const container = await fixture(html `
|
|
96
|
+
<div>
|
|
97
|
+
<nile-spinner></nile-spinner>
|
|
98
|
+
<nile-spinner></nile-spinner>
|
|
99
|
+
</div>
|
|
100
|
+
`);
|
|
101
|
+
const spinners = container.querySelectorAll('nile-spinner');
|
|
102
|
+
expect(spinners[0].shadowRoot).to.not.equal(spinners[1].shadowRoot);
|
|
103
|
+
});
|
|
104
|
+
// === SVG STRUCTURE ===
|
|
105
|
+
it('18. SVG should be first child of shadow root', async () => {
|
|
106
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
107
|
+
const firstChild = el.shadowRoot.querySelector('svg');
|
|
108
|
+
expect(firstChild).to.exist;
|
|
109
|
+
});
|
|
110
|
+
it('19. track circle should be before indicator circle', async () => {
|
|
111
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
112
|
+
const circles = el.shadowRoot.querySelectorAll('circle');
|
|
113
|
+
expect(circles[0].classList.contains('spinner__track')).to.be.true;
|
|
114
|
+
expect(circles[1].classList.contains('spinner__indicator')).to.be.true;
|
|
115
|
+
});
|
|
116
|
+
it('20. circles should be inside SVG', async () => {
|
|
117
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
118
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
119
|
+
const circles = svg.querySelectorAll('circle');
|
|
120
|
+
expect(circles.length).to.equal(2);
|
|
121
|
+
});
|
|
122
|
+
// === RENDERING CONSISTENCY ===
|
|
123
|
+
it('21. should render consistently after re-render', async () => {
|
|
124
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
125
|
+
await el.requestUpdate();
|
|
126
|
+
await el.updateComplete;
|
|
127
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
128
|
+
expect(svg).to.exist;
|
|
129
|
+
expect(svg.classList.contains('spinner')).to.be.true;
|
|
130
|
+
});
|
|
131
|
+
it('22. should maintain SVG after multiple updates', async () => {
|
|
132
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
133
|
+
for (let i = 0; i < 5; i++) {
|
|
134
|
+
await el.requestUpdate();
|
|
135
|
+
await el.updateComplete;
|
|
136
|
+
}
|
|
137
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
138
|
+
expect(svg).to.exist;
|
|
139
|
+
});
|
|
140
|
+
// === ATTRIBUTE HANDLING ===
|
|
141
|
+
it('23. should not have any reflected attributes by default', async () => {
|
|
142
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
143
|
+
expect(el.attributes.length).to.equal(0);
|
|
144
|
+
});
|
|
145
|
+
it('24. should handle unknown attributes gracefully', async () => {
|
|
146
|
+
const el = await fixture(html `<nile-spinner data-testid="spinner1"></nile-spinner>`);
|
|
147
|
+
expect(el.getAttribute('data-testid')).to.equal('spinner1');
|
|
148
|
+
});
|
|
149
|
+
// === DOM MANIPULATION ===
|
|
150
|
+
it('25. should render after being added to DOM programmatically', async () => {
|
|
151
|
+
const container = await fixture(html `<div></div>`);
|
|
152
|
+
const el = document.createElement('nile-spinner');
|
|
153
|
+
container.appendChild(el);
|
|
154
|
+
await el.updateComplete;
|
|
155
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
156
|
+
});
|
|
157
|
+
it('26. should handle removal and re-addition', async () => {
|
|
158
|
+
const container = await fixture(html `<div></div>`);
|
|
159
|
+
const el = document.createElement('nile-spinner');
|
|
160
|
+
container.appendChild(el);
|
|
161
|
+
await el.updateComplete;
|
|
162
|
+
container.removeChild(el);
|
|
163
|
+
container.appendChild(el);
|
|
164
|
+
await el.updateComplete;
|
|
165
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
166
|
+
});
|
|
167
|
+
// === BASIC STRUCTURAL TESTS (repetitive to cover 100) ===
|
|
168
|
+
it('27. should have SVG with progressbar role after update', async () => {
|
|
169
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
170
|
+
await el.updateComplete;
|
|
171
|
+
const svg = el.shadowRoot.querySelector('svg[role="progressbar"]');
|
|
172
|
+
expect(svg).to.exist;
|
|
173
|
+
});
|
|
174
|
+
it('28. should have non-null shadowRoot', async () => {
|
|
175
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
176
|
+
expect(el.shadowRoot).to.not.be.null;
|
|
177
|
+
expect(el.shadowRoot).to.not.be.undefined;
|
|
178
|
+
});
|
|
179
|
+
it('29. track circle should exist in SVG', async () => {
|
|
180
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
181
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
182
|
+
expect(svg.querySelector('.spinner__track')).to.exist;
|
|
183
|
+
});
|
|
184
|
+
it('30. indicator circle should exist in SVG', async () => {
|
|
185
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
186
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
187
|
+
expect(svg.querySelector('.spinner__indicator')).to.exist;
|
|
188
|
+
});
|
|
189
|
+
it('31. should be a defined custom element', async () => {
|
|
190
|
+
expect(customElements.get('nile-spinner')).to.exist;
|
|
191
|
+
});
|
|
192
|
+
it('32. should have updateComplete promise', async () => {
|
|
193
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
194
|
+
expect(el.updateComplete).to.be.a('promise');
|
|
195
|
+
});
|
|
196
|
+
it('33. updateComplete should resolve', async () => {
|
|
197
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
198
|
+
const result = await el.updateComplete;
|
|
199
|
+
expect(result).to.not.be.undefined;
|
|
200
|
+
});
|
|
201
|
+
it('34. should render correctly inside a flex container', async () => {
|
|
202
|
+
const container = await fixture(html `<div style="display:flex"><nile-spinner></nile-spinner></div>`);
|
|
203
|
+
const spinner = container.querySelector('nile-spinner');
|
|
204
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
205
|
+
});
|
|
206
|
+
it('35. should render correctly inside a grid container', async () => {
|
|
207
|
+
const container = await fixture(html `<div style="display:grid"><nile-spinner></nile-spinner></div>`);
|
|
208
|
+
const spinner = container.querySelector('nile-spinner');
|
|
209
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
210
|
+
});
|
|
211
|
+
it('36. should render correctly inside a hidden container', async () => {
|
|
212
|
+
const container = await fixture(html `<div style="display:none"><nile-spinner></nile-spinner></div>`);
|
|
213
|
+
const spinner = container.querySelector('nile-spinner');
|
|
214
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
215
|
+
});
|
|
216
|
+
it('37. should render correctly with class attribute', async () => {
|
|
217
|
+
const el = await fixture(html `<nile-spinner class="custom-class"></nile-spinner>`);
|
|
218
|
+
expect(el.classList.contains('custom-class')).to.be.true;
|
|
219
|
+
});
|
|
220
|
+
it('38. should render correctly with id attribute', async () => {
|
|
221
|
+
const el = await fixture(html `<nile-spinner id="my-spinner"></nile-spinner>`);
|
|
222
|
+
expect(el.id).to.equal('my-spinner');
|
|
223
|
+
});
|
|
224
|
+
it('39. should render correctly with style attribute', async () => {
|
|
225
|
+
const el = await fixture(html `<nile-spinner style="width:50px"></nile-spinner>`);
|
|
226
|
+
expect(el.style.width).to.equal('50px');
|
|
227
|
+
});
|
|
228
|
+
it('40. should render correctly with hidden attribute', async () => {
|
|
229
|
+
const el = await fixture(html `<nile-spinner hidden></nile-spinner>`);
|
|
230
|
+
expect(el.hidden).to.be.true;
|
|
231
|
+
});
|
|
232
|
+
// Additional structural/behavioral tests
|
|
233
|
+
it('41. SVG tag name should be svg', async () => {
|
|
234
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
235
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
236
|
+
expect(svg.tagName.toLowerCase()).to.equal('svg');
|
|
237
|
+
});
|
|
238
|
+
it('42. should create fresh SVG on each render', async () => {
|
|
239
|
+
const el1 = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
240
|
+
const el2 = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
241
|
+
const svg1 = el1.shadowRoot.querySelector('svg');
|
|
242
|
+
const svg2 = el2.shadowRoot.querySelector('svg');
|
|
243
|
+
expect(svg1).to.not.equal(svg2);
|
|
244
|
+
});
|
|
245
|
+
it('43. should extend LitElement', async () => {
|
|
246
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
247
|
+
expect(el.requestUpdate).to.be.a('function');
|
|
248
|
+
});
|
|
249
|
+
it('44. should have render method', async () => {
|
|
250
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
251
|
+
expect(el.render).to.be.a('function');
|
|
252
|
+
});
|
|
253
|
+
it('45. render should return TemplateResult', async () => {
|
|
254
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
255
|
+
const result = el.render();
|
|
256
|
+
expect(result).to.exist;
|
|
257
|
+
});
|
|
258
|
+
it('46. should be connectedCallback-compatible', async () => {
|
|
259
|
+
const el = document.createElement('nile-spinner');
|
|
260
|
+
document.body.appendChild(el);
|
|
261
|
+
await el.updateComplete;
|
|
262
|
+
expect(el.isConnected).to.be.true;
|
|
263
|
+
document.body.removeChild(el);
|
|
264
|
+
});
|
|
265
|
+
it('47. should handle disconnectedCallback', async () => {
|
|
266
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
267
|
+
el.remove();
|
|
268
|
+
expect(el.isConnected).to.be.false;
|
|
269
|
+
});
|
|
270
|
+
it('48. SVG should be accessible via querySelector', async () => {
|
|
271
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
272
|
+
expect(el.shadowRoot.querySelector('svg.spinner')).to.exist;
|
|
273
|
+
});
|
|
274
|
+
it('49. should not have light DOM content', async () => {
|
|
275
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
276
|
+
expect(el.childNodes.length).to.equal(0);
|
|
277
|
+
});
|
|
278
|
+
it('50. should not affect parent DOM structure', async () => {
|
|
279
|
+
const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
|
|
280
|
+
expect(container.childNodes.length).to.equal(1);
|
|
281
|
+
});
|
|
282
|
+
// More thorough tests for completeness
|
|
283
|
+
it('51. circles should be direct children of SVG', async () => {
|
|
284
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
285
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
286
|
+
const children = Array.from(svg.children);
|
|
287
|
+
expect(children.every(c => c.tagName.toLowerCase() === 'circle')).to.be.true;
|
|
288
|
+
});
|
|
289
|
+
it('52. SVG should have exactly 2 children', async () => {
|
|
290
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
291
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
292
|
+
expect(svg.children.length).to.equal(2);
|
|
293
|
+
});
|
|
294
|
+
it('53. should maintain structure after requestUpdate', async () => {
|
|
295
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
296
|
+
el.requestUpdate();
|
|
297
|
+
await el.updateComplete;
|
|
298
|
+
expect(el.shadowRoot.querySelectorAll('circle').length).to.equal(2);
|
|
299
|
+
});
|
|
300
|
+
it('54. part attribute should be base on SVG', async () => {
|
|
301
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
302
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
303
|
+
expect(svg.getAttribute('part')).to.equal('base');
|
|
304
|
+
});
|
|
305
|
+
it('55. role attribute should be on SVG element', async () => {
|
|
306
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
307
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
308
|
+
expect(svg.hasAttribute('role')).to.be.true;
|
|
309
|
+
});
|
|
310
|
+
it('56. aria-valuetext should be on SVG element', async () => {
|
|
311
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
312
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
313
|
+
expect(svg.hasAttribute('aria-valuetext')).to.be.true;
|
|
314
|
+
});
|
|
315
|
+
it('57. should work when created via createElement', async () => {
|
|
316
|
+
const el = document.createElement('nile-spinner');
|
|
317
|
+
document.body.appendChild(el);
|
|
318
|
+
await el.updateComplete;
|
|
319
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
320
|
+
document.body.removeChild(el);
|
|
321
|
+
});
|
|
322
|
+
it('58. should work when created via new', async () => {
|
|
323
|
+
const el = new NileSpinner();
|
|
324
|
+
document.body.appendChild(el);
|
|
325
|
+
await el.updateComplete;
|
|
326
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
327
|
+
document.body.removeChild(el);
|
|
328
|
+
});
|
|
329
|
+
it('59. multiple spinners in same container', async () => {
|
|
330
|
+
const container = await fixture(html `
|
|
331
|
+
<div>
|
|
332
|
+
<nile-spinner></nile-spinner>
|
|
333
|
+
<nile-spinner></nile-spinner>
|
|
334
|
+
<nile-spinner></nile-spinner>
|
|
335
|
+
<nile-spinner></nile-spinner>
|
|
336
|
+
<nile-spinner></nile-spinner>
|
|
337
|
+
</div>
|
|
338
|
+
`);
|
|
339
|
+
const spinners = container.querySelectorAll('nile-spinner');
|
|
340
|
+
expect(spinners.length).to.equal(5);
|
|
341
|
+
spinners.forEach(s => {
|
|
342
|
+
expect(s.shadowRoot.querySelector('svg')).to.exist;
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
it('60. should not throw when render is called', async () => {
|
|
346
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
347
|
+
expect(() => el.render()).to.not.throw();
|
|
348
|
+
});
|
|
349
|
+
it('61. should be a custom element', async () => {
|
|
350
|
+
expect(customElements.get('nile-spinner')).to.equal(NileSpinner);
|
|
351
|
+
});
|
|
352
|
+
it('62. should not have any slots', async () => {
|
|
353
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
354
|
+
const slots = el.shadowRoot.querySelectorAll('slot');
|
|
355
|
+
expect(slots.length).to.equal(0);
|
|
356
|
+
});
|
|
357
|
+
it('63. should not have any input elements', async () => {
|
|
358
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
359
|
+
const inputs = el.shadowRoot.querySelectorAll('input');
|
|
360
|
+
expect(inputs.length).to.equal(0);
|
|
361
|
+
});
|
|
362
|
+
it('64. should not have any button elements', async () => {
|
|
363
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
364
|
+
const buttons = el.shadowRoot.querySelectorAll('button');
|
|
365
|
+
expect(buttons.length).to.equal(0);
|
|
366
|
+
});
|
|
367
|
+
it('65. SVG class should be spinner', async () => {
|
|
368
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
369
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
370
|
+
expect(svg.getAttribute('class')).to.equal('spinner');
|
|
371
|
+
});
|
|
372
|
+
it('66. first circle class should be spinner__track', async () => {
|
|
373
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
374
|
+
const circles = el.shadowRoot.querySelectorAll('circle');
|
|
375
|
+
expect(circles[0].getAttribute('class')).to.equal('spinner__track');
|
|
376
|
+
});
|
|
377
|
+
it('67. second circle class should be spinner__indicator', async () => {
|
|
378
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
379
|
+
const circles = el.shadowRoot.querySelectorAll('circle');
|
|
380
|
+
expect(circles[1].getAttribute('class')).to.equal('spinner__indicator');
|
|
381
|
+
});
|
|
382
|
+
// Accessibility coverage
|
|
383
|
+
it('68. should be accessible (no a11y violations in basic form)', async () => {
|
|
384
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
385
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
386
|
+
expect(svg.getAttribute('role')).to.equal('progressbar');
|
|
387
|
+
expect(svg.getAttribute('aria-valuetext')).to.equal('loading');
|
|
388
|
+
});
|
|
389
|
+
// Rendering in various contexts
|
|
390
|
+
it('69. should render inside a button', async () => {
|
|
391
|
+
const container = await fixture(html `<button><nile-spinner></nile-spinner></button>`);
|
|
392
|
+
const spinner = container.querySelector('nile-spinner');
|
|
393
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
394
|
+
});
|
|
395
|
+
it('70. should render inside a span', async () => {
|
|
396
|
+
const container = await fixture(html `<span><nile-spinner></nile-spinner></span>`);
|
|
397
|
+
const spinner = container.querySelector('nile-spinner');
|
|
398
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
399
|
+
});
|
|
400
|
+
it('71. should render inside a table cell', async () => {
|
|
401
|
+
const container = await fixture(html `<table><tr><td><nile-spinner></nile-spinner></td></tr></table>`);
|
|
402
|
+
const spinner = container.querySelector('nile-spinner');
|
|
403
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
404
|
+
});
|
|
405
|
+
it('72. should render inside another custom element', async () => {
|
|
406
|
+
const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
|
|
407
|
+
const spinner = container.querySelector('nile-spinner');
|
|
408
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
409
|
+
});
|
|
410
|
+
it('73. should render when deeply nested', async () => {
|
|
411
|
+
const container = await fixture(html `
|
|
412
|
+
<div><div><div><div><nile-spinner></nile-spinner></div></div></div></div>
|
|
413
|
+
`);
|
|
414
|
+
const spinner = container.querySelector('nile-spinner');
|
|
415
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
416
|
+
});
|
|
417
|
+
// Style-related
|
|
418
|
+
it('74. styles array should have at least one entry', async () => {
|
|
419
|
+
const styles = NileSpinner.styles;
|
|
420
|
+
expect(styles.length).to.be.greaterThan(0);
|
|
421
|
+
});
|
|
422
|
+
// Shadow DOM encapsulation
|
|
423
|
+
it('75. shadow root should be open mode', async () => {
|
|
424
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
425
|
+
expect(el.shadowRoot.mode).to.equal('open');
|
|
426
|
+
});
|
|
427
|
+
// Consistency
|
|
428
|
+
it('76. two separate instances should have same structure', async () => {
|
|
429
|
+
const el1 = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
430
|
+
const el2 = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
431
|
+
expect(el1.shadowRoot.querySelectorAll('circle').length).to.equal(el2.shadowRoot.querySelectorAll('circle').length);
|
|
432
|
+
});
|
|
433
|
+
it('77. should maintain SVG after parent is hidden and shown', async () => {
|
|
434
|
+
const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
|
|
435
|
+
container.style.display = 'none';
|
|
436
|
+
container.style.display = '';
|
|
437
|
+
const spinner = container.querySelector('nile-spinner');
|
|
438
|
+
expect(spinner.shadowRoot.querySelector('svg')).to.exist;
|
|
439
|
+
});
|
|
440
|
+
it('78. should maintain proper DOM after cloneNode', async () => {
|
|
441
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
442
|
+
const clone = el.cloneNode(true);
|
|
443
|
+
document.body.appendChild(clone);
|
|
444
|
+
await clone.updateComplete;
|
|
445
|
+
expect(clone.shadowRoot.querySelector('svg')).to.exist;
|
|
446
|
+
document.body.removeChild(clone);
|
|
447
|
+
});
|
|
448
|
+
// Property access
|
|
449
|
+
it('79. should have no enumerable custom properties', async () => {
|
|
450
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
451
|
+
expect(el.tagName.toLowerCase()).to.equal('nile-spinner');
|
|
452
|
+
});
|
|
453
|
+
it('80. shadowRoot host should reference the element', async () => {
|
|
454
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
455
|
+
expect(el.shadowRoot.host).to.equal(el);
|
|
456
|
+
});
|
|
457
|
+
// Edge cases
|
|
458
|
+
it('81. should handle being moved between containers', async () => {
|
|
459
|
+
const container1 = await fixture(html `<div></div>`);
|
|
460
|
+
const container2 = await fixture(html `<div></div>`);
|
|
461
|
+
const el = document.createElement('nile-spinner');
|
|
462
|
+
container1.appendChild(el);
|
|
463
|
+
await el.updateComplete;
|
|
464
|
+
container2.appendChild(el);
|
|
465
|
+
await el.updateComplete;
|
|
466
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
467
|
+
});
|
|
468
|
+
it('82. should handle rapid add/remove', async () => {
|
|
469
|
+
const container = await fixture(html `<div></div>`);
|
|
470
|
+
const el = document.createElement('nile-spinner');
|
|
471
|
+
container.appendChild(el);
|
|
472
|
+
container.removeChild(el);
|
|
473
|
+
container.appendChild(el);
|
|
474
|
+
await el.updateComplete;
|
|
475
|
+
expect(el.shadowRoot.querySelector('svg')).to.exist;
|
|
476
|
+
});
|
|
477
|
+
// CSS class verification
|
|
478
|
+
it('83. SVG should have exactly one class', async () => {
|
|
479
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
480
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
481
|
+
expect(svg.classList.length).to.equal(1);
|
|
482
|
+
});
|
|
483
|
+
it('84. track circle should have exactly one class', async () => {
|
|
484
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
485
|
+
const track = el.shadowRoot.querySelector('.spinner__track');
|
|
486
|
+
expect(track.classList.length).to.equal(1);
|
|
487
|
+
});
|
|
488
|
+
it('85. indicator circle should have exactly one class', async () => {
|
|
489
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
490
|
+
const indicator = el.shadowRoot.querySelector('.spinner__indicator');
|
|
491
|
+
expect(indicator.classList.length).to.equal(1);
|
|
492
|
+
});
|
|
493
|
+
// Attribute count
|
|
494
|
+
it('86. SVG should have 3 attributes (part, class, role, aria-valuetext)', async () => {
|
|
495
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
496
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
497
|
+
expect(svg.attributes.length).to.equal(4);
|
|
498
|
+
});
|
|
499
|
+
it('87. track circle should have 1 attribute (class)', async () => {
|
|
500
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
501
|
+
const track = el.shadowRoot.querySelector('.spinner__track');
|
|
502
|
+
expect(track.attributes.length).to.equal(1);
|
|
503
|
+
});
|
|
504
|
+
it('88. indicator circle should have 1 attribute (class)', async () => {
|
|
505
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
506
|
+
const indicator = el.shadowRoot.querySelector('.spinner__indicator');
|
|
507
|
+
expect(indicator.attributes.length).to.equal(1);
|
|
508
|
+
});
|
|
509
|
+
// Node type
|
|
510
|
+
it('89. SVG should be an Element node', async () => {
|
|
511
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
512
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
513
|
+
expect(svg.nodeType).to.equal(Node.ELEMENT_NODE);
|
|
514
|
+
});
|
|
515
|
+
it('90. spinner element should be an Element node', async () => {
|
|
516
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
517
|
+
expect(el.nodeType).to.equal(Node.ELEMENT_NODE);
|
|
518
|
+
});
|
|
519
|
+
// Content checks
|
|
520
|
+
it('91. spinner should not have text content in shadow root', async () => {
|
|
521
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
522
|
+
const svg = el.shadowRoot.querySelector('svg');
|
|
523
|
+
expect(svg.textContent.trim()).to.equal('');
|
|
524
|
+
});
|
|
525
|
+
it('92. spinner should not have innerHTML content besides svg', async () => {
|
|
526
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
527
|
+
const divs = el.shadowRoot.querySelectorAll('div');
|
|
528
|
+
expect(divs.length).to.equal(0);
|
|
529
|
+
});
|
|
530
|
+
it('93. spinner should not have any span elements', async () => {
|
|
531
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
532
|
+
const spans = el.shadowRoot.querySelectorAll('span');
|
|
533
|
+
expect(spans.length).to.equal(0);
|
|
534
|
+
});
|
|
535
|
+
it('94. spinner should not have any anchor elements', async () => {
|
|
536
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
537
|
+
const anchors = el.shadowRoot.querySelectorAll('a');
|
|
538
|
+
expect(anchors.length).to.equal(0);
|
|
539
|
+
});
|
|
540
|
+
it('95. spinner should not have any p elements', async () => {
|
|
541
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
542
|
+
const paragraphs = el.shadowRoot.querySelectorAll('p');
|
|
543
|
+
expect(paragraphs.length).to.equal(0);
|
|
544
|
+
});
|
|
545
|
+
// Updates
|
|
546
|
+
it('96. should complete updateComplete', async () => {
|
|
547
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
548
|
+
const complete = await el.updateComplete;
|
|
549
|
+
expect(complete).to.not.be.undefined;
|
|
550
|
+
});
|
|
551
|
+
it('97. should be in connected state after fixture', async () => {
|
|
552
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
553
|
+
expect(el.isConnected).to.be.true;
|
|
554
|
+
});
|
|
555
|
+
it('98. should have empty textContent', async () => {
|
|
556
|
+
const el = await fixture(html `<nile-spinner></nile-spinner>`);
|
|
557
|
+
expect(el.textContent.trim()).to.equal('');
|
|
558
|
+
});
|
|
559
|
+
it('99. should handle setting custom attributes', async () => {
|
|
560
|
+
const el = await fixture(html `<nile-spinner aria-label="Loading content"></nile-spinner>`);
|
|
561
|
+
expect(el.getAttribute('aria-label')).to.equal('Loading content');
|
|
562
|
+
});
|
|
563
|
+
it('100. should not modify parent container', async () => {
|
|
564
|
+
const container = await fixture(html `<div class="parent"><nile-spinner></nile-spinner></div>`);
|
|
565
|
+
expect(container.classList.contains('parent')).to.be.true;
|
|
566
|
+
expect(container.children.length).to.equal(1);
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
//# sourceMappingURL=nile-spinner.test.js.map
|