@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 } 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 { SelectOption, SelectOptionGroup, SelectProps, SelectState } from './select.js'
|
|
6
6
|
import { Select } from './select.js'
|
|
@@ -29,7 +29,7 @@ describe('Select', () => {
|
|
|
29
29
|
rootElement: root,
|
|
30
30
|
jsxElement: <Select {...props} />,
|
|
31
31
|
})
|
|
32
|
-
await
|
|
32
|
+
await flushUpdates()
|
|
33
33
|
return {
|
|
34
34
|
injector,
|
|
35
35
|
select: document.querySelector('shade-select') as HTMLElement,
|
|
@@ -315,7 +315,7 @@ describe('Select', () => {
|
|
|
315
315
|
await usingAsync(await renderSelect({ options: defaultOptions, disabled: true }), async ({ select }) => {
|
|
316
316
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
317
317
|
trigger.click()
|
|
318
|
-
await
|
|
318
|
+
await flushUpdates()
|
|
319
319
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
320
320
|
})
|
|
321
321
|
})
|
|
@@ -326,7 +326,7 @@ describe('Select', () => {
|
|
|
326
326
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
327
327
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
328
328
|
trigger.click()
|
|
329
|
-
await
|
|
329
|
+
await flushUpdates()
|
|
330
330
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
331
331
|
const dropdown = select.querySelector('.dropdown')
|
|
332
332
|
expect(dropdown).not.toBeNull()
|
|
@@ -337,7 +337,7 @@ describe('Select', () => {
|
|
|
337
337
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
338
338
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
339
339
|
trigger.click()
|
|
340
|
-
await
|
|
340
|
+
await flushUpdates()
|
|
341
341
|
const items = select.querySelectorAll('.dropdown-item')
|
|
342
342
|
expect(items.length).toBe(3)
|
|
343
343
|
})
|
|
@@ -347,12 +347,12 @@ describe('Select', () => {
|
|
|
347
347
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
348
348
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
349
349
|
trigger.click()
|
|
350
|
-
await
|
|
350
|
+
await flushUpdates()
|
|
351
351
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
352
352
|
|
|
353
353
|
const backdrop = select.querySelector('.dropdown-backdrop') as HTMLElement
|
|
354
354
|
backdrop.click()
|
|
355
|
-
await
|
|
355
|
+
await flushUpdates()
|
|
356
356
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
357
357
|
})
|
|
358
358
|
})
|
|
@@ -361,13 +361,13 @@ describe('Select', () => {
|
|
|
361
361
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
362
362
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
363
363
|
trigger.click()
|
|
364
|
-
await
|
|
364
|
+
await flushUpdates()
|
|
365
365
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
366
366
|
|
|
367
367
|
// Re-query after re-render
|
|
368
368
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
369
369
|
trigger2.click()
|
|
370
|
-
await
|
|
370
|
+
await flushUpdates()
|
|
371
371
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
372
372
|
})
|
|
373
373
|
})
|
|
@@ -379,11 +379,11 @@ describe('Select', () => {
|
|
|
379
379
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
380
380
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
381
381
|
trigger.click()
|
|
382
|
-
await
|
|
382
|
+
await flushUpdates()
|
|
383
383
|
|
|
384
384
|
const items = select.querySelectorAll('.dropdown-item')
|
|
385
385
|
;(items[1] as HTMLElement).click()
|
|
386
|
-
await
|
|
386
|
+
await flushUpdates()
|
|
387
387
|
|
|
388
388
|
expect(onValueChange).toHaveBeenCalledWith('b')
|
|
389
389
|
})
|
|
@@ -394,11 +394,11 @@ describe('Select', () => {
|
|
|
394
394
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
395
395
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
396
396
|
trigger.click()
|
|
397
|
-
await
|
|
397
|
+
await flushUpdates()
|
|
398
398
|
|
|
399
399
|
const items = select.querySelectorAll('.dropdown-item')
|
|
400
400
|
;(items[0] as HTMLElement).click()
|
|
401
|
-
await
|
|
401
|
+
await flushUpdates()
|
|
402
402
|
|
|
403
403
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
404
404
|
})
|
|
@@ -413,11 +413,11 @@ describe('Select', () => {
|
|
|
413
413
|
await usingAsync(await renderSelect({ options, onValueChange }), async ({ select }) => {
|
|
414
414
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
415
415
|
trigger.click()
|
|
416
|
-
await
|
|
416
|
+
await flushUpdates()
|
|
417
417
|
|
|
418
418
|
const items = select.querySelectorAll('.dropdown-item')
|
|
419
419
|
;(items[1] as HTMLElement).click()
|
|
420
|
-
await
|
|
420
|
+
await flushUpdates()
|
|
421
421
|
|
|
422
422
|
expect(onValueChange).not.toHaveBeenCalled()
|
|
423
423
|
})
|
|
@@ -427,7 +427,7 @@ describe('Select', () => {
|
|
|
427
427
|
await usingAsync(await renderSelect({ options: defaultOptions, value: 'b' }), async ({ select }) => {
|
|
428
428
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
429
429
|
trigger.click()
|
|
430
|
-
await
|
|
430
|
+
await flushUpdates()
|
|
431
431
|
|
|
432
432
|
const selected = select.querySelector('.dropdown-item[data-selected]')
|
|
433
433
|
expect(selected).not.toBeNull()
|
|
@@ -477,11 +477,11 @@ describe('Select', () => {
|
|
|
477
477
|
async ({ select }) => {
|
|
478
478
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
479
479
|
trigger.click()
|
|
480
|
-
await
|
|
480
|
+
await flushUpdates()
|
|
481
481
|
|
|
482
482
|
const items = select.querySelectorAll('.dropdown-item')
|
|
483
483
|
;(items[1] as HTMLElement).click()
|
|
484
|
-
await
|
|
484
|
+
await flushUpdates()
|
|
485
485
|
|
|
486
486
|
expect(onMultiValueChange).toHaveBeenCalledWith(['a', 'b'])
|
|
487
487
|
},
|
|
@@ -500,11 +500,11 @@ describe('Select', () => {
|
|
|
500
500
|
async ({ select }) => {
|
|
501
501
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
502
502
|
trigger.click()
|
|
503
|
-
await
|
|
503
|
+
await flushUpdates()
|
|
504
504
|
|
|
505
505
|
const items = select.querySelectorAll('.dropdown-item')
|
|
506
506
|
;(items[0] as HTMLElement).click()
|
|
507
|
-
await
|
|
507
|
+
await flushUpdates()
|
|
508
508
|
|
|
509
509
|
expect(onMultiValueChange).toHaveBeenCalledWith(['b'])
|
|
510
510
|
},
|
|
@@ -524,7 +524,7 @@ describe('Select', () => {
|
|
|
524
524
|
const chipRemoves = select.querySelectorAll('.select-chip-remove')
|
|
525
525
|
expect(chipRemoves.length).toBe(2)
|
|
526
526
|
;(chipRemoves[0] as HTMLElement).click()
|
|
527
|
-
await
|
|
527
|
+
await flushUpdates()
|
|
528
528
|
|
|
529
529
|
expect(onMultiValueChange).toHaveBeenCalledWith(['b'])
|
|
530
530
|
},
|
|
@@ -547,7 +547,7 @@ describe('Select', () => {
|
|
|
547
547
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
548
548
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
549
549
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
550
|
-
await
|
|
550
|
+
await flushUpdates()
|
|
551
551
|
|
|
552
552
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
553
553
|
})
|
|
@@ -557,7 +557,7 @@ describe('Select', () => {
|
|
|
557
557
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
558
558
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
559
559
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: ' ', bubbles: true }))
|
|
560
|
-
await
|
|
560
|
+
await flushUpdates()
|
|
561
561
|
|
|
562
562
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
563
563
|
})
|
|
@@ -567,7 +567,7 @@ describe('Select', () => {
|
|
|
567
567
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
568
568
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
569
569
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
570
|
-
await
|
|
570
|
+
await flushUpdates()
|
|
571
571
|
|
|
572
572
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
573
573
|
})
|
|
@@ -577,7 +577,7 @@ describe('Select', () => {
|
|
|
577
577
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
578
578
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
579
579
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
580
|
-
await
|
|
580
|
+
await flushUpdates()
|
|
581
581
|
|
|
582
582
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
583
583
|
})
|
|
@@ -587,11 +587,11 @@ describe('Select', () => {
|
|
|
587
587
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
588
588
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
589
589
|
trigger.click()
|
|
590
|
-
await
|
|
590
|
+
await flushUpdates()
|
|
591
591
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
592
592
|
|
|
593
593
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }))
|
|
594
|
-
await
|
|
594
|
+
await flushUpdates()
|
|
595
595
|
|
|
596
596
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
597
597
|
})
|
|
@@ -602,15 +602,15 @@ describe('Select', () => {
|
|
|
602
602
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
603
603
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
604
604
|
trigger.click()
|
|
605
|
-
await
|
|
605
|
+
await flushUpdates()
|
|
606
606
|
|
|
607
607
|
// Re-query trigger after re-render, then navigate and select
|
|
608
608
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
609
609
|
trigger2.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
610
|
-
await
|
|
610
|
+
await flushUpdates()
|
|
611
611
|
const trigger3 = select.querySelector('.select-trigger') as HTMLElement
|
|
612
612
|
trigger3.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
613
|
-
await
|
|
613
|
+
await flushUpdates()
|
|
614
614
|
|
|
615
615
|
expect(onValueChange).toHaveBeenCalled()
|
|
616
616
|
})
|
|
@@ -621,15 +621,15 @@ describe('Select', () => {
|
|
|
621
621
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
622
622
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
623
623
|
trigger.click()
|
|
624
|
-
await
|
|
624
|
+
await flushUpdates()
|
|
625
625
|
|
|
626
626
|
// Re-query trigger after re-render
|
|
627
627
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
628
628
|
trigger2.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
629
|
-
await
|
|
629
|
+
await flushUpdates()
|
|
630
630
|
const trigger3 = select.querySelector('.select-trigger') as HTMLElement
|
|
631
631
|
trigger3.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
632
|
-
await
|
|
632
|
+
await flushUpdates()
|
|
633
633
|
|
|
634
634
|
expect(onValueChange).toHaveBeenCalledWith('c')
|
|
635
635
|
})
|
|
@@ -639,7 +639,7 @@ describe('Select', () => {
|
|
|
639
639
|
await usingAsync(await renderSelect({ options: defaultOptions, disabled: true }), async ({ select }) => {
|
|
640
640
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
641
641
|
trigger.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
642
|
-
await
|
|
642
|
+
await flushUpdates()
|
|
643
643
|
|
|
644
644
|
expect(select.hasAttribute('data-open')).toBe(false)
|
|
645
645
|
})
|
|
@@ -651,7 +651,7 @@ describe('Select', () => {
|
|
|
651
651
|
await usingAsync(await renderSelect({ options: defaultOptions, showSearch: true }), async ({ select }) => {
|
|
652
652
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
653
653
|
trigger.click()
|
|
654
|
-
await
|
|
654
|
+
await flushUpdates()
|
|
655
655
|
|
|
656
656
|
const searchInput = select.querySelector('.dropdown-search')
|
|
657
657
|
expect(searchInput).not.toBeNull()
|
|
@@ -662,7 +662,7 @@ describe('Select', () => {
|
|
|
662
662
|
await usingAsync(await renderSelect({ options: defaultOptions, showSearch: false }), async ({ select }) => {
|
|
663
663
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
664
664
|
trigger.click()
|
|
665
|
-
await
|
|
665
|
+
await flushUpdates()
|
|
666
666
|
|
|
667
667
|
const searchInput = select.querySelector('.dropdown-search')
|
|
668
668
|
expect(searchInput).toBeNull()
|
|
@@ -673,12 +673,12 @@ describe('Select', () => {
|
|
|
673
673
|
await usingAsync(await renderSelect({ options: defaultOptions, showSearch: true }), async ({ select }) => {
|
|
674
674
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
675
675
|
trigger.click()
|
|
676
|
-
await
|
|
676
|
+
await flushUpdates()
|
|
677
677
|
|
|
678
678
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
679
679
|
searchInput.value = 'alp'
|
|
680
680
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }))
|
|
681
|
-
await
|
|
681
|
+
await flushUpdates()
|
|
682
682
|
|
|
683
683
|
const items = select.querySelectorAll('.dropdown-item')
|
|
684
684
|
expect(items.length).toBe(1)
|
|
@@ -690,12 +690,12 @@ describe('Select', () => {
|
|
|
690
690
|
await usingAsync(await renderSelect({ options: defaultOptions, showSearch: true }), async ({ select }) => {
|
|
691
691
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
692
692
|
trigger.click()
|
|
693
|
-
await
|
|
693
|
+
await flushUpdates()
|
|
694
694
|
|
|
695
695
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
696
696
|
searchInput.value = 'zzz'
|
|
697
697
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }))
|
|
698
|
-
await
|
|
698
|
+
await flushUpdates()
|
|
699
699
|
|
|
700
700
|
const noResults = select.querySelector('.dropdown-no-results')
|
|
701
701
|
expect(noResults).not.toBeNull()
|
|
@@ -710,12 +710,12 @@ describe('Select', () => {
|
|
|
710
710
|
async ({ select }) => {
|
|
711
711
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
712
712
|
trigger.click()
|
|
713
|
-
await
|
|
713
|
+
await flushUpdates()
|
|
714
714
|
|
|
715
715
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
716
716
|
searchInput.value = 'anything'
|
|
717
717
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }))
|
|
718
|
-
await
|
|
718
|
+
await flushUpdates()
|
|
719
719
|
|
|
720
720
|
const items = select.querySelectorAll('.dropdown-item')
|
|
721
721
|
expect(items.length).toBe(1)
|
|
@@ -743,7 +743,7 @@ describe('Select', () => {
|
|
|
743
743
|
await usingAsync(await renderSelect({ optionGroups }), async ({ select }) => {
|
|
744
744
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
745
745
|
trigger.click()
|
|
746
|
-
await
|
|
746
|
+
await flushUpdates()
|
|
747
747
|
|
|
748
748
|
const groupLabels = select.querySelectorAll('.dropdown-group-label')
|
|
749
749
|
expect(groupLabels.length).toBe(2)
|
|
@@ -772,12 +772,12 @@ describe('Select', () => {
|
|
|
772
772
|
await usingAsync(await renderSelect({ optionGroups, showSearch: true }), async ({ select }) => {
|
|
773
773
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
774
774
|
trigger.click()
|
|
775
|
-
await
|
|
775
|
+
await flushUpdates()
|
|
776
776
|
|
|
777
777
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
778
778
|
searchInput.value = 'apple'
|
|
779
779
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }))
|
|
780
|
-
await
|
|
780
|
+
await flushUpdates()
|
|
781
781
|
|
|
782
782
|
const items = select.querySelectorAll('.dropdown-item')
|
|
783
783
|
expect(items.length).toBe(1)
|
|
@@ -845,7 +845,7 @@ describe('Select', () => {
|
|
|
845
845
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
846
846
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
847
847
|
trigger.dispatchEvent(new FocusEvent('focus', { bubbles: true }))
|
|
848
|
-
await
|
|
848
|
+
await flushUpdates()
|
|
849
849
|
|
|
850
850
|
// Focus handler sets data-focused on the inner container div (selectRootRef), not the host
|
|
851
851
|
const innerContainer = select.querySelector('div') as HTMLElement
|
|
@@ -857,12 +857,12 @@ describe('Select', () => {
|
|
|
857
857
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
858
858
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
859
859
|
trigger.dispatchEvent(new FocusEvent('focus', { bubbles: true }))
|
|
860
|
-
await
|
|
860
|
+
await flushUpdates()
|
|
861
861
|
const innerContainer = select.querySelector('div') as HTMLElement
|
|
862
862
|
expect(innerContainer.hasAttribute('data-focused')).toBe(true)
|
|
863
863
|
|
|
864
864
|
trigger.dispatchEvent(new FocusEvent('blur', { bubbles: true }))
|
|
865
|
-
await
|
|
865
|
+
await flushUpdates()
|
|
866
866
|
expect(innerContainer.hasAttribute('data-focused')).toBe(false)
|
|
867
867
|
})
|
|
868
868
|
})
|
|
@@ -948,7 +948,7 @@ describe('Select', () => {
|
|
|
948
948
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
949
949
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
950
950
|
trigger.click()
|
|
951
|
-
await
|
|
951
|
+
await flushUpdates()
|
|
952
952
|
|
|
953
953
|
// Re-query after re-render
|
|
954
954
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
@@ -960,7 +960,7 @@ describe('Select', () => {
|
|
|
960
960
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
961
961
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
962
962
|
trigger.click()
|
|
963
|
-
await
|
|
963
|
+
await flushUpdates()
|
|
964
964
|
|
|
965
965
|
const dropdown = select.querySelector('.dropdown')
|
|
966
966
|
expect(dropdown?.getAttribute('role')).toBe('listbox')
|
|
@@ -971,7 +971,7 @@ describe('Select', () => {
|
|
|
971
971
|
await usingAsync(await renderSelect(), async ({ select }) => {
|
|
972
972
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
973
973
|
trigger.click()
|
|
974
|
-
await
|
|
974
|
+
await flushUpdates()
|
|
975
975
|
|
|
976
976
|
const items = select.querySelectorAll('.dropdown-item')
|
|
977
977
|
items.forEach((item) => {
|
|
@@ -984,7 +984,7 @@ describe('Select', () => {
|
|
|
984
984
|
await usingAsync(await renderSelect({ options: defaultOptions, mode: 'multiple' }), async ({ select }) => {
|
|
985
985
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
986
986
|
trigger.click()
|
|
987
|
-
await
|
|
987
|
+
await flushUpdates()
|
|
988
988
|
|
|
989
989
|
const dropdown = select.querySelector('.dropdown')
|
|
990
990
|
expect(dropdown?.getAttribute('aria-multiselectable')).toBe('true')
|
|
@@ -1006,11 +1006,11 @@ describe('Select', () => {
|
|
|
1006
1006
|
async ({ select }) => {
|
|
1007
1007
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1008
1008
|
trigger.click()
|
|
1009
|
-
await
|
|
1009
|
+
await flushUpdates()
|
|
1010
1010
|
|
|
1011
1011
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
1012
1012
|
searchInput.dispatchEvent(new KeyboardEvent('keydown', { key: 'Backspace', bubbles: true }))
|
|
1013
|
-
await
|
|
1013
|
+
await flushUpdates()
|
|
1014
1014
|
|
|
1015
1015
|
expect(onMultiValueChange).toHaveBeenCalledWith(['a'])
|
|
1016
1016
|
},
|
|
@@ -1024,22 +1024,22 @@ describe('Select', () => {
|
|
|
1024
1024
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
1025
1025
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1026
1026
|
trigger.click()
|
|
1027
|
-
await
|
|
1027
|
+
await flushUpdates()
|
|
1028
1028
|
|
|
1029
1029
|
// Navigate to End first
|
|
1030
1030
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
1031
1031
|
trigger2.dispatchEvent(new KeyboardEvent('keydown', { key: 'End', bubbles: true }))
|
|
1032
|
-
await
|
|
1032
|
+
await flushUpdates()
|
|
1033
1033
|
|
|
1034
1034
|
// Now ArrowUp
|
|
1035
1035
|
const trigger3 = select.querySelector('.select-trigger') as HTMLElement
|
|
1036
1036
|
trigger3.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
1037
|
-
await
|
|
1037
|
+
await flushUpdates()
|
|
1038
1038
|
|
|
1039
1039
|
// Then select with Enter
|
|
1040
1040
|
const trigger4 = select.querySelector('.select-trigger') as HTMLElement
|
|
1041
1041
|
trigger4.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
1042
|
-
await
|
|
1042
|
+
await flushUpdates()
|
|
1043
1043
|
|
|
1044
1044
|
expect(onValueChange).toHaveBeenCalledWith('b')
|
|
1045
1045
|
})
|
|
@@ -1052,15 +1052,15 @@ describe('Select', () => {
|
|
|
1052
1052
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
1053
1053
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1054
1054
|
trigger.click()
|
|
1055
|
-
await
|
|
1055
|
+
await flushUpdates()
|
|
1056
1056
|
|
|
1057
1057
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
1058
1058
|
trigger2.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
1059
|
-
await
|
|
1059
|
+
await flushUpdates()
|
|
1060
1060
|
|
|
1061
1061
|
const trigger3 = select.querySelector('.select-trigger') as HTMLElement
|
|
1062
1062
|
trigger3.dispatchEvent(new KeyboardEvent('keydown', { key: ' ', bubbles: true }))
|
|
1063
|
-
await
|
|
1063
|
+
await flushUpdates()
|
|
1064
1064
|
|
|
1065
1065
|
expect(onValueChange).toHaveBeenCalled()
|
|
1066
1066
|
})
|
|
@@ -1073,11 +1073,11 @@ describe('Select', () => {
|
|
|
1073
1073
|
async ({ select }) => {
|
|
1074
1074
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1075
1075
|
trigger.click()
|
|
1076
|
-
await
|
|
1076
|
+
await flushUpdates()
|
|
1077
1077
|
|
|
1078
1078
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
1079
1079
|
searchInput.dispatchEvent(new KeyboardEvent('keydown', { key: ' ', bubbles: true }))
|
|
1080
|
-
await
|
|
1080
|
+
await flushUpdates()
|
|
1081
1081
|
|
|
1082
1082
|
// Space should be ignored as a selection trigger when search is active
|
|
1083
1083
|
expect(onValueChange).not.toHaveBeenCalled()
|
|
@@ -1092,15 +1092,15 @@ describe('Select', () => {
|
|
|
1092
1092
|
await usingAsync(await renderSelect({ options: defaultOptions, onValueChange }), async ({ select }) => {
|
|
1093
1093
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1094
1094
|
trigger.click()
|
|
1095
|
-
await
|
|
1095
|
+
await flushUpdates()
|
|
1096
1096
|
|
|
1097
1097
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
1098
1098
|
trigger2.dispatchEvent(new KeyboardEvent('keydown', { key: 'Home', bubbles: true }))
|
|
1099
|
-
await
|
|
1099
|
+
await flushUpdates()
|
|
1100
1100
|
|
|
1101
1101
|
const trigger3 = select.querySelector('.select-trigger') as HTMLElement
|
|
1102
1102
|
trigger3.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }))
|
|
1103
|
-
await
|
|
1103
|
+
await flushUpdates()
|
|
1104
1104
|
|
|
1105
1105
|
expect(onValueChange).toHaveBeenCalledWith('a')
|
|
1106
1106
|
})
|
|
@@ -1142,11 +1142,11 @@ describe('Select', () => {
|
|
|
1142
1142
|
async ({ select }) => {
|
|
1143
1143
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1144
1144
|
trigger.click()
|
|
1145
|
-
await
|
|
1145
|
+
await flushUpdates()
|
|
1146
1146
|
|
|
1147
1147
|
const items = select.querySelectorAll('.dropdown-item')
|
|
1148
1148
|
;(items[1] as HTMLElement).click()
|
|
1149
|
-
await
|
|
1149
|
+
await flushUpdates()
|
|
1150
1150
|
|
|
1151
1151
|
expect(onValueChange).toHaveBeenCalledWith('a,b')
|
|
1152
1152
|
},
|
|
@@ -1167,7 +1167,7 @@ describe('Select', () => {
|
|
|
1167
1167
|
async ({ select }) => {
|
|
1168
1168
|
const chipRemoves = select.querySelectorAll('.select-chip-remove')
|
|
1169
1169
|
;(chipRemoves[0] as HTMLElement).click()
|
|
1170
|
-
await
|
|
1170
|
+
await flushUpdates()
|
|
1171
1171
|
|
|
1172
1172
|
expect(onValueChange).toHaveBeenCalledWith('b')
|
|
1173
1173
|
},
|
|
@@ -1204,12 +1204,12 @@ describe('Select', () => {
|
|
|
1204
1204
|
await usingAsync(await renderSelect({ optionGroups, showSearch: true }), async ({ select }) => {
|
|
1205
1205
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1206
1206
|
trigger.click()
|
|
1207
|
-
await
|
|
1207
|
+
await flushUpdates()
|
|
1208
1208
|
|
|
1209
1209
|
const searchInput = select.querySelector('.dropdown-search') as HTMLInputElement
|
|
1210
1210
|
searchInput.value = 'zzz'
|
|
1211
1211
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }))
|
|
1212
|
-
await
|
|
1212
|
+
await flushUpdates()
|
|
1213
1213
|
|
|
1214
1214
|
const noResults = select.querySelector('.dropdown-no-results')
|
|
1215
1215
|
expect(noResults).not.toBeNull()
|
|
@@ -1223,13 +1223,13 @@ describe('Select', () => {
|
|
|
1223
1223
|
await usingAsync(await renderSelect({ options: defaultOptions, mode: 'multiple' }), async ({ select }) => {
|
|
1224
1224
|
const trigger = select.querySelector('.select-trigger') as HTMLElement
|
|
1225
1225
|
trigger.click()
|
|
1226
|
-
await
|
|
1226
|
+
await flushUpdates()
|
|
1227
1227
|
expect(select.hasAttribute('data-open')).toBe(true)
|
|
1228
1228
|
|
|
1229
1229
|
// In multi mode, clicking trigger again should NOT close (only backdrop closes)
|
|
1230
1230
|
const trigger2 = select.querySelector('.select-trigger') as HTMLElement
|
|
1231
1231
|
trigger2.click()
|
|
1232
|
-
await
|
|
1232
|
+
await flushUpdates()
|
|
1233
1233
|
// It should still remain open or re-open in multi mode
|
|
1234
1234
|
})
|
|
1235
1235
|
})
|