@furystack/shades-common-components 12.3.0 → 12.5.0
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/CHANGELOG.md +86 -0
- package/esm/components/app-bar-link.spec.js +16 -19
- package/esm/components/app-bar-link.spec.js.map +1 -1
- package/esm/components/app-bar.spec.js +6 -4
- package/esm/components/app-bar.spec.js.map +1 -1
- package/esm/components/avatar.spec.js +9 -9
- package/esm/components/avatar.spec.js.map +1 -1
- package/esm/components/breadcrumb.spec.js +2 -2
- package/esm/components/breadcrumb.spec.js.map +1 -1
- package/esm/components/button-group.d.ts +32 -0
- package/esm/components/button-group.d.ts.map +1 -1
- package/esm/components/button-group.js +26 -2
- package/esm/components/button-group.js.map +1 -1
- package/esm/components/button-group.spec.js +127 -11
- package/esm/components/button-group.spec.js.map +1 -1
- package/esm/components/button.spec.js +4 -4
- package/esm/components/button.spec.js.map +1 -1
- package/esm/components/cache-view.spec.js +2 -3
- package/esm/components/cache-view.spec.js.map +1 -1
- package/esm/components/carousel.spec.js +47 -47
- package/esm/components/carousel.spec.js.map +1 -1
- package/esm/components/circular-progress.spec.js +2 -2
- package/esm/components/command-palette/command-palette-input.spec.js +23 -19
- package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js +27 -27
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
- package/esm/components/command-palette/index.spec.js +64 -51
- package/esm/components/command-palette/index.spec.js.map +1 -1
- package/esm/components/context-menu/context-menu.spec.js +33 -33
- package/esm/components/context-menu/context-menu.spec.js.map +1 -1
- package/esm/components/data-grid/body.spec.js +13 -13
- package/esm/components/data-grid/body.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid-row.spec.js +8 -8
- package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid.d.ts +40 -2
- package/esm/components/data-grid/data-grid.d.ts.map +1 -1
- package/esm/components/data-grid/data-grid.js +7 -10
- package/esm/components/data-grid/data-grid.js.map +1 -1
- package/esm/components/data-grid/data-grid.spec.js +71 -28
- package/esm/components/data-grid/data-grid.spec.js.map +1 -1
- package/esm/components/data-grid/filters/boolean-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/boolean-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.js +27 -0
- package/esm/components/data-grid/filters/boolean-filter.js.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js +114 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/date-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.js +109 -0
- package/esm/components/data-grid/filters/date-filter.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.js +145 -0
- package/esm/components/data-grid/filters/date-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts +16 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.js +72 -0
- package/esm/components/data-grid/filters/enum-filter.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js +136 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts +6 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.js +41 -0
- package/esm/components/data-grid/filters/filter-dropdown.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js +69 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts +24 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.js +25 -0
- package/esm/components/data-grid/filters/filter-styles.js.map +1 -0
- package/esm/components/data-grid/filters/index.d.ts +7 -0
- package/esm/components/data-grid/filters/index.d.ts.map +1 -0
- package/esm/components/data-grid/filters/index.js +7 -0
- package/esm/components/data-grid/filters/index.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/number-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.js +65 -0
- package/esm/components/data-grid/filters/number-filter.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.js +142 -0
- package/esm/components/data-grid/filters/number-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/string-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.js +63 -0
- package/esm/components/data-grid/filters/string-filter.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.js +128 -0
- package/esm/components/data-grid/filters/string-filter.spec.js.map +1 -0
- package/esm/components/data-grid/footer.d.ts.map +1 -1
- package/esm/components/data-grid/footer.js +24 -9
- package/esm/components/data-grid/footer.js.map +1 -1
- package/esm/components/data-grid/footer.spec.js +38 -36
- package/esm/components/data-grid/footer.spec.js.map +1 -1
- package/esm/components/data-grid/header.d.ts +6 -9
- package/esm/components/data-grid/header.d.ts.map +1 -1
- package/esm/components/data-grid/header.js +51 -117
- package/esm/components/data-grid/header.js.map +1 -1
- package/esm/components/data-grid/header.spec.js +116 -187
- package/esm/components/data-grid/header.spec.js.map +1 -1
- package/esm/components/data-grid/index.d.ts +1 -0
- package/esm/components/data-grid/index.d.ts.map +1 -1
- package/esm/components/data-grid/index.js +1 -0
- package/esm/components/data-grid/index.js.map +1 -1
- package/esm/components/data-grid/selection-cell.spec.js +8 -8
- package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
- package/esm/components/drawer/drawer-toggle-button.spec.js +22 -22
- package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -1
- package/esm/components/drawer/index.spec.js +36 -36
- package/esm/components/drawer/index.spec.js.map +1 -1
- package/esm/components/dropdown.spec.js +38 -30
- package/esm/components/dropdown.spec.js.map +1 -1
- package/esm/components/fab.spec.js +4 -4
- package/esm/components/fab.spec.js.map +1 -1
- package/esm/components/form.d.ts +5 -2
- package/esm/components/form.d.ts.map +1 -1
- package/esm/components/form.js +28 -6
- package/esm/components/form.js.map +1 -1
- package/esm/components/form.spec.js +227 -20
- package/esm/components/form.spec.js.map +1 -1
- package/esm/components/grid.spec.js +3 -3
- package/esm/components/grid.spec.js.map +1 -1
- package/esm/components/image.spec.js +55 -52
- package/esm/components/image.spec.js.map +1 -1
- package/esm/components/inputs/autocomplete.spec.js +7 -14
- package/esm/components/inputs/autocomplete.spec.js.map +1 -1
- package/esm/components/inputs/checkbox.spec.js +22 -22
- package/esm/components/inputs/checkbox.spec.js.map +1 -1
- package/esm/components/inputs/input-number.spec.js +47 -47
- package/esm/components/inputs/input-number.spec.js.map +1 -1
- package/esm/components/inputs/input.spec.js +53 -53
- package/esm/components/inputs/input.spec.js.map +1 -1
- package/esm/components/inputs/radio-group.spec.js +14 -14
- package/esm/components/inputs/radio-group.spec.js.map +1 -1
- package/esm/components/inputs/radio.spec.js +16 -16
- package/esm/components/inputs/radio.spec.js.map +1 -1
- package/esm/components/inputs/select.spec.js +74 -74
- package/esm/components/inputs/select.spec.js.map +1 -1
- package/esm/components/inputs/slider.spec.js +16 -16
- package/esm/components/inputs/slider.spec.js.map +1 -1
- package/esm/components/inputs/switch.spec.js +24 -24
- package/esm/components/inputs/switch.spec.js.map +1 -1
- package/esm/components/inputs/text-area.spec.js +17 -17
- package/esm/components/inputs/text-area.spec.js.map +1 -1
- package/esm/components/linear-progress.spec.js +2 -2
- package/esm/components/list/list.spec.js +36 -36
- package/esm/components/list/list.spec.js.map +1 -1
- package/esm/components/markdown/markdown-display.spec.js +15 -15
- package/esm/components/markdown/markdown-display.spec.js.map +1 -1
- package/esm/components/markdown/markdown-editor.spec.js +8 -8
- package/esm/components/markdown/markdown-editor.spec.js.map +1 -1
- package/esm/components/markdown/markdown-input.spec.js +17 -17
- package/esm/components/markdown/markdown-input.spec.js.map +1 -1
- package/esm/components/menu/menu.spec.js +28 -28
- package/esm/components/menu/menu.spec.js.map +1 -1
- package/esm/components/modal.spec.js +15 -18
- package/esm/components/modal.spec.js.map +1 -1
- package/esm/components/noty-list.spec.js +25 -23
- package/esm/components/noty-list.spec.js.map +1 -1
- package/esm/components/page-container/index.spec.js +16 -16
- package/esm/components/page-container/index.spec.js.map +1 -1
- package/esm/components/page-container/page-header.spec.js +16 -16
- package/esm/components/page-container/page-header.spec.js.map +1 -1
- package/esm/components/page-layout/index.spec.js +29 -29
- package/esm/components/page-layout/index.spec.js.map +1 -1
- package/esm/components/paper.spec.js +3 -3
- package/esm/components/paper.spec.js.map +1 -1
- package/esm/components/rating.spec.js +61 -61
- package/esm/components/rating.spec.js.map +1 -1
- package/esm/components/skeleton.spec.js +10 -6
- package/esm/components/skeleton.spec.js.map +1 -1
- package/esm/components/suggest/suggest-input.spec.js +4 -10
- package/esm/components/suggest/suggest-input.spec.js.map +1 -1
- package/esm/components/tabs.spec.js +30 -30
- package/esm/components/tabs.spec.js.map +1 -1
- package/esm/components/tree/tree.spec.js +27 -27
- package/esm/components/tree/tree.spec.js.map +1 -1
- package/esm/components/typography.spec.js +3 -3
- package/esm/components/typography.spec.js.map +1 -1
- package/esm/components/wizard/index.spec.js +5 -5
- package/esm/components/wizard/index.spec.js.map +1 -1
- package/esm/utils/promisify-animation.d.ts.map +1 -1
- package/esm/utils/promisify-animation.js +3 -0
- package/esm/utils/promisify-animation.js.map +1 -1
- package/package.json +2 -2
- package/src/components/app-bar-link.spec.tsx +16 -19
- package/src/components/app-bar.spec.tsx +6 -4
- package/src/components/avatar.spec.tsx +9 -9
- package/src/components/breadcrumb.spec.tsx +2 -2
- package/src/components/button-group.spec.tsx +155 -11
- package/src/components/button-group.tsx +49 -2
- package/src/components/button.spec.tsx +4 -4
- package/src/components/cache-view.spec.tsx +3 -3
- package/src/components/carousel.spec.tsx +47 -47
- package/src/components/circular-progress.spec.tsx +2 -2
- package/src/components/command-palette/command-palette-input.spec.tsx +23 -19
- package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +27 -27
- package/src/components/command-palette/index.spec.tsx +64 -51
- package/src/components/context-menu/context-menu.spec.tsx +33 -33
- package/src/components/data-grid/body.spec.tsx +13 -13
- package/src/components/data-grid/data-grid-row.spec.tsx +8 -8
- package/src/components/data-grid/data-grid.spec.tsx +106 -28
- package/src/components/data-grid/data-grid.tsx +44 -11
- package/src/components/data-grid/filters/boolean-filter.spec.tsx +142 -0
- package/src/components/data-grid/filters/boolean-filter.tsx +45 -0
- package/src/components/data-grid/filters/date-filter.spec.tsx +181 -0
- package/src/components/data-grid/filters/date-filter.tsx +162 -0
- package/src/components/data-grid/filters/enum-filter.spec.tsx +168 -0
- package/src/components/data-grid/filters/enum-filter.tsx +119 -0
- package/src/components/data-grid/filters/filter-dropdown.spec.tsx +89 -0
- package/src/components/data-grid/filters/filter-dropdown.tsx +60 -0
- package/src/components/data-grid/filters/filter-styles.ts +26 -0
- package/src/components/data-grid/filters/index.ts +6 -0
- package/src/components/data-grid/filters/number-filter.spec.tsx +174 -0
- package/src/components/data-grid/filters/number-filter.tsx +115 -0
- package/src/components/data-grid/filters/string-filter.spec.tsx +157 -0
- package/src/components/data-grid/filters/string-filter.tsx +112 -0
- package/src/components/data-grid/footer.spec.tsx +38 -36
- package/src/components/data-grid/footer.tsx +21 -8
- package/src/components/data-grid/header.spec.tsx +128 -212
- package/src/components/data-grid/header.tsx +95 -183
- package/src/components/data-grid/index.tsx +1 -0
- package/src/components/data-grid/selection-cell.spec.tsx +8 -8
- package/src/components/drawer/drawer-toggle-button.spec.tsx +22 -22
- package/src/components/drawer/index.spec.tsx +36 -36
- package/src/components/dropdown.spec.tsx +38 -30
- package/src/components/fab.spec.tsx +4 -4
- package/src/components/form.spec.tsx +329 -20
- package/src/components/form.tsx +31 -8
- package/src/components/grid.spec.tsx +3 -3
- package/src/components/image.spec.tsx +55 -52
- package/src/components/inputs/autocomplete.spec.tsx +7 -14
- package/src/components/inputs/checkbox.spec.tsx +22 -22
- package/src/components/inputs/input-number.spec.tsx +47 -47
- package/src/components/inputs/input.spec.tsx +53 -53
- package/src/components/inputs/radio-group.spec.tsx +14 -14
- package/src/components/inputs/radio.spec.tsx +16 -16
- package/src/components/inputs/select.spec.tsx +74 -74
- package/src/components/inputs/slider.spec.tsx +16 -16
- package/src/components/inputs/switch.spec.tsx +24 -24
- package/src/components/inputs/text-area.spec.tsx +17 -17
- package/src/components/linear-progress.spec.tsx +2 -2
- package/src/components/list/list.spec.tsx +36 -36
- package/src/components/markdown/markdown-display.spec.tsx +15 -15
- package/src/components/markdown/markdown-editor.spec.tsx +8 -8
- package/src/components/markdown/markdown-input.spec.tsx +17 -17
- package/src/components/menu/menu.spec.tsx +28 -28
- package/src/components/modal.spec.tsx +15 -18
- package/src/components/noty-list.spec.tsx +25 -23
- package/src/components/page-container/index.spec.tsx +16 -16
- package/src/components/page-container/page-header.spec.tsx +16 -16
- package/src/components/page-layout/index.spec.tsx +29 -29
- package/src/components/paper.spec.tsx +3 -3
- package/src/components/rating.spec.tsx +61 -61
- package/src/components/skeleton.spec.tsx +10 -6
- package/src/components/suggest/suggest-input.spec.tsx +4 -10
- package/src/components/tabs.spec.tsx +30 -30
- package/src/components/tree/tree.spec.tsx +27 -27
- package/src/components/typography.spec.tsx +3 -3
- package/src/components/wizard/index.spec.tsx +5 -5
- package/src/utils/promisify-animation.ts +3 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import type { MenuEntry } from './menu-types.js'
|
|
6
6
|
import { Menu } from './menu.js'
|
|
@@ -29,7 +29,7 @@ describe('Menu', () => {
|
|
|
29
29
|
rootElement: root,
|
|
30
30
|
jsxElement: <Menu {...props} />,
|
|
31
31
|
})
|
|
32
|
-
await
|
|
32
|
+
await flushUpdates()
|
|
33
33
|
return {
|
|
34
34
|
injector,
|
|
35
35
|
menu: root.querySelector('shade-menu') as HTMLElement,
|
|
@@ -219,7 +219,7 @@ describe('Menu', () => {
|
|
|
219
219
|
const groupLabel = menu.querySelector('.menu-group-label-inline') as HTMLElement
|
|
220
220
|
expect(groupLabel).toBeTruthy()
|
|
221
221
|
groupLabel.click()
|
|
222
|
-
await
|
|
222
|
+
await flushUpdates()
|
|
223
223
|
|
|
224
224
|
const groupItems = menu.querySelectorAll('[role="menuitem"]')
|
|
225
225
|
expect(groupItems.length).toBe(1)
|
|
@@ -239,7 +239,7 @@ describe('Menu', () => {
|
|
|
239
239
|
await usingAsync(await renderMenu({ items: createTestItems() }), async ({ menu }) => {
|
|
240
240
|
menu.focus()
|
|
241
241
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
242
|
-
await
|
|
242
|
+
await flushUpdates()
|
|
243
243
|
|
|
244
244
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
245
245
|
expect(focusedItem).toBeTruthy()
|
|
@@ -251,7 +251,7 @@ describe('Menu', () => {
|
|
|
251
251
|
await usingAsync(await renderMenu({ items: createTestItems(), mode: 'horizontal' }), async ({ menu }) => {
|
|
252
252
|
menu.focus()
|
|
253
253
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true }))
|
|
254
|
-
await
|
|
254
|
+
await flushUpdates()
|
|
255
255
|
|
|
256
256
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
257
257
|
expect(focusedItem).toBeTruthy()
|
|
@@ -265,10 +265,10 @@ describe('Menu', () => {
|
|
|
265
265
|
menu.focus()
|
|
266
266
|
// Navigate to first item
|
|
267
267
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
268
|
-
await
|
|
268
|
+
await flushUpdates()
|
|
269
269
|
// Press Enter
|
|
270
270
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
271
|
-
await
|
|
271
|
+
await flushUpdates()
|
|
272
272
|
expect(handleSelect).toHaveBeenCalledWith('home')
|
|
273
273
|
})
|
|
274
274
|
})
|
|
@@ -277,7 +277,7 @@ describe('Menu', () => {
|
|
|
277
277
|
await usingAsync(await renderMenu({ items: createTestItems() }), async ({ menu }) => {
|
|
278
278
|
menu.focus()
|
|
279
279
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
280
|
-
await
|
|
280
|
+
await flushUpdates()
|
|
281
281
|
|
|
282
282
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
283
283
|
expect(focusedItem?.getAttribute('data-key')).toBe('settings')
|
|
@@ -289,10 +289,10 @@ describe('Menu', () => {
|
|
|
289
289
|
menu.focus()
|
|
290
290
|
// Go to end first
|
|
291
291
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
292
|
-
await
|
|
292
|
+
await flushUpdates()
|
|
293
293
|
// Then Home
|
|
294
294
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'Home', bubbles: true }))
|
|
295
|
-
await
|
|
295
|
+
await flushUpdates()
|
|
296
296
|
|
|
297
297
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
298
298
|
expect(focusedItem?.getAttribute('data-key')).toBe('home')
|
|
@@ -308,10 +308,10 @@ describe('Menu', () => {
|
|
|
308
308
|
menu.focus()
|
|
309
309
|
// Navigate to end
|
|
310
310
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
311
|
-
await
|
|
311
|
+
await flushUpdates()
|
|
312
312
|
// One more down should wrap to first
|
|
313
313
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
314
|
-
await
|
|
314
|
+
await flushUpdates()
|
|
315
315
|
|
|
316
316
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
317
317
|
expect(focusedItem?.getAttribute('data-key')).toBe('a')
|
|
@@ -327,10 +327,10 @@ describe('Menu', () => {
|
|
|
327
327
|
menu.focus()
|
|
328
328
|
// Navigate to Home first
|
|
329
329
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'Home', bubbles: true }))
|
|
330
|
-
await
|
|
330
|
+
await flushUpdates()
|
|
331
331
|
// One more up should wrap to last
|
|
332
332
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
333
|
-
await
|
|
333
|
+
await flushUpdates()
|
|
334
334
|
|
|
335
335
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
336
336
|
expect(focusedItem?.getAttribute('data-key')).toBe('b')
|
|
@@ -342,9 +342,9 @@ describe('Menu', () => {
|
|
|
342
342
|
await usingAsync(await renderMenu({ items: createTestItems(), onSelect: handleSelect }), async ({ menu }) => {
|
|
343
343
|
menu.focus()
|
|
344
344
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
345
|
-
await
|
|
345
|
+
await flushUpdates()
|
|
346
346
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: ' ', bubbles: true }))
|
|
347
|
-
await
|
|
347
|
+
await flushUpdates()
|
|
348
348
|
expect(handleSelect).toHaveBeenCalledWith('home')
|
|
349
349
|
})
|
|
350
350
|
})
|
|
@@ -354,11 +354,11 @@ describe('Menu', () => {
|
|
|
354
354
|
menu.focus()
|
|
355
355
|
// First go to end
|
|
356
356
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
357
|
-
await
|
|
357
|
+
await flushUpdates()
|
|
358
358
|
|
|
359
359
|
// Then ArrowUp
|
|
360
360
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
361
|
-
await
|
|
361
|
+
await flushUpdates()
|
|
362
362
|
|
|
363
363
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
364
364
|
expect(focusedItem?.getAttribute('data-key')).toBe('about')
|
|
@@ -370,11 +370,11 @@ describe('Menu', () => {
|
|
|
370
370
|
menu.focus()
|
|
371
371
|
// First go to end
|
|
372
372
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
373
|
-
await
|
|
373
|
+
await flushUpdates()
|
|
374
374
|
|
|
375
375
|
// Then ArrowLeft
|
|
376
376
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowLeft', bubbles: true }))
|
|
377
|
-
await
|
|
377
|
+
await flushUpdates()
|
|
378
378
|
|
|
379
379
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
380
380
|
expect(focusedItem?.getAttribute('data-key')).toBe('about')
|
|
@@ -386,7 +386,7 @@ describe('Menu', () => {
|
|
|
386
386
|
await usingAsync(await renderMenu({ items: createTestItems(), onSelect: handleSelect }), async ({ menu }) => {
|
|
387
387
|
menu.focus()
|
|
388
388
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'a', bubbles: true }))
|
|
389
|
-
await
|
|
389
|
+
await flushUpdates()
|
|
390
390
|
expect(handleSelect).not.toHaveBeenCalled()
|
|
391
391
|
})
|
|
392
392
|
})
|
|
@@ -397,7 +397,7 @@ describe('Menu', () => {
|
|
|
397
397
|
menu.focus()
|
|
398
398
|
// Press Enter without navigating to any item first
|
|
399
399
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
400
|
-
await
|
|
400
|
+
await flushUpdates()
|
|
401
401
|
expect(handleSelect).not.toHaveBeenCalled()
|
|
402
402
|
})
|
|
403
403
|
})
|
|
@@ -407,7 +407,7 @@ describe('Menu', () => {
|
|
|
407
407
|
await usingAsync(await renderMenu({ items }), async ({ menu }) => {
|
|
408
408
|
menu.focus()
|
|
409
409
|
menu.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
410
|
-
await
|
|
410
|
+
await flushUpdates()
|
|
411
411
|
const focusedItem = menu.querySelector('.menu-item.focused')
|
|
412
412
|
expect(focusedItem).toBeNull()
|
|
413
413
|
})
|
|
@@ -419,7 +419,7 @@ describe('Menu', () => {
|
|
|
419
419
|
await usingAsync(await renderMenu({ items: createTestItems() }), async ({ menu }) => {
|
|
420
420
|
const item = menu.querySelector('[data-key="about"]') as HTMLElement
|
|
421
421
|
item.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }))
|
|
422
|
-
await
|
|
422
|
+
await flushUpdates()
|
|
423
423
|
|
|
424
424
|
expect(item.classList.contains('focused')).toBe(true)
|
|
425
425
|
})
|
|
@@ -430,7 +430,7 @@ describe('Menu', () => {
|
|
|
430
430
|
await usingAsync(await renderMenu({ items }), async ({ menu }) => {
|
|
431
431
|
const item = menu.querySelector('[data-key="disabled-item"]') as HTMLElement
|
|
432
432
|
item.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }))
|
|
433
|
-
await
|
|
433
|
+
await flushUpdates()
|
|
434
434
|
|
|
435
435
|
expect(item.classList.contains('focused')).toBe(false)
|
|
436
436
|
})
|
|
@@ -452,13 +452,13 @@ describe('Menu', () => {
|
|
|
452
452
|
|
|
453
453
|
// Expand
|
|
454
454
|
groupLabel.click()
|
|
455
|
-
await
|
|
455
|
+
await flushUpdates()
|
|
456
456
|
const groupChildren = menu.querySelector('.menu-group-children') as HTMLElement
|
|
457
457
|
expect(groupChildren.style.display).toBe('')
|
|
458
458
|
|
|
459
459
|
// Collapse
|
|
460
460
|
groupLabel.click()
|
|
461
|
-
await
|
|
461
|
+
await flushUpdates()
|
|
462
462
|
expect(groupChildren.style.display).toBe('none')
|
|
463
463
|
})
|
|
464
464
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
2
|
import { initializeShadeRoot, createComponent, Shade, flushUpdates } from '@furystack/shades'
|
|
3
|
-
import {
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { Modal } from './modal.js'
|
|
6
6
|
|
|
@@ -28,7 +28,7 @@ describe('Modal', () => {
|
|
|
28
28
|
),
|
|
29
29
|
})
|
|
30
30
|
|
|
31
|
-
await
|
|
31
|
+
await flushUpdates()
|
|
32
32
|
expect(document.body.innerHTML).toContain('shade-backdrop')
|
|
33
33
|
expect(document.body.innerHTML).toContain('modal-content')
|
|
34
34
|
})
|
|
@@ -48,7 +48,7 @@ describe('Modal', () => {
|
|
|
48
48
|
),
|
|
49
49
|
})
|
|
50
50
|
|
|
51
|
-
await
|
|
51
|
+
await flushUpdates()
|
|
52
52
|
expect(document.body.innerHTML).not.toContain('shade-backdrop')
|
|
53
53
|
expect(document.body.innerHTML).not.toContain('modal-content')
|
|
54
54
|
})
|
|
@@ -74,12 +74,11 @@ describe('Modal', () => {
|
|
|
74
74
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
75
75
|
|
|
76
76
|
initializeShadeRoot({ injector, rootElement, jsxElement: <Wrapper /> })
|
|
77
|
-
await
|
|
77
|
+
await flushUpdates()
|
|
78
78
|
expect(document.body.innerHTML).not.toContain('modal-content')
|
|
79
79
|
|
|
80
80
|
setVisible(true)
|
|
81
81
|
await flushUpdates()
|
|
82
|
-
await sleepAsync(50)
|
|
83
82
|
|
|
84
83
|
expect(document.body.innerHTML).toContain('shade-backdrop')
|
|
85
84
|
expect(document.body.innerHTML).toContain('modal-content')
|
|
@@ -106,12 +105,11 @@ describe('Modal', () => {
|
|
|
106
105
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
107
106
|
|
|
108
107
|
initializeShadeRoot({ injector, rootElement, jsxElement: <Wrapper /> })
|
|
109
|
-
await
|
|
108
|
+
await flushUpdates()
|
|
110
109
|
expect(document.body.innerHTML).toContain('modal-content')
|
|
111
110
|
|
|
112
111
|
setVisible(false)
|
|
113
112
|
await flushUpdates()
|
|
114
|
-
await sleepAsync(50)
|
|
115
113
|
|
|
116
114
|
expect(document.body.innerHTML).not.toContain('shade-backdrop')
|
|
117
115
|
expect(document.body.innerHTML).not.toContain('modal-content')
|
|
@@ -135,12 +133,12 @@ describe('Modal', () => {
|
|
|
135
133
|
),
|
|
136
134
|
})
|
|
137
135
|
|
|
138
|
-
await
|
|
136
|
+
await flushUpdates()
|
|
139
137
|
const backdrop = document.querySelector('.shade-backdrop') as HTMLDivElement
|
|
140
138
|
expect(backdrop).not.toBeNull()
|
|
141
139
|
|
|
142
140
|
backdrop.click()
|
|
143
|
-
await
|
|
141
|
+
await flushUpdates()
|
|
144
142
|
|
|
145
143
|
expect(onClose).toHaveBeenCalledTimes(1)
|
|
146
144
|
})
|
|
@@ -167,10 +165,10 @@ describe('Modal', () => {
|
|
|
167
165
|
),
|
|
168
166
|
})
|
|
169
167
|
|
|
170
|
-
await
|
|
168
|
+
await flushUpdates()
|
|
171
169
|
const backdrop = document.querySelector('.shade-backdrop') as HTMLDivElement
|
|
172
170
|
backdrop.click()
|
|
173
|
-
await
|
|
171
|
+
await flushUpdates()
|
|
174
172
|
|
|
175
173
|
expect(hideAnimation).toHaveBeenCalledTimes(1)
|
|
176
174
|
expect(onClose).toHaveBeenCalledTimes(1)
|
|
@@ -195,7 +193,7 @@ describe('Modal', () => {
|
|
|
195
193
|
),
|
|
196
194
|
})
|
|
197
195
|
|
|
198
|
-
await
|
|
196
|
+
await flushUpdates()
|
|
199
197
|
expect(showAnimation).toHaveBeenCalled()
|
|
200
198
|
})
|
|
201
199
|
})
|
|
@@ -221,12 +219,11 @@ describe('Modal', () => {
|
|
|
221
219
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
222
220
|
|
|
223
221
|
initializeShadeRoot({ injector, rootElement, jsxElement: <Wrapper /> })
|
|
224
|
-
await
|
|
222
|
+
await flushUpdates()
|
|
225
223
|
expect(showAnimation).not.toHaveBeenCalled()
|
|
226
224
|
|
|
227
225
|
setVisible(true)
|
|
228
226
|
await flushUpdates()
|
|
229
|
-
await sleepAsync(50)
|
|
230
227
|
|
|
231
228
|
expect(showAnimation).toHaveBeenCalled()
|
|
232
229
|
expect(showAnimation.mock.calls[0][0]).toBeInstanceOf(Element)
|
|
@@ -248,10 +245,10 @@ describe('Modal', () => {
|
|
|
248
245
|
),
|
|
249
246
|
})
|
|
250
247
|
|
|
251
|
-
await
|
|
248
|
+
await flushUpdates()
|
|
252
249
|
const backdrop = document.querySelector('.shade-backdrop') as HTMLDivElement
|
|
253
250
|
backdrop.click()
|
|
254
|
-
await
|
|
251
|
+
await flushUpdates()
|
|
255
252
|
|
|
256
253
|
expect(hideAnimation).toHaveBeenCalled()
|
|
257
254
|
expect(hideAnimation.mock.calls[0][0]).toBeInstanceOf(Element)
|
|
@@ -278,7 +275,7 @@ describe('Modal', () => {
|
|
|
278
275
|
),
|
|
279
276
|
})
|
|
280
277
|
|
|
281
|
-
await
|
|
278
|
+
await flushUpdates()
|
|
282
279
|
const backdrop = document.querySelector('.shade-backdrop') as HTMLDivElement
|
|
283
280
|
expect(backdrop).not.toBeNull()
|
|
284
281
|
expect(backdrop.style.backgroundColor).toBe('rgba(0, 0, 0, 0.5)')
|
|
@@ -303,7 +300,7 @@ describe('Modal', () => {
|
|
|
303
300
|
),
|
|
304
301
|
})
|
|
305
302
|
|
|
306
|
-
await
|
|
303
|
+
await flushUpdates()
|
|
307
304
|
const backdrop = document.querySelector('.shade-backdrop') as HTMLDivElement
|
|
308
305
|
expect(backdrop).not.toBeNull()
|
|
309
306
|
expect(backdrop.innerHTML).toContain('child-1')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { defaultDarkTheme } from '../services/default-dark-theme.js'
|
|
6
6
|
import type { NotyModel } from '../services/noty-service.js'
|
|
@@ -80,7 +80,7 @@ describe('NotyComponent', () => {
|
|
|
80
80
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
81
81
|
})
|
|
82
82
|
|
|
83
|
-
await
|
|
83
|
+
await flushUpdates()
|
|
84
84
|
|
|
85
85
|
const noty = document.querySelector('shade-noty')
|
|
86
86
|
expect(noty).not.toBeNull()
|
|
@@ -100,7 +100,7 @@ describe('NotyComponent', () => {
|
|
|
100
100
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
101
101
|
})
|
|
102
102
|
|
|
103
|
-
await
|
|
103
|
+
await flushUpdates()
|
|
104
104
|
|
|
105
105
|
expect(document.body.innerHTML).toContain('Success Title')
|
|
106
106
|
expect(document.body.innerHTML).toContain('Success message body')
|
|
@@ -119,7 +119,7 @@ describe('NotyComponent', () => {
|
|
|
119
119
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
120
120
|
})
|
|
121
121
|
|
|
122
|
-
await
|
|
122
|
+
await flushUpdates()
|
|
123
123
|
|
|
124
124
|
const noty = document.querySelector('shade-noty') as HTMLElement
|
|
125
125
|
expect(noty).not.toBeNull()
|
|
@@ -139,7 +139,7 @@ describe('NotyComponent', () => {
|
|
|
139
139
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
140
140
|
})
|
|
141
141
|
|
|
142
|
-
await
|
|
142
|
+
await flushUpdates()
|
|
143
143
|
|
|
144
144
|
const dismissButton = document.querySelector('.dismiss-button')
|
|
145
145
|
expect(dismissButton).not.toBeNull()
|
|
@@ -148,6 +148,7 @@ describe('NotyComponent', () => {
|
|
|
148
148
|
})
|
|
149
149
|
|
|
150
150
|
it('should call onDismiss when dismiss button is clicked', async () => {
|
|
151
|
+
vi.useFakeTimers()
|
|
151
152
|
const onDismiss = vi.fn()
|
|
152
153
|
|
|
153
154
|
Element.prototype.animate = vi.fn(
|
|
@@ -181,16 +182,17 @@ describe('NotyComponent', () => {
|
|
|
181
182
|
jsxElement: <NotyComponent model={model} onDismiss={onDismiss} />,
|
|
182
183
|
})
|
|
183
184
|
|
|
184
|
-
await
|
|
185
|
+
await vi.advanceTimersByTimeAsync(50)
|
|
185
186
|
|
|
186
187
|
const dismissButton = document.querySelector('.dismiss-button') as HTMLButtonElement
|
|
187
188
|
expect(dismissButton).not.toBeNull()
|
|
188
189
|
dismissButton.click()
|
|
189
190
|
|
|
190
|
-
await
|
|
191
|
+
await vi.advanceTimersByTimeAsync(50)
|
|
191
192
|
|
|
192
193
|
expect(onDismiss).toHaveBeenCalled()
|
|
193
194
|
})
|
|
195
|
+
vi.useRealTimers()
|
|
194
196
|
})
|
|
195
197
|
|
|
196
198
|
it('should start fade-in animation on mount', async () => {
|
|
@@ -363,7 +365,7 @@ describe('NotyComponent', () => {
|
|
|
363
365
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
364
366
|
})
|
|
365
367
|
|
|
366
|
-
await
|
|
368
|
+
await flushUpdates()
|
|
367
369
|
|
|
368
370
|
const noty = document.querySelector('shade-noty') as HTMLElement
|
|
369
371
|
expect(noty).not.toBeNull()
|
|
@@ -384,7 +386,7 @@ describe('NotyComponent', () => {
|
|
|
384
386
|
jsxElement: <NotyComponent model={model} onDismiss={() => {}} />,
|
|
385
387
|
})
|
|
386
388
|
|
|
387
|
-
await
|
|
389
|
+
await flushUpdates()
|
|
388
390
|
|
|
389
391
|
const noty = document.querySelector('shade-noty') as HTMLElement
|
|
390
392
|
expect(noty).not.toBeNull()
|
|
@@ -443,7 +445,7 @@ describe('NotyList', () => {
|
|
|
443
445
|
jsxElement: <NotyList />,
|
|
444
446
|
})
|
|
445
447
|
|
|
446
|
-
await
|
|
448
|
+
await flushUpdates()
|
|
447
449
|
|
|
448
450
|
const notyList = document.querySelector('shade-noty-list')
|
|
449
451
|
expect(notyList).not.toBeNull()
|
|
@@ -461,7 +463,7 @@ describe('NotyList', () => {
|
|
|
461
463
|
jsxElement: <NotyList />,
|
|
462
464
|
})
|
|
463
465
|
|
|
464
|
-
await
|
|
466
|
+
await flushUpdates()
|
|
465
467
|
|
|
466
468
|
const notyList = document.querySelector('shade-noty-list') as HTMLElement
|
|
467
469
|
expect(notyList).not.toBeNull()
|
|
@@ -491,7 +493,7 @@ describe('NotyList', () => {
|
|
|
491
493
|
jsxElement: <NotyList />,
|
|
492
494
|
})
|
|
493
495
|
|
|
494
|
-
await
|
|
496
|
+
await flushUpdates()
|
|
495
497
|
|
|
496
498
|
const notys = document.querySelectorAll('shade-noty')
|
|
497
499
|
expect(notys.length).toBe(2)
|
|
@@ -510,7 +512,7 @@ describe('NotyList', () => {
|
|
|
510
512
|
jsxElement: <NotyList />,
|
|
511
513
|
})
|
|
512
514
|
|
|
513
|
-
await
|
|
515
|
+
await flushUpdates()
|
|
514
516
|
|
|
515
517
|
let notys = document.querySelectorAll('shade-noty')
|
|
516
518
|
expect(notys.length).toBe(0)
|
|
@@ -518,7 +520,7 @@ describe('NotyList', () => {
|
|
|
518
520
|
const newNoty: NotyModel = { type: 'warning', title: 'Warning', body: 'Warning message' }
|
|
519
521
|
notyService.emit('onNotyAdded', newNoty)
|
|
520
522
|
|
|
521
|
-
await
|
|
523
|
+
await flushUpdates()
|
|
522
524
|
|
|
523
525
|
notys = document.querySelectorAll('shade-noty')
|
|
524
526
|
expect(notys.length).toBe(1)
|
|
@@ -541,14 +543,14 @@ describe('NotyList', () => {
|
|
|
541
543
|
jsxElement: <NotyList />,
|
|
542
544
|
})
|
|
543
545
|
|
|
544
|
-
await
|
|
546
|
+
await flushUpdates()
|
|
545
547
|
|
|
546
548
|
let notys = document.querySelectorAll('shade-noty')
|
|
547
549
|
expect(notys.length).toBe(1)
|
|
548
550
|
|
|
549
551
|
notyService.emit('onNotyRemoved', noty)
|
|
550
552
|
|
|
551
|
-
await
|
|
553
|
+
await flushUpdates()
|
|
552
554
|
|
|
553
555
|
notys = document.querySelectorAll('shade-noty')
|
|
554
556
|
expect(notys.length).toBe(0)
|
|
@@ -567,7 +569,7 @@ describe('NotyList', () => {
|
|
|
567
569
|
jsxElement: <NotyList />,
|
|
568
570
|
})
|
|
569
571
|
|
|
570
|
-
await
|
|
572
|
+
await flushUpdates()
|
|
571
573
|
|
|
572
574
|
const noty1: NotyModel = { type: 'info', title: 'Info 1', body: 'Body 1' }
|
|
573
575
|
const noty2: NotyModel = { type: 'success', title: 'Success 1', body: 'Body 2' }
|
|
@@ -577,14 +579,14 @@ describe('NotyList', () => {
|
|
|
577
579
|
notyService.emit('onNotyAdded', noty2)
|
|
578
580
|
notyService.emit('onNotyAdded', noty3)
|
|
579
581
|
|
|
580
|
-
await
|
|
582
|
+
await flushUpdates()
|
|
581
583
|
|
|
582
584
|
let notys = document.querySelectorAll('shade-noty')
|
|
583
585
|
expect(notys.length).toBe(3)
|
|
584
586
|
|
|
585
587
|
notyService.emit('onNotyRemoved', noty2)
|
|
586
588
|
|
|
587
|
-
await
|
|
589
|
+
await flushUpdates()
|
|
588
590
|
|
|
589
591
|
notys = document.querySelectorAll('shade-noty')
|
|
590
592
|
expect(notys.length).toBe(2)
|
|
@@ -592,7 +594,7 @@ describe('NotyList', () => {
|
|
|
592
594
|
notyService.emit('onNotyRemoved', noty1)
|
|
593
595
|
notyService.emit('onNotyRemoved', noty3)
|
|
594
596
|
|
|
595
|
-
await
|
|
597
|
+
await flushUpdates()
|
|
596
598
|
|
|
597
599
|
notys = document.querySelectorAll('shade-noty')
|
|
598
600
|
expect(notys.length).toBe(0)
|
|
@@ -617,11 +619,11 @@ describe('NotyList', () => {
|
|
|
617
619
|
jsxElement: <NotyList />,
|
|
618
620
|
})
|
|
619
621
|
|
|
620
|
-
await
|
|
622
|
+
await flushUpdates()
|
|
621
623
|
|
|
622
624
|
notyService.emit('onNotyRemoved', noty2)
|
|
623
625
|
|
|
624
|
-
await
|
|
626
|
+
await flushUpdates()
|
|
625
627
|
|
|
626
628
|
const notys = document.querySelectorAll('shade-noty')
|
|
627
629
|
expect(notys.length).toBe(1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
|
5
5
|
import { PageContainer } from './index.js'
|
|
6
6
|
|
|
@@ -24,7 +24,7 @@ describe('PageContainer component', () => {
|
|
|
24
24
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
25
25
|
})
|
|
26
26
|
|
|
27
|
-
await
|
|
27
|
+
await flushUpdates()
|
|
28
28
|
const element = document.querySelector('div[is="shade-page-container"]')
|
|
29
29
|
expect(element).not.toBeNull()
|
|
30
30
|
expect(element?.tagName.toLowerCase()).toBe('div')
|
|
@@ -46,7 +46,7 @@ describe('PageContainer component', () => {
|
|
|
46
46
|
),
|
|
47
47
|
})
|
|
48
48
|
|
|
49
|
-
await
|
|
49
|
+
await flushUpdates()
|
|
50
50
|
const element = document.querySelector('div[is="shade-page-container"]')
|
|
51
51
|
expect(element?.textContent).toContain('Child content')
|
|
52
52
|
})
|
|
@@ -67,7 +67,7 @@ describe('PageContainer component', () => {
|
|
|
67
67
|
),
|
|
68
68
|
})
|
|
69
69
|
|
|
70
|
-
await
|
|
70
|
+
await flushUpdates()
|
|
71
71
|
const element = document.querySelector('div[is="shade-page-container"]')
|
|
72
72
|
expect(element?.textContent).toContain('First')
|
|
73
73
|
expect(element?.textContent).toContain('Second')
|
|
@@ -86,7 +86,7 @@ describe('PageContainer component', () => {
|
|
|
86
86
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
87
87
|
})
|
|
88
88
|
|
|
89
|
-
await
|
|
89
|
+
await flushUpdates()
|
|
90
90
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
91
91
|
expect(element.style.padding).toBe('24px')
|
|
92
92
|
})
|
|
@@ -102,7 +102,7 @@ describe('PageContainer component', () => {
|
|
|
102
102
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
103
103
|
})
|
|
104
104
|
|
|
105
|
-
await
|
|
105
|
+
await flushUpdates()
|
|
106
106
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
107
107
|
expect(element.style.gap).toBe('16px')
|
|
108
108
|
})
|
|
@@ -118,7 +118,7 @@ describe('PageContainer component', () => {
|
|
|
118
118
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
119
119
|
})
|
|
120
120
|
|
|
121
|
-
await
|
|
121
|
+
await flushUpdates()
|
|
122
122
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
123
123
|
expect(element.style.maxWidth).toBe('100%')
|
|
124
124
|
})
|
|
@@ -134,7 +134,7 @@ describe('PageContainer component', () => {
|
|
|
134
134
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
135
135
|
})
|
|
136
136
|
|
|
137
|
-
await
|
|
137
|
+
await flushUpdates()
|
|
138
138
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
139
139
|
expect(element.style.height).toBe('100%')
|
|
140
140
|
})
|
|
@@ -150,7 +150,7 @@ describe('PageContainer component', () => {
|
|
|
150
150
|
jsxElement: <PageContainer>Content</PageContainer>,
|
|
151
151
|
})
|
|
152
152
|
|
|
153
|
-
await
|
|
153
|
+
await flushUpdates()
|
|
154
154
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
155
155
|
expect(element.style.marginLeft).toBe('')
|
|
156
156
|
expect(element.style.marginRight).toBe('')
|
|
@@ -169,7 +169,7 @@ describe('PageContainer component', () => {
|
|
|
169
169
|
jsxElement: <PageContainer maxWidth="800px">Content</PageContainer>,
|
|
170
170
|
})
|
|
171
171
|
|
|
172
|
-
await
|
|
172
|
+
await flushUpdates()
|
|
173
173
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
174
174
|
expect(element.style.maxWidth).toBe('800px')
|
|
175
175
|
})
|
|
@@ -185,7 +185,7 @@ describe('PageContainer component', () => {
|
|
|
185
185
|
jsxElement: <PageContainer padding="48px">Content</PageContainer>,
|
|
186
186
|
})
|
|
187
187
|
|
|
188
|
-
await
|
|
188
|
+
await flushUpdates()
|
|
189
189
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
190
190
|
expect(element.style.padding).toBe('48px')
|
|
191
191
|
})
|
|
@@ -201,7 +201,7 @@ describe('PageContainer component', () => {
|
|
|
201
201
|
jsxElement: <PageContainer gap="32px">Content</PageContainer>,
|
|
202
202
|
})
|
|
203
203
|
|
|
204
|
-
await
|
|
204
|
+
await flushUpdates()
|
|
205
205
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
206
206
|
expect(element.style.gap).toBe('32px')
|
|
207
207
|
})
|
|
@@ -221,7 +221,7 @@ describe('PageContainer component', () => {
|
|
|
221
221
|
),
|
|
222
222
|
})
|
|
223
223
|
|
|
224
|
-
await
|
|
224
|
+
await flushUpdates()
|
|
225
225
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
226
226
|
expect(element.style.marginLeft).toBe('auto')
|
|
227
227
|
expect(element.style.marginRight).toBe('auto')
|
|
@@ -238,7 +238,7 @@ describe('PageContainer component', () => {
|
|
|
238
238
|
jsxElement: <PageContainer fullHeight={false}>Content</PageContainer>,
|
|
239
239
|
})
|
|
240
240
|
|
|
241
|
-
await
|
|
241
|
+
await flushUpdates()
|
|
242
242
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
243
243
|
expect(element.style.height).toBe('auto')
|
|
244
244
|
})
|
|
@@ -260,7 +260,7 @@ describe('PageContainer component', () => {
|
|
|
260
260
|
),
|
|
261
261
|
})
|
|
262
262
|
|
|
263
|
-
await
|
|
263
|
+
await flushUpdates()
|
|
264
264
|
const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
|
|
265
265
|
expect(element.style.maxWidth).toBe('800px')
|
|
266
266
|
expect(element.style.marginLeft).toBe('auto')
|