@furystack/shades-common-components 12.4.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 +56 -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.spec.js +37 -37
- 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 +37 -37
- 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, ScreenService } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot, ScreenService } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { LayoutService } from '../../services/layout-service.js'
|
|
6
6
|
import { Drawer, type DrawerProps } from './index.js'
|
|
@@ -48,7 +48,7 @@ describe('Drawer component', () => {
|
|
|
48
48
|
),
|
|
49
49
|
})
|
|
50
50
|
|
|
51
|
-
await
|
|
51
|
+
await flushUpdates()
|
|
52
52
|
|
|
53
53
|
const drawer = document.querySelector('shade-drawer') as HTMLElement
|
|
54
54
|
|
|
@@ -85,7 +85,7 @@ describe('Drawer component', () => {
|
|
|
85
85
|
),
|
|
86
86
|
})
|
|
87
87
|
|
|
88
|
-
await
|
|
88
|
+
await flushUpdates()
|
|
89
89
|
expect(document.body.innerHTML).toContain('test-content')
|
|
90
90
|
})
|
|
91
91
|
})
|
|
@@ -106,7 +106,7 @@ describe('Drawer component', () => {
|
|
|
106
106
|
),
|
|
107
107
|
})
|
|
108
108
|
|
|
109
|
-
await
|
|
109
|
+
await flushUpdates()
|
|
110
110
|
const container = document.querySelector('.drawer-left')
|
|
111
111
|
expect(container).not.toBeNull()
|
|
112
112
|
})
|
|
@@ -128,7 +128,7 @@ describe('Drawer component', () => {
|
|
|
128
128
|
),
|
|
129
129
|
})
|
|
130
130
|
|
|
131
|
-
await
|
|
131
|
+
await flushUpdates()
|
|
132
132
|
const container = document.querySelector('.drawer-right')
|
|
133
133
|
expect(container).not.toBeNull()
|
|
134
134
|
})
|
|
@@ -164,7 +164,7 @@ describe('Drawer component', () => {
|
|
|
164
164
|
),
|
|
165
165
|
})
|
|
166
166
|
|
|
167
|
-
await
|
|
167
|
+
await flushUpdates()
|
|
168
168
|
const container = document.querySelector('.drawer-container')
|
|
169
169
|
expect(container?.classList.contains('closed')).toBe(false)
|
|
170
170
|
})
|
|
@@ -186,7 +186,7 @@ describe('Drawer component', () => {
|
|
|
186
186
|
),
|
|
187
187
|
})
|
|
188
188
|
|
|
189
|
-
await
|
|
189
|
+
await flushUpdates()
|
|
190
190
|
const container = document.querySelector('.drawer-container')
|
|
191
191
|
expect(container?.getAttribute('data-variant')).toBe('permanent')
|
|
192
192
|
})
|
|
@@ -235,7 +235,7 @@ describe('Drawer component', () => {
|
|
|
235
235
|
),
|
|
236
236
|
})
|
|
237
237
|
|
|
238
|
-
await
|
|
238
|
+
await flushUpdates()
|
|
239
239
|
const container = document.querySelector('.drawer-container')
|
|
240
240
|
expect(container?.classList.contains('closed')).toBe(true)
|
|
241
241
|
})
|
|
@@ -257,7 +257,7 @@ describe('Drawer component', () => {
|
|
|
257
257
|
),
|
|
258
258
|
})
|
|
259
259
|
|
|
260
|
-
await
|
|
260
|
+
await flushUpdates()
|
|
261
261
|
|
|
262
262
|
// Initially open
|
|
263
263
|
let container = document.querySelector('.drawer-container')
|
|
@@ -265,7 +265,7 @@ describe('Drawer component', () => {
|
|
|
265
265
|
|
|
266
266
|
// Close via LayoutService
|
|
267
267
|
layoutService.setDrawerOpen('left', false)
|
|
268
|
-
await
|
|
268
|
+
await flushUpdates()
|
|
269
269
|
|
|
270
270
|
container = document.querySelector('.drawer-container')
|
|
271
271
|
expect(container?.classList.contains('closed')).toBe(true)
|
|
@@ -315,7 +315,7 @@ describe('Drawer component', () => {
|
|
|
315
315
|
),
|
|
316
316
|
})
|
|
317
317
|
|
|
318
|
-
await
|
|
318
|
+
await flushUpdates()
|
|
319
319
|
expect(document.body.innerHTML).toContain('drawer-backdrop')
|
|
320
320
|
})
|
|
321
321
|
})
|
|
@@ -336,9 +336,9 @@ describe('Drawer component', () => {
|
|
|
336
336
|
),
|
|
337
337
|
})
|
|
338
338
|
|
|
339
|
-
await
|
|
339
|
+
await flushUpdates()
|
|
340
340
|
layoutService.setDrawerOpen('left', true)
|
|
341
|
-
await
|
|
341
|
+
await flushUpdates()
|
|
342
342
|
|
|
343
343
|
const backdrop = document.querySelector('.drawer-backdrop')
|
|
344
344
|
expect(backdrop?.classList.contains('visible')).toBe(true)
|
|
@@ -361,13 +361,13 @@ describe('Drawer component', () => {
|
|
|
361
361
|
),
|
|
362
362
|
})
|
|
363
363
|
|
|
364
|
-
await
|
|
364
|
+
await flushUpdates()
|
|
365
365
|
layoutService.setDrawerOpen('left', true)
|
|
366
|
-
await
|
|
366
|
+
await flushUpdates()
|
|
367
367
|
|
|
368
368
|
const backdrop = document.querySelector('.drawer-backdrop') as HTMLElement
|
|
369
369
|
backdrop.click()
|
|
370
|
-
await
|
|
370
|
+
await flushUpdates()
|
|
371
371
|
|
|
372
372
|
expect(layoutService.drawerState.getValue().left?.open).toBe(false)
|
|
373
373
|
})
|
|
@@ -389,7 +389,7 @@ describe('Drawer component', () => {
|
|
|
389
389
|
),
|
|
390
390
|
})
|
|
391
391
|
|
|
392
|
-
await
|
|
392
|
+
await flushUpdates()
|
|
393
393
|
|
|
394
394
|
// When closed, left drawer should be translated off-screen
|
|
395
395
|
let container = document.querySelector('.drawer-container') as HTMLElement
|
|
@@ -398,7 +398,7 @@ describe('Drawer component', () => {
|
|
|
398
398
|
|
|
399
399
|
// When opened
|
|
400
400
|
layoutService.setDrawerOpen('left', true)
|
|
401
|
-
await
|
|
401
|
+
await flushUpdates()
|
|
402
402
|
|
|
403
403
|
container = document.querySelector('.drawer-container') as HTMLElement
|
|
404
404
|
expect(container.style.transform).toBe('translateX(0)')
|
|
@@ -451,7 +451,7 @@ describe('Drawer component', () => {
|
|
|
451
451
|
),
|
|
452
452
|
})
|
|
453
453
|
|
|
454
|
-
await
|
|
454
|
+
await flushUpdates()
|
|
455
455
|
|
|
456
456
|
// Width should be updated to 300px
|
|
457
457
|
expect(layoutService.drawerState.getValue().left?.width).toBe('300px')
|
|
@@ -493,9 +493,9 @@ describe('Drawer component', () => {
|
|
|
493
493
|
),
|
|
494
494
|
})
|
|
495
495
|
|
|
496
|
-
await
|
|
496
|
+
await flushUpdates()
|
|
497
497
|
layoutService.setDrawerOpen('right', true)
|
|
498
|
-
await
|
|
498
|
+
await flushUpdates()
|
|
499
499
|
|
|
500
500
|
const backdrop = document.querySelector('[data-testid="drawer-backdrop-right"]')
|
|
501
501
|
expect(backdrop).not.toBeNull()
|
|
@@ -524,14 +524,14 @@ describe('Drawer component', () => {
|
|
|
524
524
|
),
|
|
525
525
|
})
|
|
526
526
|
|
|
527
|
-
await
|
|
527
|
+
await flushUpdates()
|
|
528
528
|
|
|
529
529
|
// Drawer should be open on large screen
|
|
530
530
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
531
531
|
|
|
532
532
|
// Simulate screen becoming smaller
|
|
533
533
|
screenService.screenSize.atLeast.md.setValue(false)
|
|
534
|
-
await
|
|
534
|
+
await flushUpdates()
|
|
535
535
|
|
|
536
536
|
// Drawer should now be closed
|
|
537
537
|
expect(layoutService.drawerState.getValue().left?.open).toBe(false)
|
|
@@ -558,21 +558,21 @@ describe('Drawer component', () => {
|
|
|
558
558
|
),
|
|
559
559
|
})
|
|
560
560
|
|
|
561
|
-
await
|
|
561
|
+
await flushUpdates()
|
|
562
562
|
|
|
563
563
|
// Drawer should be open on large screen
|
|
564
564
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
565
565
|
|
|
566
566
|
// Simulate screen becoming smaller
|
|
567
567
|
screenService.screenSize.atLeast.md.setValue(false)
|
|
568
|
-
await
|
|
568
|
+
await flushUpdates()
|
|
569
569
|
|
|
570
570
|
// Drawer should now be closed
|
|
571
571
|
expect(layoutService.drawerState.getValue().left?.open).toBe(false)
|
|
572
572
|
|
|
573
573
|
// Simulate screen becoming larger again
|
|
574
574
|
screenService.screenSize.atLeast.md.setValue(true)
|
|
575
|
-
await
|
|
575
|
+
await flushUpdates()
|
|
576
576
|
|
|
577
577
|
// Drawer should now be open again
|
|
578
578
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
@@ -599,12 +599,12 @@ describe('Drawer component', () => {
|
|
|
599
599
|
),
|
|
600
600
|
})
|
|
601
601
|
|
|
602
|
-
await
|
|
602
|
+
await flushUpdates()
|
|
603
603
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
604
604
|
|
|
605
605
|
// Simulate screen becoming larger
|
|
606
606
|
screenService.screenSize.atLeast.md.setValue(true)
|
|
607
|
-
await
|
|
607
|
+
await flushUpdates()
|
|
608
608
|
|
|
609
609
|
// Temporary drawer should close when screen is large (switch to desktop layout)
|
|
610
610
|
expect(layoutService.drawerState.getValue().left?.open).toBe(false)
|
|
@@ -631,12 +631,12 @@ describe('Drawer component', () => {
|
|
|
631
631
|
),
|
|
632
632
|
})
|
|
633
633
|
|
|
634
|
-
await
|
|
634
|
+
await flushUpdates()
|
|
635
635
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
636
636
|
|
|
637
637
|
// Simulate screen becoming smaller
|
|
638
638
|
screenService.screenSize.atLeast.md.setValue(false)
|
|
639
|
-
await
|
|
639
|
+
await flushUpdates()
|
|
640
640
|
|
|
641
641
|
// Permanent drawer should remain open
|
|
642
642
|
expect(layoutService.drawerState.getValue().left?.open).toBe(true)
|
|
@@ -661,7 +661,7 @@ describe('Drawer component', () => {
|
|
|
661
661
|
),
|
|
662
662
|
})
|
|
663
663
|
|
|
664
|
-
await
|
|
664
|
+
await flushUpdates()
|
|
665
665
|
const container = document.querySelector('.drawer-container')
|
|
666
666
|
expect(container?.getAttribute('data-variant')).toBe('collapsible')
|
|
667
667
|
})
|
|
@@ -683,12 +683,12 @@ describe('Drawer component', () => {
|
|
|
683
683
|
),
|
|
684
684
|
})
|
|
685
685
|
|
|
686
|
-
await
|
|
686
|
+
await flushUpdates()
|
|
687
687
|
let container = document.querySelector('.drawer-container')
|
|
688
688
|
expect(container?.getAttribute('data-open')).toBe('true')
|
|
689
689
|
|
|
690
690
|
layoutService.setDrawerOpen('left', false)
|
|
691
|
-
await
|
|
691
|
+
await flushUpdates()
|
|
692
692
|
|
|
693
693
|
container = document.querySelector('.drawer-container')
|
|
694
694
|
expect(container?.getAttribute('data-open')).toBe('false')
|
|
@@ -711,7 +711,7 @@ describe('Drawer component', () => {
|
|
|
711
711
|
),
|
|
712
712
|
})
|
|
713
713
|
|
|
714
|
-
await
|
|
714
|
+
await flushUpdates()
|
|
715
715
|
const container = document.querySelector('[data-testid="drawer-left"]')
|
|
716
716
|
expect(container).not.toBeNull()
|
|
717
717
|
})
|
|
@@ -738,7 +738,7 @@ describe('Drawer component', () => {
|
|
|
738
738
|
),
|
|
739
739
|
})
|
|
740
740
|
|
|
741
|
-
await
|
|
741
|
+
await flushUpdates()
|
|
742
742
|
|
|
743
743
|
// Should preserve the closed state, not reset to defaultOpen
|
|
744
744
|
expect(layoutService.drawerState.getValue().left?.open).toBe(false)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
3
|
import { sleepAsync, usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { Dropdown } from './dropdown.js'
|
|
@@ -37,7 +37,7 @@ describe('Dropdown', () => {
|
|
|
37
37
|
</Dropdown>
|
|
38
38
|
),
|
|
39
39
|
})
|
|
40
|
-
await
|
|
40
|
+
await flushUpdates()
|
|
41
41
|
return {
|
|
42
42
|
injector,
|
|
43
43
|
dropdown: root.querySelector('shade-dropdown') as HTMLElement,
|
|
@@ -76,7 +76,7 @@ describe('Dropdown', () => {
|
|
|
76
76
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
77
77
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
78
78
|
trigger.click()
|
|
79
|
-
await
|
|
79
|
+
await flushUpdates()
|
|
80
80
|
|
|
81
81
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
82
82
|
expect(panel).toBeTruthy()
|
|
@@ -87,7 +87,7 @@ describe('Dropdown', () => {
|
|
|
87
87
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
88
88
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
89
89
|
trigger.click()
|
|
90
|
-
await
|
|
90
|
+
await flushUpdates()
|
|
91
91
|
|
|
92
92
|
const items = dropdown.querySelectorAll('[role="menuitem"]')
|
|
93
93
|
expect(items.length).toBe(3)
|
|
@@ -101,7 +101,7 @@ describe('Dropdown', () => {
|
|
|
101
101
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
102
102
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
103
103
|
trigger.click()
|
|
104
|
-
await
|
|
104
|
+
await flushUpdates()
|
|
105
105
|
|
|
106
106
|
const dividers = dropdown.querySelectorAll('[role="separator"]')
|
|
107
107
|
expect(dividers.length).toBe(1)
|
|
@@ -112,11 +112,11 @@ describe('Dropdown', () => {
|
|
|
112
112
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
113
113
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
114
114
|
trigger.click()
|
|
115
|
-
await
|
|
115
|
+
await flushUpdates()
|
|
116
116
|
|
|
117
117
|
const backdrop = dropdown.querySelector('.dropdown-backdrop') as HTMLElement
|
|
118
118
|
backdrop.click()
|
|
119
|
-
await
|
|
119
|
+
await flushUpdates()
|
|
120
120
|
|
|
121
121
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
122
122
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
@@ -128,11 +128,12 @@ describe('Dropdown', () => {
|
|
|
128
128
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
129
129
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
130
130
|
trigger.click()
|
|
131
|
+
await flushUpdates()
|
|
131
132
|
await sleepAsync(50)
|
|
132
133
|
expect(dropdown.hasAttribute('data-open')).toBe(true)
|
|
133
134
|
|
|
134
135
|
trigger.click()
|
|
135
|
-
await
|
|
136
|
+
await flushUpdates()
|
|
136
137
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
137
138
|
})
|
|
138
139
|
})
|
|
@@ -144,11 +145,11 @@ describe('Dropdown', () => {
|
|
|
144
145
|
await usingAsync(await renderDropdown({ onSelect: handleSelect }), async ({ dropdown }) => {
|
|
145
146
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
146
147
|
trigger.click()
|
|
147
|
-
await
|
|
148
|
+
await flushUpdates()
|
|
148
149
|
|
|
149
150
|
const item = dropdown.querySelector('[data-key="copy"]') as HTMLElement
|
|
150
151
|
item.click()
|
|
151
|
-
await
|
|
152
|
+
await flushUpdates()
|
|
152
153
|
|
|
153
154
|
expect(handleSelect).toHaveBeenCalledWith('copy')
|
|
154
155
|
})
|
|
@@ -158,11 +159,11 @@ describe('Dropdown', () => {
|
|
|
158
159
|
await usingAsync(await renderDropdown({ onSelect: vi.fn() }), async ({ dropdown }) => {
|
|
159
160
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
160
161
|
trigger.click()
|
|
161
|
-
await
|
|
162
|
+
await flushUpdates()
|
|
162
163
|
|
|
163
164
|
const item = dropdown.querySelector('[data-key="cut"]') as HTMLElement
|
|
164
165
|
item.click()
|
|
165
|
-
await
|
|
166
|
+
await flushUpdates()
|
|
166
167
|
|
|
167
168
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
168
169
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
@@ -176,11 +177,11 @@ describe('Dropdown', () => {
|
|
|
176
177
|
await usingAsync(await renderDropdown({ items, onSelect: handleSelect }), async ({ dropdown }) => {
|
|
177
178
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
178
179
|
trigger.click()
|
|
179
|
-
await
|
|
180
|
+
await flushUpdates()
|
|
180
181
|
|
|
181
182
|
const item = dropdown.querySelector('[data-key="disabled"]') as HTMLElement
|
|
182
183
|
item.click()
|
|
183
|
-
await
|
|
184
|
+
await flushUpdates()
|
|
184
185
|
|
|
185
186
|
expect(handleSelect).not.toHaveBeenCalled()
|
|
186
187
|
})
|
|
@@ -192,7 +193,7 @@ describe('Dropdown', () => {
|
|
|
192
193
|
await usingAsync(await renderDropdown({ disabled: true }), async ({ dropdown }) => {
|
|
193
194
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
194
195
|
trigger.click()
|
|
195
|
-
await
|
|
196
|
+
await flushUpdates()
|
|
196
197
|
|
|
197
198
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
198
199
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
@@ -231,7 +232,7 @@ describe('Dropdown', () => {
|
|
|
231
232
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
232
233
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
233
234
|
trigger.click()
|
|
234
|
-
await
|
|
235
|
+
await flushUpdates()
|
|
235
236
|
|
|
236
237
|
const group = dropdown.querySelector('[role="group"]')
|
|
237
238
|
expect(group).toBeTruthy()
|
|
@@ -248,7 +249,7 @@ describe('Dropdown', () => {
|
|
|
248
249
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
249
250
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
250
251
|
trigger.click()
|
|
251
|
-
await
|
|
252
|
+
await flushUpdates()
|
|
252
253
|
|
|
253
254
|
const icon = dropdown.querySelector('.dropdown-item-icon')
|
|
254
255
|
expect(icon).toBeTruthy()
|
|
@@ -261,7 +262,7 @@ describe('Dropdown', () => {
|
|
|
261
262
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
262
263
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
263
264
|
trigger.click()
|
|
264
|
-
await
|
|
265
|
+
await flushUpdates()
|
|
265
266
|
|
|
266
267
|
const icon = dropdown.querySelector('.dropdown-item-icon')
|
|
267
268
|
expect(icon).toBeTruthy()
|
|
@@ -275,11 +276,12 @@ describe('Dropdown', () => {
|
|
|
275
276
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
276
277
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
277
278
|
trigger.click()
|
|
279
|
+
await flushUpdates()
|
|
278
280
|
await sleepAsync(50)
|
|
279
281
|
expect(dropdown.hasAttribute('data-open')).toBe(true)
|
|
280
282
|
|
|
281
283
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }))
|
|
282
|
-
await
|
|
284
|
+
await flushUpdates()
|
|
283
285
|
|
|
284
286
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
285
287
|
})
|
|
@@ -289,10 +291,11 @@ describe('Dropdown', () => {
|
|
|
289
291
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
290
292
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
291
293
|
trigger.click()
|
|
294
|
+
await flushUpdates()
|
|
292
295
|
await sleepAsync(50)
|
|
293
296
|
|
|
294
297
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
295
|
-
await
|
|
298
|
+
await flushUpdates()
|
|
296
299
|
|
|
297
300
|
const focusedItems = dropdown.querySelectorAll('.dropdown-item.focused')
|
|
298
301
|
expect(focusedItems.length).toBe(1)
|
|
@@ -303,13 +306,14 @@ describe('Dropdown', () => {
|
|
|
303
306
|
await usingAsync(await renderDropdown({}), async ({ dropdown }) => {
|
|
304
307
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
305
308
|
trigger.click()
|
|
309
|
+
await flushUpdates()
|
|
306
310
|
await sleepAsync(50)
|
|
307
311
|
|
|
308
312
|
// Move down twice then up once
|
|
309
313
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
310
314
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
311
315
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
312
|
-
await
|
|
316
|
+
await flushUpdates()
|
|
313
317
|
|
|
314
318
|
const focusedItems = dropdown.querySelectorAll('.dropdown-item.focused')
|
|
315
319
|
expect(focusedItems.length).toBe(1)
|
|
@@ -321,13 +325,14 @@ describe('Dropdown', () => {
|
|
|
321
325
|
await usingAsync(await renderDropdown({ onSelect: handleSelect }), async ({ dropdown }) => {
|
|
322
326
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
323
327
|
trigger.click()
|
|
328
|
+
await flushUpdates()
|
|
324
329
|
await sleepAsync(50)
|
|
325
330
|
|
|
326
331
|
// Navigate down then press Enter
|
|
327
332
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
328
|
-
await
|
|
333
|
+
await flushUpdates()
|
|
329
334
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
330
|
-
await
|
|
335
|
+
await flushUpdates()
|
|
331
336
|
|
|
332
337
|
expect(handleSelect).toHaveBeenCalled()
|
|
333
338
|
})
|
|
@@ -341,13 +346,14 @@ describe('Dropdown', () => {
|
|
|
341
346
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
342
347
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
343
348
|
trigger.click()
|
|
349
|
+
await flushUpdates()
|
|
344
350
|
await sleepAsync(50)
|
|
345
351
|
|
|
346
352
|
// Navigate down past the end (2 items + 1 wrap)
|
|
347
353
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
348
354
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
349
355
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
350
|
-
await
|
|
356
|
+
await flushUpdates()
|
|
351
357
|
|
|
352
358
|
const focusedItems = dropdown.querySelectorAll('.dropdown-item.focused')
|
|
353
359
|
expect(focusedItems.length).toBe(1)
|
|
@@ -362,10 +368,11 @@ describe('Dropdown', () => {
|
|
|
362
368
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
363
369
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
364
370
|
trigger.click()
|
|
371
|
+
await flushUpdates()
|
|
365
372
|
await sleepAsync(50)
|
|
366
373
|
|
|
367
374
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
368
|
-
await
|
|
375
|
+
await flushUpdates()
|
|
369
376
|
|
|
370
377
|
const focusedItems = dropdown.querySelectorAll('.dropdown-item.focused')
|
|
371
378
|
expect(focusedItems.length).toBe(1)
|
|
@@ -378,7 +385,7 @@ describe('Dropdown', () => {
|
|
|
378
385
|
// Don't open the dropdown
|
|
379
386
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
380
387
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
381
|
-
await
|
|
388
|
+
await flushUpdates()
|
|
382
389
|
|
|
383
390
|
expect(handleSelect).not.toHaveBeenCalled()
|
|
384
391
|
expect(dropdown.hasAttribute('data-open')).toBe(false)
|
|
@@ -394,11 +401,12 @@ describe('Dropdown', () => {
|
|
|
394
401
|
await usingAsync(await renderDropdown({ items }), async ({ dropdown }) => {
|
|
395
402
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
396
403
|
trigger.click()
|
|
404
|
+
await flushUpdates()
|
|
397
405
|
await sleepAsync(50)
|
|
398
406
|
|
|
399
407
|
// Navigate to first enabled item
|
|
400
408
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
401
|
-
await
|
|
409
|
+
await flushUpdates()
|
|
402
410
|
|
|
403
411
|
const focusedItems = dropdown.querySelectorAll('.dropdown-item.focused')
|
|
404
412
|
expect(focusedItems.length).toBe(1)
|
|
@@ -413,7 +421,7 @@ describe('Dropdown', () => {
|
|
|
413
421
|
await usingAsync(await renderDropdown({ placement: 'bottomRight' }), async ({ dropdown }) => {
|
|
414
422
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
415
423
|
trigger.click()
|
|
416
|
-
await
|
|
424
|
+
await flushUpdates()
|
|
417
425
|
|
|
418
426
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
419
427
|
expect(panel).toBeTruthy()
|
|
@@ -424,7 +432,7 @@ describe('Dropdown', () => {
|
|
|
424
432
|
await usingAsync(await renderDropdown({ placement: 'topLeft' }), async ({ dropdown }) => {
|
|
425
433
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
426
434
|
trigger.click()
|
|
427
|
-
await
|
|
435
|
+
await flushUpdates()
|
|
428
436
|
|
|
429
437
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
430
438
|
expect(panel).toBeTruthy()
|
|
@@ -435,7 +443,7 @@ describe('Dropdown', () => {
|
|
|
435
443
|
await usingAsync(await renderDropdown({ placement: 'topRight' }), async ({ dropdown }) => {
|
|
436
444
|
const trigger = dropdown.querySelector('.dropdown-trigger') as HTMLElement
|
|
437
445
|
trigger.click()
|
|
438
|
-
await
|
|
446
|
+
await flushUpdates()
|
|
439
447
|
|
|
440
448
|
const panel = dropdown.querySelector('.dropdown-panel')
|
|
441
449
|
expect(panel).toBeTruthy()
|
|
@@ -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 { cssVariableTheme } from '../services/css-variable-theme.js'
|
|
6
6
|
import { Fab } from './fab.js'
|
|
@@ -22,7 +22,7 @@ describe('Fab', () => {
|
|
|
22
22
|
rootElement: root,
|
|
23
23
|
jsxElement: <Fab>{children}</Fab>,
|
|
24
24
|
})
|
|
25
|
-
await
|
|
25
|
+
await flushUpdates()
|
|
26
26
|
return {
|
|
27
27
|
injector,
|
|
28
28
|
fab: root.querySelector('button[is="shade-fab"]') as HTMLButtonElement,
|
|
@@ -107,7 +107,7 @@ describe('Fab', () => {
|
|
|
107
107
|
rootElement: root,
|
|
108
108
|
jsxElement: <Fab onclick={handleClick}>+</Fab>,
|
|
109
109
|
})
|
|
110
|
-
await
|
|
110
|
+
await flushUpdates()
|
|
111
111
|
const fab = root.querySelector('button[is="shade-fab"]') as HTMLButtonElement
|
|
112
112
|
|
|
113
113
|
fab.click()
|