@crowdstrike/glide-core 0.13.1 → 0.14.1
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/dist/drawer.d.ts +2 -2
- package/dist/drawer.js +1 -1
- package/dist/drawer.styles.js +3 -14
- package/dist/dropdown.styles.js +3 -2
- package/dist/input.styles.js +1 -0
- package/dist/styles/variables.css +1 -1
- package/dist/textarea.styles.js +2 -0
- package/dist/toasts.d.ts +2 -2
- package/dist/toasts.toast.d.ts +1 -1
- package/dist/toasts.toast.js +1 -1
- package/dist/toasts.toast.styles.js +8 -0
- package/dist/tree.item.styles.js +2 -2
- package/package.json +8 -5
- package/dist/accordion.stories.d.ts +0 -6
- package/dist/accordion.test.basics.d.ts +0 -1
- package/dist/accordion.test.basics.js +0 -28
- package/dist/accordion.test.events.d.ts +0 -1
- package/dist/accordion.test.events.js +0 -28
- package/dist/accordion.test.focus.d.ts +0 -1
- package/dist/accordion.test.focus.js +0 -11
- package/dist/accordion.test.interactions.d.ts +0 -1
- package/dist/accordion.test.interactions.js +0 -75
- package/dist/button-group.button.test.basics.d.ts +0 -1
- package/dist/button-group.button.test.basics.js +0 -97
- package/dist/button-group.button.test.events.d.ts +0 -1
- package/dist/button-group.button.test.events.js +0 -15
- package/dist/button-group.button.test.focus.d.ts +0 -1
- package/dist/button-group.button.test.focus.js +0 -13
- package/dist/button-group.button.test.interactions.d.ts +0 -1
- package/dist/button-group.button.test.interactions.js +0 -42
- package/dist/button-group.stories.d.ts +0 -7
- package/dist/button-group.test.basics.d.ts +0 -1
- package/dist/button-group.test.basics.js +0 -148
- package/dist/button-group.test.events.d.ts +0 -1
- package/dist/button-group.test.events.js +0 -241
- package/dist/button-group.test.focus.d.ts +0 -1
- package/dist/button-group.test.focus.js +0 -39
- package/dist/button-group.test.interactions.d.ts +0 -1
- package/dist/button-group.test.interactions.js +0 -91
- package/dist/button.stories.d.ts +0 -7
- package/dist/button.test.basics.d.ts +0 -1
- package/dist/button.test.basics.js +0 -69
- package/dist/button.test.events.d.ts +0 -1
- package/dist/button.test.events.js +0 -102
- package/dist/checkbox-group.stories.d.ts +0 -6
- package/dist/checkbox-group.test.basics.d.ts +0 -1
- package/dist/checkbox-group.test.basics.js +0 -116
- package/dist/checkbox-group.test.events.d.ts +0 -1
- package/dist/checkbox-group.test.events.js +0 -111
- package/dist/checkbox-group.test.focus.d.ts +0 -1
- package/dist/checkbox-group.test.focus.js +0 -70
- package/dist/checkbox-group.test.form.d.ts +0 -1
- package/dist/checkbox-group.test.form.js +0 -131
- package/dist/checkbox-group.test.interactions.d.ts +0 -1
- package/dist/checkbox-group.test.interactions.js +0 -82
- package/dist/checkbox-group.test.validity.d.ts +0 -1
- package/dist/checkbox-group.test.validity.js +0 -145
- package/dist/checkbox.stories.d.ts +0 -5
- package/dist/checkbox.test.basics.d.ts +0 -1
- package/dist/checkbox.test.basics.js +0 -90
- package/dist/checkbox.test.events.d.ts +0 -1
- package/dist/checkbox.test.events.js +0 -105
- package/dist/checkbox.test.focus.d.ts +0 -1
- package/dist/checkbox.test.focus.js +0 -51
- package/dist/checkbox.test.form.d.ts +0 -1
- package/dist/checkbox.test.form.js +0 -133
- package/dist/checkbox.test.interactions.d.ts +0 -1
- package/dist/checkbox.test.interactions.js +0 -131
- package/dist/checkbox.test.validity.d.ts +0 -1
- package/dist/checkbox.test.validity.js +0 -128
- package/dist/drawer.stories.d.ts +0 -6
- package/dist/drawer.test.accessibility.d.ts +0 -1
- package/dist/drawer.test.accessibility.js +0 -22
- package/dist/drawer.test.basics.d.ts +0 -1
- package/dist/drawer.test.basics.js +0 -44
- package/dist/drawer.test.closing.d.ts +0 -1
- package/dist/drawer.test.closing.js +0 -40
- package/dist/drawer.test.events.d.ts +0 -1
- package/dist/drawer.test.events.js +0 -42
- package/dist/drawer.test.methods.d.ts +0 -1
- package/dist/drawer.test.methods.js +0 -35
- package/dist/dropdown.option.test.basics.d.ts +0 -1
- package/dist/dropdown.option.test.basics.js +0 -34
- package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
- package/dist/dropdown.option.test.basics.multiple.js +0 -36
- package/dist/dropdown.option.test.basics.single.d.ts +0 -1
- package/dist/dropdown.option.test.basics.single.js +0 -29
- package/dist/dropdown.option.test.events.d.ts +0 -1
- package/dist/dropdown.option.test.events.js +0 -36
- package/dist/dropdown.option.test.focus.d.ts +0 -1
- package/dist/dropdown.option.test.focus.js +0 -11
- package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
- package/dist/dropdown.option.test.interactions.multiple.js +0 -42
- package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
- package/dist/dropdown.option.test.interactions.single.js +0 -76
- package/dist/dropdown.stories.d.ts +0 -8
- package/dist/dropdown.test.basics.d.ts +0 -1
- package/dist/dropdown.test.basics.filterable.d.ts +0 -1
- package/dist/dropdown.test.basics.filterable.js +0 -108
- package/dist/dropdown.test.basics.js +0 -181
- package/dist/dropdown.test.basics.multiple.d.ts +0 -1
- package/dist/dropdown.test.basics.multiple.js +0 -259
- package/dist/dropdown.test.basics.single.d.ts +0 -1
- package/dist/dropdown.test.basics.single.js +0 -122
- package/dist/dropdown.test.events.d.ts +0 -1
- package/dist/dropdown.test.events.filterable.d.ts +0 -1
- package/dist/dropdown.test.events.filterable.js +0 -31
- package/dist/dropdown.test.events.js +0 -251
- package/dist/dropdown.test.events.multiple.d.ts +0 -1
- package/dist/dropdown.test.events.multiple.js +0 -446
- package/dist/dropdown.test.events.single.d.ts +0 -1
- package/dist/dropdown.test.events.single.js +0 -343
- package/dist/dropdown.test.focus.d.ts +0 -1
- package/dist/dropdown.test.focus.filterable.d.ts +0 -1
- package/dist/dropdown.test.focus.filterable.js +0 -140
- package/dist/dropdown.test.focus.js +0 -107
- package/dist/dropdown.test.focus.multiple.d.ts +0 -1
- package/dist/dropdown.test.focus.multiple.js +0 -170
- package/dist/dropdown.test.focus.single.d.ts +0 -1
- package/dist/dropdown.test.focus.single.js +0 -42
- package/dist/dropdown.test.form.d.ts +0 -1
- package/dist/dropdown.test.form.js +0 -74
- package/dist/dropdown.test.form.multiple.d.ts +0 -1
- package/dist/dropdown.test.form.multiple.js +0 -151
- package/dist/dropdown.test.form.single.d.ts +0 -1
- package/dist/dropdown.test.form.single.js +0 -129
- package/dist/dropdown.test.interactions.d.ts +0 -1
- package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
- package/dist/dropdown.test.interactions.filterable.js +0 -805
- package/dist/dropdown.test.interactions.js +0 -696
- package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
- package/dist/dropdown.test.interactions.multiple.js +0 -1026
- package/dist/dropdown.test.interactions.single.d.ts +0 -1
- package/dist/dropdown.test.interactions.single.js +0 -569
- package/dist/dropdown.test.validity.d.ts +0 -1
- package/dist/dropdown.test.validity.js +0 -181
- package/dist/form-controls-layout.stories.d.ts +0 -10
- package/dist/form-controls-layout.test.basics.d.ts +0 -2
- package/dist/form-controls-layout.test.basics.js +0 -75
- package/dist/form-controls-layout.test.interactions.d.ts +0 -2
- package/dist/form-controls-layout.test.interactions.js +0 -26
- package/dist/icon-button.stories.d.ts +0 -6
- package/dist/icon-button.test.basics.d.ts +0 -1
- package/dist/icon-button.test.basics.js +0 -43
- package/dist/icon-button.test.focus.d.ts +0 -1
- package/dist/icon-button.test.focus.js +0 -13
- package/dist/input.stories.d.ts +0 -8
- package/dist/input.test.basics.d.ts +0 -1
- package/dist/input.test.basics.js +0 -138
- package/dist/input.test.events.d.ts +0 -1
- package/dist/input.test.events.js +0 -98
- package/dist/input.test.focus.d.ts +0 -1
- package/dist/input.test.focus.js +0 -58
- package/dist/input.test.form.d.ts +0 -1
- package/dist/input.test.form.js +0 -74
- package/dist/input.test.validity.d.ts +0 -1
- package/dist/input.test.validity.js +0 -258
- package/dist/label.test.basics.d.ts +0 -1
- package/dist/label.test.basics.js +0 -136
- package/dist/menu.button.test.basics.d.ts +0 -1
- package/dist/menu.button.test.basics.js +0 -43
- package/dist/menu.link.test.basics.d.ts +0 -1
- package/dist/menu.link.test.basics.js +0 -47
- package/dist/menu.options.test.basics.d.ts +0 -2
- package/dist/menu.options.test.basics.js +0 -44
- package/dist/menu.options.test.events.d.ts +0 -1
- package/dist/menu.options.test.events.js +0 -19
- package/dist/menu.stories.d.ts +0 -11
- package/dist/menu.test.basics.d.ts +0 -1
- package/dist/menu.test.basics.js +0 -178
- package/dist/menu.test.events.d.ts +0 -3
- package/dist/menu.test.events.js +0 -125
- package/dist/menu.test.focus.d.ts +0 -2
- package/dist/menu.test.focus.js +0 -102
- package/dist/menu.test.interactions.d.ts +0 -3
- package/dist/menu.test.interactions.js +0 -1069
- package/dist/modal.icon-button.test.basics.d.ts +0 -1
- package/dist/modal.icon-button.test.basics.js +0 -46
- package/dist/modal.stories.d.ts +0 -13
- package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
- package/dist/modal.tertiary-icon.test.basics.js +0 -60
- package/dist/modal.test.accessibility.d.ts +0 -1
- package/dist/modal.test.accessibility.js +0 -38
- package/dist/modal.test.basics.d.ts +0 -3
- package/dist/modal.test.basics.js +0 -204
- package/dist/modal.test.close.d.ts +0 -1
- package/dist/modal.test.close.js +0 -35
- package/dist/modal.test.events.d.ts +0 -1
- package/dist/modal.test.events.js +0 -99
- package/dist/modal.test.lock-scroll.d.ts +0 -1
- package/dist/modal.test.lock-scroll.js +0 -67
- package/dist/modal.test.methods.d.ts +0 -1
- package/dist/modal.test.methods.js +0 -20
- package/dist/modal.test.scrollbars.d.ts +0 -1
- package/dist/modal.test.scrollbars.js +0 -18
- package/dist/radio-group.stories.d.ts +0 -6
- package/dist/radio-group.test.basics.d.ts +0 -2
- package/dist/radio-group.test.basics.js +0 -324
- package/dist/radio-group.test.events.d.ts +0 -2
- package/dist/radio-group.test.events.js +0 -278
- package/dist/radio-group.test.focus.d.ts +0 -2
- package/dist/radio-group.test.focus.js +0 -95
- package/dist/radio-group.test.form.d.ts +0 -1
- package/dist/radio-group.test.form.js +0 -124
- package/dist/radio-group.test.validity.d.ts +0 -1
- package/dist/radio-group.test.validity.js +0 -311
- package/dist/split-button.primary-button.test.basics.d.ts +0 -1
- package/dist/split-button.primary-button.test.basics.js +0 -31
- package/dist/split-button.primary-button.test.focus.d.ts +0 -1
- package/dist/split-button.primary-button.test.focus.js +0 -14
- package/dist/split-button.primary-link.test.basics.d.ts +0 -1
- package/dist/split-button.primary-link.test.basics.js +0 -30
- package/dist/split-button.primary-link.test.focus.d.ts +0 -1
- package/dist/split-button.primary-link.test.focus.js +0 -15
- package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
- package/dist/split-button.secondary-button.test.basics.js +0 -58
- package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
- package/dist/split-button.secondary-button.test.focus.js +0 -14
- package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
- package/dist/split-button.secondary-button.test.interactions.js +0 -30
- package/dist/split-button.stories.d.ts +0 -13
- package/dist/split-button.test.basics.d.ts +0 -2
- package/dist/split-button.test.basics.js +0 -87
- package/dist/split-button.test.interactions.d.ts +0 -4
- package/dist/split-button.test.interactions.js +0 -51
- package/dist/tab.group.test.basics.d.ts +0 -3
- package/dist/tab.group.test.basics.js +0 -234
- package/dist/tab.group.test.interactions.d.ts +0 -3
- package/dist/tab.group.test.interactions.js +0 -434
- package/dist/tab.test.basics.d.ts +0 -1
- package/dist/tab.test.basics.js +0 -50
- package/dist/tabs.stories.d.ts +0 -8
- package/dist/tag.stories.d.ts +0 -7
- package/dist/tag.test.basics.d.ts +0 -1
- package/dist/tag.test.basics.js +0 -28
- package/dist/tag.test.events.d.ts +0 -1
- package/dist/tag.test.events.js +0 -93
- package/dist/tag.test.focus.d.ts +0 -1
- package/dist/tag.test.focus.js +0 -10
- package/dist/tag.test.interactions.d.ts +0 -1
- package/dist/tag.test.interactions.js +0 -36
- package/dist/textarea.stories.d.ts +0 -5
- package/dist/textarea.test.basics.d.ts +0 -1
- package/dist/textarea.test.basics.js +0 -177
- package/dist/textarea.test.events.d.ts +0 -1
- package/dist/textarea.test.events.js +0 -106
- package/dist/textarea.test.form.d.ts +0 -1
- package/dist/textarea.test.form.js +0 -71
- package/dist/textarea.test.validity.d.ts +0 -1
- package/dist/textarea.test.validity.js +0 -204
- package/dist/toasts.stories.d.ts +0 -7
- package/dist/toasts.test.basics.d.ts +0 -1
- package/dist/toasts.test.basics.js +0 -115
- package/dist/toasts.toast.test.basics.d.ts +0 -1
- package/dist/toasts.toast.test.basics.js +0 -139
- package/dist/toggle.stories.d.ts +0 -4
- package/dist/toggle.test.basics.d.ts +0 -1
- package/dist/toggle.test.basics.js +0 -69
- package/dist/toggle.test.events.d.ts +0 -1
- package/dist/toggle.test.events.js +0 -30
- package/dist/toggle.test.focus.d.ts +0 -1
- package/dist/toggle.test.focus.js +0 -9
- package/dist/toggle.test.interactions.d.ts +0 -1
- package/dist/toggle.test.interactions.js +0 -81
- package/dist/tooltip.stories.d.ts +0 -7
- package/dist/tooltip.test.basics.d.ts +0 -1
- package/dist/tooltip.test.basics.js +0 -100
- package/dist/tooltip.test.interactions.d.ts +0 -1
- package/dist/tooltip.test.interactions.js +0 -203
- package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
- package/dist/tree.item.icon-button.test.basics.js +0 -22
- package/dist/tree.item.menu.test.basics.d.ts +0 -1
- package/dist/tree.item.menu.test.basics.js +0 -86
- package/dist/tree.item.test.basics.d.ts +0 -2
- package/dist/tree.item.test.basics.js +0 -138
- package/dist/tree.stories.d.ts +0 -9
- package/dist/tree.test.aria.d.ts +0 -1
- package/dist/tree.test.aria.js +0 -86
- package/dist/tree.test.basics.d.ts +0 -3
- package/dist/tree.test.basics.js +0 -130
- package/dist/tree.test.events.d.ts +0 -2
- package/dist/tree.test.events.js +0 -19
- package/dist/tree.test.focus.d.ts +0 -1
- package/dist/tree.test.focus.js +0 -383
@@ -1,446 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import * as sinon from 'sinon';
|
3
|
-
import { aTimeout, expect, fixture, html, oneEvent } from '@open-wc/testing';
|
4
|
-
import { sendKeys } from '@web/test-runner-commands';
|
5
|
-
import GlideCoreDropdown from './dropdown.js';
|
6
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
7
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
8
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
9
|
-
it('dispatches one "change" event when an option is selected via click', async () => {
|
10
|
-
const component = await fixture(html `<glide-core-dropdown
|
11
|
-
label="Label"
|
12
|
-
placeholder="Placeholder"
|
13
|
-
open
|
14
|
-
multiple
|
15
|
-
>
|
16
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
17
|
-
|
18
|
-
<glide-core-dropdown-option
|
19
|
-
label="Two"
|
20
|
-
selected
|
21
|
-
></glide-core-dropdown-option>
|
22
|
-
</glide-core-dropdown>`);
|
23
|
-
const spy = sinon.spy();
|
24
|
-
component.addEventListener('change', spy);
|
25
|
-
setTimeout(() => {
|
26
|
-
// Calling `click()` isn't sufficient because it simply sets
|
27
|
-
// `selected` and so isn't likely to produce a duplicate event,
|
28
|
-
// we assert against below. The checkbox, because it produces
|
29
|
-
// its own "change" event, is most likely where the duplicate would
|
30
|
-
// come from.
|
31
|
-
component
|
32
|
-
.querySelector('glide-core-dropdown-option')
|
33
|
-
?.shadowRoot?.querySelector('[data-test="checkbox"]')
|
34
|
-
?.click();
|
35
|
-
});
|
36
|
-
const event = await oneEvent(component, 'change');
|
37
|
-
expect(event instanceof Event).to.be.true;
|
38
|
-
expect(event.bubbles).to.be.true;
|
39
|
-
expect(spy.callCount).to.equal(1);
|
40
|
-
});
|
41
|
-
it('dispatches one "change" event when an option is selected via Enter', async () => {
|
42
|
-
const component = await fixture(html `<glide-core-dropdown
|
43
|
-
label="Label"
|
44
|
-
placeholder="Placeholder"
|
45
|
-
open
|
46
|
-
multiple
|
47
|
-
>
|
48
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
49
|
-
|
50
|
-
<glide-core-dropdown-option
|
51
|
-
label="Two"
|
52
|
-
selected
|
53
|
-
></glide-core-dropdown-option>
|
54
|
-
</glide-core-dropdown>`);
|
55
|
-
const spy = sinon.spy();
|
56
|
-
component.addEventListener('change', spy);
|
57
|
-
// Activate the first option before selecting it. The second option is
|
58
|
-
// currently active because it's selected.
|
59
|
-
component
|
60
|
-
.querySelector('glide-core-dropdown-option')
|
61
|
-
?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
62
|
-
component.focus();
|
63
|
-
sendKeys({ press: 'Enter' });
|
64
|
-
const event = await oneEvent(component, 'change');
|
65
|
-
expect(event instanceof Event).to.be.true;
|
66
|
-
expect(event.bubbles).to.be.true;
|
67
|
-
expect(spy.callCount).to.equal(1);
|
68
|
-
});
|
69
|
-
it('dispatches one "change" event when an option is selected via Space', async () => {
|
70
|
-
const component = await fixture(html `<glide-core-dropdown
|
71
|
-
label="Label"
|
72
|
-
placeholder="Placeholder"
|
73
|
-
open
|
74
|
-
multiple
|
75
|
-
>
|
76
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
77
|
-
|
78
|
-
<glide-core-dropdown-option
|
79
|
-
label="Two"
|
80
|
-
selected
|
81
|
-
></glide-core-dropdown-option>
|
82
|
-
</glide-core-dropdown>`);
|
83
|
-
const spy = sinon.spy();
|
84
|
-
component.addEventListener('change', spy);
|
85
|
-
// Activate the first option before selecting it. The second option is
|
86
|
-
// currently active because it's selected.
|
87
|
-
component
|
88
|
-
.querySelector('glide-core-dropdown-option')
|
89
|
-
?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
90
|
-
component.focus();
|
91
|
-
sendKeys({ press: ' ' });
|
92
|
-
const event = await oneEvent(component, 'change');
|
93
|
-
expect(event instanceof Event).to.be.true;
|
94
|
-
expect(event.bubbles).to.be.true;
|
95
|
-
expect(spy.callCount).to.equal(1);
|
96
|
-
});
|
97
|
-
it('dispatches one "input" event when an option is selected via click', async () => {
|
98
|
-
const component = await fixture(html `<glide-core-dropdown
|
99
|
-
label="Label"
|
100
|
-
placeholder="Placeholder"
|
101
|
-
open
|
102
|
-
multiple
|
103
|
-
>
|
104
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
105
|
-
|
106
|
-
<glide-core-dropdown-option
|
107
|
-
label="Two"
|
108
|
-
selected
|
109
|
-
></glide-core-dropdown-option>
|
110
|
-
</glide-core-dropdown>`);
|
111
|
-
const spy = sinon.spy();
|
112
|
-
component.addEventListener('input', spy);
|
113
|
-
setTimeout(() => {
|
114
|
-
// Calling `click()` isn't sufficient because it simply sets
|
115
|
-
// `selected` and so isn't likely to produce a duplicate event,
|
116
|
-
// we assert against below. The checkbox, because it produces
|
117
|
-
// its own "change" event, is most likely where the duplicate would
|
118
|
-
// come from.
|
119
|
-
component
|
120
|
-
.querySelector('glide-core-dropdown-option')
|
121
|
-
?.shadowRoot?.querySelector('[data-test="checkbox"]')
|
122
|
-
?.click();
|
123
|
-
});
|
124
|
-
const event = await oneEvent(component, 'input');
|
125
|
-
expect(event instanceof Event).to.be.true;
|
126
|
-
expect(event.bubbles).to.be.true;
|
127
|
-
expect(spy.callCount).to.equal(1);
|
128
|
-
});
|
129
|
-
it('dispatches one "input" event when an option is selected via Enter', async () => {
|
130
|
-
const component = await fixture(html `<glide-core-dropdown
|
131
|
-
label="Label"
|
132
|
-
placeholder="Placeholder"
|
133
|
-
open
|
134
|
-
multiple
|
135
|
-
>
|
136
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
137
|
-
|
138
|
-
<glide-core-dropdown-option
|
139
|
-
label="Two"
|
140
|
-
selected
|
141
|
-
></glide-core-dropdown-option>
|
142
|
-
</glide-core-dropdown>`);
|
143
|
-
const spy = sinon.spy();
|
144
|
-
component.addEventListener('input', spy);
|
145
|
-
// Activate the first option before selecting it. The second option is
|
146
|
-
// currently active because it's selected.
|
147
|
-
component
|
148
|
-
.querySelector('glide-core-dropdown-option')
|
149
|
-
?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
150
|
-
component.focus();
|
151
|
-
sendKeys({ press: 'Enter' });
|
152
|
-
const event = await oneEvent(component, 'input');
|
153
|
-
expect(event instanceof Event).to.be.true;
|
154
|
-
expect(event.bubbles).to.be.true;
|
155
|
-
expect(spy.callCount).to.equal(1);
|
156
|
-
});
|
157
|
-
it('dispatches one "input" event when an option is selected via Space', async () => {
|
158
|
-
const component = await fixture(html `<glide-core-dropdown
|
159
|
-
label="Label"
|
160
|
-
placeholder="Placeholder"
|
161
|
-
open
|
162
|
-
multiple
|
163
|
-
>
|
164
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
165
|
-
|
166
|
-
<glide-core-dropdown-option
|
167
|
-
label="Two"
|
168
|
-
selected
|
169
|
-
></glide-core-dropdown-option>
|
170
|
-
</glide-core-dropdown>`);
|
171
|
-
const spy = sinon.spy();
|
172
|
-
component.addEventListener('input', spy);
|
173
|
-
// Activate the first option before selecting it. The second option is
|
174
|
-
// currently active because it's selected.
|
175
|
-
component
|
176
|
-
.querySelector('glide-core-dropdown-option')
|
177
|
-
?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
178
|
-
component.focus();
|
179
|
-
sendKeys({ press: ' ' });
|
180
|
-
const event = await oneEvent(component, 'input');
|
181
|
-
expect(event instanceof Event).to.be.true;
|
182
|
-
expect(event.bubbles).to.be.true;
|
183
|
-
expect(spy.callCount).to.equal(1);
|
184
|
-
});
|
185
|
-
it('dispatches one "change" event when Select All is clicked', async () => {
|
186
|
-
const component = await fixture(html `<glide-core-dropdown
|
187
|
-
label="Label"
|
188
|
-
placeholder="Placeholder"
|
189
|
-
open
|
190
|
-
multiple
|
191
|
-
select-all
|
192
|
-
>
|
193
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
194
|
-
|
195
|
-
<glide-core-dropdown-option
|
196
|
-
label="Two"
|
197
|
-
selected
|
198
|
-
></glide-core-dropdown-option>
|
199
|
-
</glide-core-dropdown>`);
|
200
|
-
const spy = sinon.spy();
|
201
|
-
component.addEventListener('change', spy);
|
202
|
-
setTimeout(() => {
|
203
|
-
component.shadowRoot
|
204
|
-
?.querySelector('[data-test="select-all"]')
|
205
|
-
?.click();
|
206
|
-
});
|
207
|
-
await aTimeout(0);
|
208
|
-
expect(spy.callCount).to.equal(1);
|
209
|
-
});
|
210
|
-
it('dispatches one "input" event when Select All is clicked', async () => {
|
211
|
-
const component = await fixture(html `<glide-core-dropdown
|
212
|
-
label="Label"
|
213
|
-
placeholder="Placeholder"
|
214
|
-
open
|
215
|
-
multiple
|
216
|
-
select-all
|
217
|
-
>
|
218
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
219
|
-
|
220
|
-
<glide-core-dropdown-option
|
221
|
-
label="Two"
|
222
|
-
selected
|
223
|
-
></glide-core-dropdown-option>
|
224
|
-
</glide-core-dropdown>`);
|
225
|
-
const spy = sinon.spy();
|
226
|
-
component.addEventListener('input', spy);
|
227
|
-
setTimeout(() => {
|
228
|
-
component.shadowRoot
|
229
|
-
?.querySelector('[data-test="select-all"]')
|
230
|
-
?.click();
|
231
|
-
});
|
232
|
-
await aTimeout(0);
|
233
|
-
expect(spy.callCount).to.equal(1);
|
234
|
-
});
|
235
|
-
it('does not dispatch a "change" event when `value` is changed programmatically', async () => {
|
236
|
-
const component = await fixture(html `<glide-core-dropdown
|
237
|
-
label="Label"
|
238
|
-
placeholder="Placeholder"
|
239
|
-
open
|
240
|
-
multiple
|
241
|
-
>
|
242
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
243
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
244
|
-
|
245
|
-
<glide-core-dropdown-option
|
246
|
-
label="Three"
|
247
|
-
selected
|
248
|
-
></glide-core-dropdown-option>
|
249
|
-
</glide-core-dropdown>`);
|
250
|
-
const spy = sinon.spy();
|
251
|
-
component.addEventListener('change', spy);
|
252
|
-
setTimeout(() => {
|
253
|
-
component.value = ['one', 'two'];
|
254
|
-
});
|
255
|
-
await aTimeout(0);
|
256
|
-
expect(spy.callCount).to.equal(0);
|
257
|
-
});
|
258
|
-
it('continues to dispatch "change" events upon selection after `value` is changed programmatically', async () => {
|
259
|
-
const component = await fixture(html `<glide-core-dropdown
|
260
|
-
label="Label"
|
261
|
-
placeholder="Placeholder"
|
262
|
-
open
|
263
|
-
multiple
|
264
|
-
>
|
265
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
266
|
-
|
267
|
-
<glide-core-dropdown-option
|
268
|
-
label="Two"
|
269
|
-
selected
|
270
|
-
></glide-core-dropdown-option>
|
271
|
-
|
272
|
-
<glide-core-dropdown-option
|
273
|
-
label="Three"
|
274
|
-
selected
|
275
|
-
></glide-core-dropdown-option>
|
276
|
-
</glide-core-dropdown>`);
|
277
|
-
component.value = ['one', 'two'];
|
278
|
-
setTimeout(() => {
|
279
|
-
component
|
280
|
-
.querySelector('glide-core-dropdown-option:last-of-type')
|
281
|
-
?.click();
|
282
|
-
});
|
283
|
-
const event = await oneEvent(component, 'change');
|
284
|
-
expect(event instanceof Event).to.be.true;
|
285
|
-
});
|
286
|
-
it('does not dispatch an "input" event when `value` is changed programmatically', async () => {
|
287
|
-
const component = await fixture(html `<glide-core-dropdown
|
288
|
-
label="Label"
|
289
|
-
placeholder="Placeholder"
|
290
|
-
open
|
291
|
-
multiple
|
292
|
-
>
|
293
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
294
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
295
|
-
|
296
|
-
<glide-core-dropdown-option
|
297
|
-
label="Three"
|
298
|
-
selected
|
299
|
-
></glide-core-dropdown-option>
|
300
|
-
</glide-core-dropdown>`);
|
301
|
-
const spy = sinon.spy();
|
302
|
-
component.addEventListener('input', spy);
|
303
|
-
setTimeout(() => {
|
304
|
-
component.value = ['one', 'two'];
|
305
|
-
});
|
306
|
-
await aTimeout(0);
|
307
|
-
expect(spy.callCount).to.equal(0);
|
308
|
-
});
|
309
|
-
it('continues to dispatch "input" events upon selection after `value` is changed programmatically', async () => {
|
310
|
-
const component = await fixture(html `<glide-core-dropdown
|
311
|
-
label="Label"
|
312
|
-
placeholder="Placeholder"
|
313
|
-
open
|
314
|
-
multiple
|
315
|
-
>
|
316
|
-
<glide-core-dropdown-option
|
317
|
-
label="One"
|
318
|
-
value="one"
|
319
|
-
></glide-core-dropdown-option>
|
320
|
-
|
321
|
-
<glide-core-dropdown-option
|
322
|
-
label="Two"
|
323
|
-
selected
|
324
|
-
></glide-core-dropdown-option>
|
325
|
-
|
326
|
-
<glide-core-dropdown-option
|
327
|
-
label="Three"
|
328
|
-
value="three"
|
329
|
-
selected
|
330
|
-
></glide-core-dropdown-option>
|
331
|
-
</glide-core-dropdown>`);
|
332
|
-
component.value = ['one', 'two'];
|
333
|
-
setTimeout(() => {
|
334
|
-
component
|
335
|
-
.querySelector('glide-core-dropdown-option:last-of-type')
|
336
|
-
?.click();
|
337
|
-
});
|
338
|
-
const event = await oneEvent(component, 'input');
|
339
|
-
expect(event instanceof Event).to.be.true;
|
340
|
-
});
|
341
|
-
it('dispatches one "change" event when an option is selected after Select All is clicked', async () => {
|
342
|
-
const component = await fixture(html `<glide-core-dropdown
|
343
|
-
label="Label"
|
344
|
-
placeholder="Placeholder"
|
345
|
-
open
|
346
|
-
multiple
|
347
|
-
select-all
|
348
|
-
>
|
349
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
350
|
-
|
351
|
-
<glide-core-dropdown-option
|
352
|
-
label="Two"
|
353
|
-
selected
|
354
|
-
></glide-core-dropdown-option>
|
355
|
-
</glide-core-dropdown>`);
|
356
|
-
setTimeout(() => {
|
357
|
-
component.shadowRoot
|
358
|
-
?.querySelector('[data-test="select-all"]')
|
359
|
-
?.click();
|
360
|
-
});
|
361
|
-
await aTimeout(0);
|
362
|
-
const spy = sinon.spy();
|
363
|
-
component.addEventListener('change', spy);
|
364
|
-
setTimeout(() => {
|
365
|
-
component.querySelector('glide-core-dropdown-option')?.click();
|
366
|
-
});
|
367
|
-
await aTimeout(0);
|
368
|
-
expect(spy.callCount).to.equal(1);
|
369
|
-
});
|
370
|
-
it('dispatches one "input" event when an option is selected after Select All is clicked', async () => {
|
371
|
-
const component = await fixture(html `<glide-core-dropdown
|
372
|
-
label="Label"
|
373
|
-
placeholder="Placeholder"
|
374
|
-
open
|
375
|
-
multiple
|
376
|
-
select-all
|
377
|
-
>
|
378
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
379
|
-
|
380
|
-
<glide-core-dropdown-option
|
381
|
-
label="Two"
|
382
|
-
selected
|
383
|
-
></glide-core-dropdown-option>
|
384
|
-
</glide-core-dropdown>`);
|
385
|
-
setTimeout(() => {
|
386
|
-
component.shadowRoot
|
387
|
-
?.querySelector('[data-test="select-all"]')
|
388
|
-
?.click();
|
389
|
-
});
|
390
|
-
await aTimeout(0);
|
391
|
-
const spy = sinon.spy();
|
392
|
-
component.addEventListener('input', spy);
|
393
|
-
setTimeout(() => {
|
394
|
-
component.querySelector('glide-core-dropdown-option')?.click();
|
395
|
-
});
|
396
|
-
await aTimeout(0);
|
397
|
-
expect(spy.callCount).to.equal(1);
|
398
|
-
});
|
399
|
-
it('dispatches one "change" event when a tag is removed', async () => {
|
400
|
-
const component = await fixture(html `<glide-core-dropdown
|
401
|
-
label="Label"
|
402
|
-
placeholder="Placeholder"
|
403
|
-
open
|
404
|
-
multiple
|
405
|
-
>
|
406
|
-
<glide-core-dropdown-option
|
407
|
-
label="One"
|
408
|
-
selected
|
409
|
-
></glide-core-dropdown-option>
|
410
|
-
|
411
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
412
|
-
</glide-core-dropdown>`);
|
413
|
-
setTimeout(() => {
|
414
|
-
component.shadowRoot
|
415
|
-
?.querySelector('[data-test="tag"]')
|
416
|
-
?.click();
|
417
|
-
});
|
418
|
-
const spy = sinon.spy();
|
419
|
-
component.addEventListener('change', spy);
|
420
|
-
await aTimeout(0);
|
421
|
-
expect(spy.callCount).to.equal(1);
|
422
|
-
});
|
423
|
-
it('dispatches one "input" event when a tag is removed', async () => {
|
424
|
-
const component = await fixture(html `<glide-core-dropdown
|
425
|
-
label="Label"
|
426
|
-
placeholder="Placeholder"
|
427
|
-
open
|
428
|
-
multiple
|
429
|
-
>
|
430
|
-
<glide-core-dropdown-option
|
431
|
-
label="One"
|
432
|
-
selected
|
433
|
-
></glide-core-dropdown-option>
|
434
|
-
|
435
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
436
|
-
</glide-core-dropdown>`);
|
437
|
-
setTimeout(() => {
|
438
|
-
component.shadowRoot
|
439
|
-
?.querySelector('[data-test="tag"]')
|
440
|
-
?.click();
|
441
|
-
});
|
442
|
-
const spy = sinon.spy();
|
443
|
-
component.addEventListener('input', spy);
|
444
|
-
await aTimeout(0);
|
445
|
-
expect(spy.callCount).to.equal(1);
|
446
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|