@spectrum-web-components/menu 0.16.0 → 0.16.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.
Files changed (109) hide show
  1. package/package.json +5 -5
  2. package/sp-menu-divider.dev.js +1 -0
  3. package/sp-menu-divider.dev.js.map +1 -1
  4. package/sp-menu-divider.js +1 -1
  5. package/sp-menu-divider.js.map +2 -2
  6. package/sp-menu-group.dev.js +1 -0
  7. package/sp-menu-group.dev.js.map +1 -1
  8. package/sp-menu-group.js +1 -1
  9. package/sp-menu-group.js.map +2 -2
  10. package/sp-menu-item.dev.js +1 -0
  11. package/sp-menu-item.dev.js.map +1 -1
  12. package/sp-menu-item.js +1 -1
  13. package/sp-menu-item.js.map +2 -2
  14. package/sp-menu.dev.js +1 -0
  15. package/sp-menu.dev.js.map +1 -1
  16. package/sp-menu.js +1 -1
  17. package/sp-menu.js.map +2 -2
  18. package/src/Menu.dev.js +51 -24
  19. package/src/Menu.dev.js.map +1 -1
  20. package/src/Menu.js +2 -2
  21. package/src/Menu.js.map +2 -2
  22. package/src/MenuDivider.dev.js +1 -0
  23. package/src/MenuDivider.dev.js.map +1 -1
  24. package/src/MenuDivider.js +1 -1
  25. package/src/MenuDivider.js.map +2 -2
  26. package/src/MenuGroup.dev.js +4 -3
  27. package/src/MenuGroup.dev.js.map +1 -1
  28. package/src/MenuGroup.js +2 -2
  29. package/src/MenuGroup.js.map +2 -2
  30. package/src/MenuItem.dev.js +34 -9
  31. package/src/MenuItem.dev.js.map +2 -2
  32. package/src/MenuItem.js +2 -2
  33. package/src/MenuItem.js.map +2 -2
  34. package/src/index.dev.js +1 -0
  35. package/src/index.dev.js.map +1 -1
  36. package/src/index.js +1 -1
  37. package/src/index.js.map +1 -1
  38. package/src/menu-divider.css.dev.js +1 -0
  39. package/src/menu-divider.css.dev.js.map +1 -1
  40. package/src/menu-divider.css.js +1 -1
  41. package/src/menu-divider.css.js.map +2 -2
  42. package/src/menu-group.css.dev.js +1 -0
  43. package/src/menu-group.css.dev.js.map +1 -1
  44. package/src/menu-group.css.js +1 -1
  45. package/src/menu-group.css.js.map +2 -2
  46. package/src/menu-item.css.dev.js +1 -0
  47. package/src/menu-item.css.dev.js.map +1 -1
  48. package/src/menu-item.css.js +1 -1
  49. package/src/menu-item.css.js.map +2 -2
  50. package/src/menu.css.dev.js +1 -0
  51. package/src/menu.css.dev.js.map +1 -1
  52. package/src/menu.css.js +1 -1
  53. package/src/menu.css.js.map +2 -2
  54. package/src/spectrum-checkmark.css.dev.js +1 -0
  55. package/src/spectrum-checkmark.css.dev.js.map +1 -1
  56. package/src/spectrum-checkmark.css.js +1 -1
  57. package/src/spectrum-checkmark.css.js.map +2 -2
  58. package/src/spectrum-chevron.css.dev.js +1 -0
  59. package/src/spectrum-chevron.css.dev.js.map +1 -1
  60. package/src/spectrum-chevron.css.js +1 -1
  61. package/src/spectrum-chevron.css.js.map +2 -2
  62. package/src/spectrum-itemLabel.css.dev.js +1 -0
  63. package/src/spectrum-itemLabel.css.dev.js.map +1 -1
  64. package/src/spectrum-itemLabel.css.js +1 -1
  65. package/src/spectrum-itemLabel.css.js.map +2 -2
  66. package/src/spectrum-menu-divider.css.dev.js +1 -0
  67. package/src/spectrum-menu-divider.css.dev.js.map +1 -1
  68. package/src/spectrum-menu-divider.css.js +1 -1
  69. package/src/spectrum-menu-divider.css.js.map +2 -2
  70. package/src/spectrum-menu-item.css.dev.js +1 -0
  71. package/src/spectrum-menu-item.css.dev.js.map +1 -1
  72. package/src/spectrum-menu-item.css.js +1 -1
  73. package/src/spectrum-menu-item.css.js.map +2 -2
  74. package/src/spectrum-menu-sectionHeading.css.dev.js +1 -0
  75. package/src/spectrum-menu-sectionHeading.css.dev.js.map +1 -1
  76. package/src/spectrum-menu-sectionHeading.css.js +1 -1
  77. package/src/spectrum-menu-sectionHeading.css.js.map +2 -2
  78. package/src/spectrum-menu.css.dev.js +1 -0
  79. package/src/spectrum-menu.css.dev.js.map +1 -1
  80. package/src/spectrum-menu.css.js +1 -1
  81. package/src/spectrum-menu.css.js.map +2 -2
  82. package/stories/menu-group.stories.js +61 -9
  83. package/stories/menu-group.stories.js.map +2 -2
  84. package/stories/menu-item.stories.js +25 -4
  85. package/stories/menu-item.stories.js.map +1 -1
  86. package/stories/menu.stories.js +47 -8
  87. package/stories/menu.stories.js.map +1 -1
  88. package/stories/submenu.stories.js +160 -16
  89. package/stories/submenu.stories.js.map +2 -2
  90. package/test/benchmark/test-basic.js +8 -1
  91. package/test/benchmark/test-basic.js.map +1 -1
  92. package/test/menu-group.test-vrt.js +4 -1
  93. package/test/menu-group.test-vrt.js.map +1 -1
  94. package/test/menu-group.test.js +257 -6
  95. package/test/menu-group.test.js.map +1 -1
  96. package/test/menu-item.test-vrt.js +4 -1
  97. package/test/menu-item.test-vrt.js.map +1 -1
  98. package/test/menu-item.test.js +121 -8
  99. package/test/menu-item.test.js.map +1 -1
  100. package/test/menu-selects.test.js +513 -5
  101. package/test/menu-selects.test.js.map +1 -1
  102. package/test/menu.test-vrt.js +4 -1
  103. package/test/menu.test-vrt.js.map +1 -1
  104. package/test/menu.test.js +337 -17
  105. package/test/menu.test.js.map +1 -1
  106. package/test/submenu.test-vrt.js +4 -1
  107. package/test/submenu.test-vrt.js.map +1 -1
  108. package/test/submenu.test.js +516 -21
  109. package/test/submenu.test.js.map +1 -1
@@ -1,10 +1,122 @@
1
- import"@spectrum-web-components/menu/sp-menu.js";import"@spectrum-web-components/menu/sp-menu-group.js";import"@spectrum-web-components/menu/sp-menu-item.js";import{elementUpdated as c,expect as a,fixture as w,html as h,oneEvent as i}from"@open-wc/testing";import{sendKeys as g}from"@web/test-runner-commands";import{spy as r}from"sinon";import{sendMouse as v}from"../../../test/plugins/browser.js";describe("Menu [selects]",()=>{let e,l;beforeEach(async()=>{e=await w(h`
1
+ "use strict";
2
+ import "@spectrum-web-components/menu/sp-menu.js";
3
+ import "@spectrum-web-components/menu/sp-menu-group.js";
4
+ import "@spectrum-web-components/menu/sp-menu-item.js";
5
+ import {
6
+ elementUpdated,
7
+ expect,
8
+ fixture,
9
+ html,
10
+ oneEvent
11
+ } from "@open-wc/testing";
12
+ import { sendKeys } from "@web/test-runner-commands";
13
+ import { spy } from "sinon";
14
+ import { sendMouse } from "../../../test/plugins/browser.js";
15
+ describe("Menu [selects]", () => {
16
+ let el;
17
+ let options;
18
+ beforeEach(async () => {
19
+ el = await fixture(
20
+ html`
2
21
  <sp-menu selects="single">
3
22
  <sp-menu-item value="1">Option 1</sp-menu-item>
4
23
  <sp-menu-item value="2">Option 2</sp-menu-item>
5
24
  <sp-menu-item value="3">Option 3</sp-menu-item>
6
25
  </sp-menu>
7
- `),l=[...e.querySelectorAll("sp-menu-item")]}),describe("fires `change` events",async()=>{it("on browser clicks",async()=>{const n=l[0].getBoundingClientRect(),u=i(e,"change");v({steps:[{type:"move",position:[n.x+n.width/2,n.y+n.height/2]},{type:"down"},{type:"up"}]}),await u,a(e.value).to.equal("1")}),it("on JS clicks",async()=>{const t=l[0],n=i(e,"change");t.click(),await n,a(e.value).to.equal("1")})}),it('manages a single selection when [selects="single"]',async()=>{a(e.value).to.equal("");let t=i(e,"change");l[0].click(),await t,a(e.value).to.equal("1"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("2"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("3")}),it('manages multiple selections when [selects="multiple"]',async()=>{e.selects="multiple",await c(e),a(e.value).to.equal("");let t=i(e,"change");l[0].click(),await t,a(e.value).to.equal("1"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("1,2"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("1,2,3"),t=i(e,"change"),l[0].click(),await t,a(e.value).to.equal("2,3"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("3"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("")})}),describe("Menu [selects] w/ group",()=>{let e,l;beforeEach(async()=>{e=await w(h`
26
+ `
27
+ );
28
+ options = [...el.querySelectorAll("sp-menu-item")];
29
+ });
30
+ describe("fires `change` events", async () => {
31
+ it("on browser clicks", async () => {
32
+ const item1 = options[0];
33
+ const boundingRect = item1.getBoundingClientRect();
34
+ const change = oneEvent(el, "change");
35
+ sendMouse({
36
+ steps: [
37
+ {
38
+ type: "move",
39
+ position: [
40
+ boundingRect.x + boundingRect.width / 2,
41
+ boundingRect.y + boundingRect.height / 2
42
+ ]
43
+ },
44
+ {
45
+ type: "down"
46
+ },
47
+ {
48
+ type: "up"
49
+ }
50
+ ]
51
+ });
52
+ await change;
53
+ expect(el.value).to.equal("1");
54
+ });
55
+ it("on JS clicks", async () => {
56
+ const item1 = options[0];
57
+ const change = oneEvent(el, "change");
58
+ item1.click();
59
+ await change;
60
+ expect(el.value).to.equal("1");
61
+ });
62
+ });
63
+ it('manages a single selection when [selects="single"]', async () => {
64
+ expect(el.value).to.equal("");
65
+ let change = oneEvent(el, "change");
66
+ options[0].click();
67
+ await change;
68
+ expect(el.value).to.equal("1");
69
+ change = oneEvent(el, "change");
70
+ options[1].click();
71
+ await change;
72
+ await elementUpdated(el);
73
+ expect(el.value).to.equal("2");
74
+ change = oneEvent(el, "change");
75
+ options[2].click();
76
+ await change;
77
+ await elementUpdated(el);
78
+ expect(el.value).to.equal("3");
79
+ });
80
+ it('manages multiple selections when [selects="multiple"]', async () => {
81
+ el.selects = "multiple";
82
+ await elementUpdated(el);
83
+ expect(el.value).to.equal("");
84
+ let change = oneEvent(el, "change");
85
+ options[0].click();
86
+ await change;
87
+ expect(el.value).to.equal("1");
88
+ change = oneEvent(el, "change");
89
+ options[1].click();
90
+ await change;
91
+ await elementUpdated(el);
92
+ expect(el.value).to.equal("1,2");
93
+ change = oneEvent(el, "change");
94
+ options[2].click();
95
+ await change;
96
+ await elementUpdated(el);
97
+ expect(el.value).to.equal("1,2,3");
98
+ change = oneEvent(el, "change");
99
+ options[0].click();
100
+ await change;
101
+ expect(el.value).to.equal("2,3");
102
+ change = oneEvent(el, "change");
103
+ options[1].click();
104
+ await change;
105
+ await elementUpdated(el);
106
+ expect(el.value).to.equal("3");
107
+ change = oneEvent(el, "change");
108
+ options[2].click();
109
+ await change;
110
+ await elementUpdated(el);
111
+ expect(el.value).to.equal("");
112
+ });
113
+ });
114
+ describe("Menu [selects] w/ group", () => {
115
+ let el;
116
+ let options;
117
+ beforeEach(async () => {
118
+ el = await fixture(
119
+ html`
8
120
  <sp-menu selects="single">
9
121
  <sp-menu-group selects="inherit">
10
122
  <sp-menu-item value="1">Option 1</sp-menu-item>
@@ -12,7 +124,101 @@ import"@spectrum-web-components/menu/sp-menu.js";import"@spectrum-web-components
12
124
  <sp-menu-item value="3">Option 3</sp-menu-item>
13
125
  </sp-menu-group>
14
126
  </sp-menu>
15
- `),l=[...e.querySelectorAll("sp-menu-item")]}),describe("fires `change` events",async()=>{it("on browser clicks",async()=>{const n=l[0].getBoundingClientRect(),u=i(e,"change");v({steps:[{type:"move",position:[n.x+n.width/2,n.y+n.height/2]},{type:"down"},{type:"up"}]}),await u,a(e.value).to.equal("1")}),it("on JS clicks",async()=>{const t=l[0],n=i(e,"change");t.click(),await n,a(e.value).to.equal("1")})}),it('manages a single selection when [selects="single"]',async()=>{a(e.value).to.equal("");let t=i(e,"change");l[0].click(),await t,a(e.value).to.equal("1"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("2"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("3")}),it('manages multiple selections when [selects="multiple"]',async()=>{e.selects="multiple",await c(e),a(e.value).to.equal("");let t=i(e,"change");l[0].click(),await t,a(e.value).to.equal("1"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("1,2"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("1,2,3"),t=i(e,"change"),l[0].click(),await t,a(e.value).to.equal("2,3"),t=i(e,"change"),l[1].click(),await t,await c(e),a(e.value).to.equal("3"),t=i(e,"change"),l[2].click(),await t,await c(e),a(e.value).to.equal("")})}),describe("Menu w/ group [selects]",()=>{let e,l,t;beforeEach(async()=>{e=await w(h`
127
+ `
128
+ );
129
+ options = [...el.querySelectorAll("sp-menu-item")];
130
+ });
131
+ describe("fires `change` events", async () => {
132
+ it("on browser clicks", async () => {
133
+ const item1 = options[0];
134
+ const boundingRect = item1.getBoundingClientRect();
135
+ const change = oneEvent(el, "change");
136
+ sendMouse({
137
+ steps: [
138
+ {
139
+ type: "move",
140
+ position: [
141
+ boundingRect.x + boundingRect.width / 2,
142
+ boundingRect.y + boundingRect.height / 2
143
+ ]
144
+ },
145
+ {
146
+ type: "down"
147
+ },
148
+ {
149
+ type: "up"
150
+ }
151
+ ]
152
+ });
153
+ await change;
154
+ expect(el.value).to.equal("1");
155
+ });
156
+ it("on JS clicks", async () => {
157
+ const item1 = options[0];
158
+ const change = oneEvent(el, "change");
159
+ item1.click();
160
+ await change;
161
+ expect(el.value).to.equal("1");
162
+ });
163
+ });
164
+ it('manages a single selection when [selects="single"]', async () => {
165
+ expect(el.value).to.equal("");
166
+ let change = oneEvent(el, "change");
167
+ options[0].click();
168
+ await change;
169
+ expect(el.value).to.equal("1");
170
+ change = oneEvent(el, "change");
171
+ options[1].click();
172
+ await change;
173
+ await elementUpdated(el);
174
+ expect(el.value).to.equal("2");
175
+ change = oneEvent(el, "change");
176
+ options[2].click();
177
+ await change;
178
+ await elementUpdated(el);
179
+ expect(el.value).to.equal("3");
180
+ });
181
+ it('manages multiple selections when [selects="multiple"]', async () => {
182
+ el.selects = "multiple";
183
+ await elementUpdated(el);
184
+ expect(el.value).to.equal("");
185
+ let change = oneEvent(el, "change");
186
+ options[0].click();
187
+ await change;
188
+ expect(el.value).to.equal("1");
189
+ change = oneEvent(el, "change");
190
+ options[1].click();
191
+ await change;
192
+ await elementUpdated(el);
193
+ expect(el.value).to.equal("1,2");
194
+ change = oneEvent(el, "change");
195
+ options[2].click();
196
+ await change;
197
+ await elementUpdated(el);
198
+ expect(el.value).to.equal("1,2,3");
199
+ change = oneEvent(el, "change");
200
+ options[0].click();
201
+ await change;
202
+ expect(el.value).to.equal("2,3");
203
+ change = oneEvent(el, "change");
204
+ options[1].click();
205
+ await change;
206
+ await elementUpdated(el);
207
+ expect(el.value).to.equal("3");
208
+ change = oneEvent(el, "change");
209
+ options[2].click();
210
+ await change;
211
+ await elementUpdated(el);
212
+ expect(el.value).to.equal("");
213
+ });
214
+ });
215
+ describe("Menu w/ group [selects]", () => {
216
+ let el;
217
+ let group;
218
+ let options;
219
+ beforeEach(async () => {
220
+ el = await fixture(
221
+ html`
16
222
  <sp-menu>
17
223
  <sp-menu-group selects="single">
18
224
  <sp-menu-item value="1">Option 1</sp-menu-item>
@@ -20,7 +226,103 @@ import"@spectrum-web-components/menu/sp-menu.js";import"@spectrum-web-components
20
226
  <sp-menu-item value="3">Option 3</sp-menu-item>
21
227
  </sp-menu-group>
22
228
  </sp-menu>
23
- `),l=e.querySelector("sp-menu-group"),t=[...e.querySelectorAll("sp-menu-item")]}),describe("fires `change` events",async()=>{it("on browser clicks",async()=>{const u=t[0].getBoundingClientRect(),o=i(l,"change");v({steps:[{type:"move",position:[u.x+u.width/2,u.y+u.height/2]},{type:"down"},{type:"up"}]}),await o,a(l.value).to.equal("1")}),it("on JS clicks",async()=>{const n=t[0],u=i(l,"change");n.click(),await u,a(l.value).to.equal("1")})}),it('manages a single selection when [selects="single"]',async()=>{a(l.value).to.equal("");let n=i(e,"change");t[0].click(),await n,a(l.value).to.equal("1"),n=i(e,"change"),t[1].click(),await n,await c(e),a(l.value).to.equal("2"),n=i(e,"change"),t[2].click(),await n,await c(e),a(l.value).to.equal("3")}),it('manages multiple selections when [selects="multiple"]',async()=>{l.selects="multiple",await c(l),a(l.value).to.equal("");let n=i(e,"change");t[0].click(),await n,a(l.value).to.equal("1"),n=i(e,"change"),t[1].click(),await n,await c(e),a(l.value).to.equal("1,2"),n=i(e,"change"),t[2].click(),await n,await c(e),a(l.value).to.equal("1,2,3"),n=i(e,"change"),t[0].click(),await n,a(l.value).to.equal("2,3"),n=i(e,"change"),t[1].click(),await n,await c(e),a(l.value).to.equal("3"),n=i(e,"change"),t[2].click(),await n,await c(e),a(l.value).to.equal("")})}),describe("Menu w/ groups [selects]",()=>{let e,l,t,n;beforeEach(async()=>{e=await w(h`
229
+ `
230
+ );
231
+ group = el.querySelector("sp-menu-group");
232
+ options = [...el.querySelectorAll("sp-menu-item")];
233
+ });
234
+ describe("fires `change` events", async () => {
235
+ it("on browser clicks", async () => {
236
+ const item1 = options[0];
237
+ const boundingRect = item1.getBoundingClientRect();
238
+ const change = oneEvent(group, "change");
239
+ sendMouse({
240
+ steps: [
241
+ {
242
+ type: "move",
243
+ position: [
244
+ boundingRect.x + boundingRect.width / 2,
245
+ boundingRect.y + boundingRect.height / 2
246
+ ]
247
+ },
248
+ {
249
+ type: "down"
250
+ },
251
+ {
252
+ type: "up"
253
+ }
254
+ ]
255
+ });
256
+ await change;
257
+ expect(group.value).to.equal("1");
258
+ });
259
+ it("on JS clicks", async () => {
260
+ const item1 = options[0];
261
+ const change = oneEvent(group, "change");
262
+ item1.click();
263
+ await change;
264
+ expect(group.value).to.equal("1");
265
+ });
266
+ });
267
+ it('manages a single selection when [selects="single"]', async () => {
268
+ expect(group.value).to.equal("");
269
+ let change = oneEvent(el, "change");
270
+ options[0].click();
271
+ await change;
272
+ expect(group.value).to.equal("1");
273
+ change = oneEvent(el, "change");
274
+ options[1].click();
275
+ await change;
276
+ await elementUpdated(el);
277
+ expect(group.value).to.equal("2");
278
+ change = oneEvent(el, "change");
279
+ options[2].click();
280
+ await change;
281
+ await elementUpdated(el);
282
+ expect(group.value).to.equal("3");
283
+ });
284
+ it('manages multiple selections when [selects="multiple"]', async () => {
285
+ group.selects = "multiple";
286
+ await elementUpdated(group);
287
+ expect(group.value).to.equal("");
288
+ let change = oneEvent(el, "change");
289
+ options[0].click();
290
+ await change;
291
+ expect(group.value).to.equal("1");
292
+ change = oneEvent(el, "change");
293
+ options[1].click();
294
+ await change;
295
+ await elementUpdated(el);
296
+ expect(group.value).to.equal("1,2");
297
+ change = oneEvent(el, "change");
298
+ options[2].click();
299
+ await change;
300
+ await elementUpdated(el);
301
+ expect(group.value).to.equal("1,2,3");
302
+ change = oneEvent(el, "change");
303
+ options[0].click();
304
+ await change;
305
+ expect(group.value).to.equal("2,3");
306
+ change = oneEvent(el, "change");
307
+ options[1].click();
308
+ await change;
309
+ await elementUpdated(el);
310
+ expect(group.value).to.equal("3");
311
+ change = oneEvent(el, "change");
312
+ options[2].click();
313
+ await change;
314
+ await elementUpdated(el);
315
+ expect(group.value).to.equal("");
316
+ });
317
+ });
318
+ describe("Menu w/ groups [selects]", () => {
319
+ let el;
320
+ let groupA;
321
+ let groupB;
322
+ let options;
323
+ beforeEach(async () => {
324
+ el = await fixture(
325
+ html`
24
326
  <sp-menu>
25
327
  <sp-menu-group selects="single" id="group-1">
26
328
  <sp-menu-item value="1a">Option 1a</sp-menu-item>
@@ -33,5 +335,211 @@ import"@spectrum-web-components/menu/sp-menu.js";import"@spectrum-web-components
33
335
  <sp-menu-item value="3b">Option 3b</sp-menu-item>
34
336
  </sp-menu-group>
35
337
  </sp-menu>
36
- `),l=e.querySelector("sp-menu-group:first-child"),t=e.querySelector("sp-menu-group:last-child"),n=[...e.querySelectorAll("sp-menu-item")]}),describe("fires `change` events",async()=>{it("on browser clicks",async()=>{const u=n[0],o=n[3],s=u.getBoundingClientRect();a(l.value).to.equal(""),a(t.value).to.equal("");let m=i(e,"change");v({steps:[{type:"move",position:[s.x+s.width/2,s.y+s.height/2]},{type:"down"},{type:"up"}]}),await m,await c(u),a(l.value).to.equal("1a"),a(t.value).to.equal(""),m=i(e,"change");const p=o.getBoundingClientRect();v({steps:[{type:"move",position:[p.x+p.width/2,p.y+p.height/2]},{type:"down"},{type:"up"}]}),await m,a(l.value).to.equal("1a"),a(t.value).to.equal("1b")}),it("on JS clicks",async()=>{const u=n[0],o=n[3];let s=i(e,"change");u.click(),await s,a(l.value).to.equal("1a"),s=i(e,"change"),o.click(),await s,a(t.value).to.equal("1b")}),it("can have them `preventDefault()`ed",async()=>{const u=r();a(l.value).to.equal(""),a(t.value).to.equal("");const o=n[0],s=n[3];l.addEventListener("change",p=>{p.preventDefault(),u()});const m=i(e,"change");o.click(),s.click(),await m,a(u.callCount).to.equal(1),a(l.value).to.equal(""),a(t.value).to.equal("1b")})}),it('manages a single selection when [selects="single"]',async()=>{a(l.value).to.equal(""),a(t.value).to.equal("");let u=i(e,"change");n[0].click(),await u,a(l.value).to.equal("1a"),u=i(e,"change"),n[3].click(),await u,a(t.value).to.equal("1b"),u=i(e,"change"),n[1].click(),await u,a(l.value).to.equal("2a"),u=i(e,"change"),n[4].click(),await u,a(t.value).to.equal("2b"),u=i(e,"change"),n[2].click(),await u,a(l.value).to.equal("3a"),u=i(e,"change"),n[5].click(),await u,a(t.value).to.equal("3b")}),it('manages multiple selections when [selects="multiple"]',async()=>{l.selects="multiple",t.selects="multiple",await c(l),await c(t),a(l.value).to.equal(""),a(t.value).to.equal("");let u=i(e,"change");n[0].click(),await u,a(l.value).to.equal("1a"),a(t.value).to.equal(""),u=i(e,"change"),n[3].click(),await u,a(l.value).to.equal("1a"),a(t.value).to.equal("1b"),u=i(e,"change"),n[1].click(),await u,a(l.value).to.equal("1a,2a"),a(t.value).to.equal("1b"),u=i(e,"change"),n[4].click(),await u,a(l.value).to.equal("1a,2a"),a(t.value).to.equal("1b,2b"),u=i(e,"change"),n[2].click(),await u,a(l.value).to.equal("1a,2a,3a"),a(t.value).to.equal("1b,2b"),u=i(e,"change"),n[5].click(),await u,a(l.value).to.equal("1a,2a,3a"),a(t.value).to.equal("1b,2b,3b"),u=i(e,"change"),n[0].click(),await u,a(l.value).to.equal("2a,3a"),a(t.value).to.equal("1b,2b,3b"),u=i(e,"change"),n[3].click(),await u,a(l.value).to.equal("2a,3a"),a(t.value).to.equal("2b,3b"),u=i(e,"change"),n[1].click(),await u,a(l.value).to.equal("3a"),a(t.value).to.equal("2b,3b"),u=i(e,"change"),n[4].click(),await u,a(l.value).to.equal("3a"),a(t.value).to.equal("3b"),u=i(e,"change"),n[2].click(),await u,a(l.value).to.equal(""),a(t.value).to.equal("3b"),u=i(e,"change"),n[5].click(),await u,a(l.value).to.equal(""),a(t.value).to.equal("")}),it("manages focus",async()=>{await c(l),await c(t);const u=document.createElement("input");e.insertAdjacentElement("afterend",u),u.focus(),a(document.activeElement===u).to.be.true,await g({press:"Shift+Tab"}),a(document.activeElement===l).to.be.true,await g({press:"ArrowDown"}),await g({press:"ArrowUp"}),await c(e);for(const o of n){const s=o.parentElement;a(document.activeElement===s,"parent focused").to.be.true,a(o.focused,"option visually focused").to.be.true,await g({press:"Space"}),a(s.value).to.equal(o.value),await g({press:"ArrowDown"})}})});
338
+ `
339
+ );
340
+ groupA = el.querySelector("sp-menu-group:first-child");
341
+ groupB = el.querySelector("sp-menu-group:last-child");
342
+ options = [...el.querySelectorAll("sp-menu-item")];
343
+ });
344
+ describe("fires `change` events", async () => {
345
+ it("on browser clicks", async () => {
346
+ const item1a = options[0];
347
+ const item1b = options[3];
348
+ const boundingRectA = item1a.getBoundingClientRect();
349
+ expect(groupA.value).to.equal("");
350
+ expect(groupB.value).to.equal("");
351
+ let change = oneEvent(el, "change");
352
+ sendMouse({
353
+ steps: [
354
+ {
355
+ type: "move",
356
+ position: [
357
+ boundingRectA.x + boundingRectA.width / 2,
358
+ boundingRectA.y + boundingRectA.height / 2
359
+ ]
360
+ },
361
+ {
362
+ type: "down"
363
+ },
364
+ {
365
+ type: "up"
366
+ }
367
+ ]
368
+ });
369
+ await change;
370
+ await elementUpdated(item1a);
371
+ expect(groupA.value).to.equal("1a");
372
+ expect(groupB.value).to.equal("");
373
+ change = oneEvent(el, "change");
374
+ const boundingRectB = item1b.getBoundingClientRect();
375
+ sendMouse({
376
+ steps: [
377
+ {
378
+ type: "move",
379
+ position: [
380
+ boundingRectB.x + boundingRectB.width / 2,
381
+ boundingRectB.y + boundingRectB.height / 2
382
+ ]
383
+ },
384
+ {
385
+ type: "down"
386
+ },
387
+ {
388
+ type: "up"
389
+ }
390
+ ]
391
+ });
392
+ await change;
393
+ expect(groupA.value).to.equal("1a");
394
+ expect(groupB.value).to.equal("1b");
395
+ });
396
+ it("on JS clicks", async () => {
397
+ const item1a = options[0];
398
+ const item1b = options[3];
399
+ let change = oneEvent(el, "change");
400
+ item1a.click();
401
+ await change;
402
+ expect(groupA.value).to.equal("1a");
403
+ change = oneEvent(el, "change");
404
+ item1b.click();
405
+ await change;
406
+ expect(groupB.value).to.equal("1b");
407
+ });
408
+ it("can have them `preventDefault()`ed", async () => {
409
+ const preventSpy = spy();
410
+ expect(groupA.value).to.equal("");
411
+ expect(groupB.value).to.equal("");
412
+ const item1a = options[0];
413
+ const item1b = options[3];
414
+ groupA.addEventListener("change", (event) => {
415
+ event.preventDefault();
416
+ preventSpy();
417
+ });
418
+ const change = oneEvent(el, "change");
419
+ item1a.click();
420
+ item1b.click();
421
+ await change;
422
+ expect(preventSpy.callCount).to.equal(1);
423
+ expect(groupA.value).to.equal("");
424
+ expect(groupB.value).to.equal("1b");
425
+ });
426
+ });
427
+ it('manages a single selection when [selects="single"]', async () => {
428
+ expect(groupA.value).to.equal("");
429
+ expect(groupB.value).to.equal("");
430
+ let change = oneEvent(el, "change");
431
+ options[0].click();
432
+ await change;
433
+ expect(groupA.value).to.equal("1a");
434
+ change = oneEvent(el, "change");
435
+ options[3].click();
436
+ await change;
437
+ expect(groupB.value).to.equal("1b");
438
+ change = oneEvent(el, "change");
439
+ options[1].click();
440
+ await change;
441
+ expect(groupA.value).to.equal("2a");
442
+ change = oneEvent(el, "change");
443
+ options[4].click();
444
+ await change;
445
+ expect(groupB.value).to.equal("2b");
446
+ change = oneEvent(el, "change");
447
+ options[2].click();
448
+ await change;
449
+ expect(groupA.value).to.equal("3a");
450
+ change = oneEvent(el, "change");
451
+ options[5].click();
452
+ await change;
453
+ expect(groupB.value).to.equal("3b");
454
+ });
455
+ it('manages multiple selections when [selects="multiple"]', async () => {
456
+ groupA.selects = "multiple";
457
+ groupB.selects = "multiple";
458
+ await elementUpdated(groupA);
459
+ await elementUpdated(groupB);
460
+ expect(groupA.value).to.equal("");
461
+ expect(groupB.value).to.equal("");
462
+ let change = oneEvent(el, "change");
463
+ options[0].click();
464
+ await change;
465
+ expect(groupA.value).to.equal("1a");
466
+ expect(groupB.value).to.equal("");
467
+ change = oneEvent(el, "change");
468
+ options[3].click();
469
+ await change;
470
+ expect(groupA.value).to.equal("1a");
471
+ expect(groupB.value).to.equal("1b");
472
+ change = oneEvent(el, "change");
473
+ options[1].click();
474
+ await change;
475
+ expect(groupA.value).to.equal("1a,2a");
476
+ expect(groupB.value).to.equal("1b");
477
+ change = oneEvent(el, "change");
478
+ options[4].click();
479
+ await change;
480
+ expect(groupA.value).to.equal("1a,2a");
481
+ expect(groupB.value).to.equal("1b,2b");
482
+ change = oneEvent(el, "change");
483
+ options[2].click();
484
+ await change;
485
+ expect(groupA.value).to.equal("1a,2a,3a");
486
+ expect(groupB.value).to.equal("1b,2b");
487
+ change = oneEvent(el, "change");
488
+ options[5].click();
489
+ await change;
490
+ expect(groupA.value).to.equal("1a,2a,3a");
491
+ expect(groupB.value).to.equal("1b,2b,3b");
492
+ change = oneEvent(el, "change");
493
+ options[0].click();
494
+ await change;
495
+ expect(groupA.value).to.equal("2a,3a");
496
+ expect(groupB.value).to.equal("1b,2b,3b");
497
+ change = oneEvent(el, "change");
498
+ options[3].click();
499
+ await change;
500
+ expect(groupA.value).to.equal("2a,3a");
501
+ expect(groupB.value).to.equal("2b,3b");
502
+ change = oneEvent(el, "change");
503
+ options[1].click();
504
+ await change;
505
+ expect(groupA.value).to.equal("3a");
506
+ expect(groupB.value).to.equal("2b,3b");
507
+ change = oneEvent(el, "change");
508
+ options[4].click();
509
+ await change;
510
+ expect(groupA.value).to.equal("3a");
511
+ expect(groupB.value).to.equal("3b");
512
+ change = oneEvent(el, "change");
513
+ options[2].click();
514
+ await change;
515
+ expect(groupA.value).to.equal("");
516
+ expect(groupB.value).to.equal("3b");
517
+ change = oneEvent(el, "change");
518
+ options[5].click();
519
+ await change;
520
+ expect(groupA.value).to.equal("");
521
+ expect(groupB.value).to.equal("");
522
+ });
523
+ it("manages focus", async () => {
524
+ await elementUpdated(groupA);
525
+ await elementUpdated(groupB);
526
+ const input = document.createElement("input");
527
+ el.insertAdjacentElement("afterend", input);
528
+ input.focus();
529
+ expect(document.activeElement === input).to.be.true;
530
+ await sendKeys({ press: "Shift+Tab" });
531
+ expect(document.activeElement === groupA).to.be.true;
532
+ await sendKeys({ press: "ArrowDown" });
533
+ await sendKeys({ press: "ArrowUp" });
534
+ await elementUpdated(el);
535
+ for (const option of options) {
536
+ const parentElement = option.parentElement;
537
+ expect(document.activeElement === parentElement, "parent focused").to.be.true;
538
+ expect(option.focused, "option visually focused").to.be.true;
539
+ await sendKeys({ press: "Space" });
540
+ expect(parentElement.value).to.equal(option.value);
541
+ await sendKeys({ press: "ArrowDown" });
542
+ }
543
+ });
544
+ });
37
545
  //# sourceMappingURL=menu-selects.test.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["menu-selects.test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport '@spectrum-web-components/menu/sp-menu.js';\nimport '@spectrum-web-components/menu/sp-menu-group.js';\nimport '@spectrum-web-components/menu/sp-menu-item.js';\nimport { Menu, MenuGroup, MenuItem } from '@spectrum-web-components/menu';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n oneEvent,\n} from '@open-wc/testing';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\ndescribe('Menu [selects]', () => {\n let el!: Menu;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu>\n `\n );\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(el, 'change');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await change;\n expect(el.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(el, 'change');\n item1.click();\n await change;\n expect(el.value).to.equal('1');\n });\n });\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n el.selects = 'multiple';\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n });\n});\n\ndescribe('Menu [selects] w/ group', () => {\n let el!: Menu;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu selects=\"single\">\n <sp-menu-group selects=\"inherit\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(el, 'change');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await change;\n expect(el.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(el, 'change');\n item1.click();\n await change;\n expect(el.value).to.equal('1');\n });\n });\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(el.value).to.equal('');\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n el.selects = 'multiple';\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(el.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(el.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('');\n });\n});\n\ndescribe('Menu w/ group [selects]', () => {\n let el!: Menu;\n let group!: MenuGroup;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-group selects=\"single\">\n <sp-menu-item value=\"1\">Option 1</sp-menu-item>\n <sp-menu-item value=\"2\">Option 2</sp-menu-item>\n <sp-menu-item value=\"3\">Option 3</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n group = el.querySelector('sp-menu-group') as MenuGroup;\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1 = options[0];\n const boundingRect = item1.getBoundingClientRect();\n const change = oneEvent(group, 'change');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRect.x + boundingRect.width / 2,\n boundingRect.y + boundingRect.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await change;\n expect(group.value).to.equal('1');\n });\n it('on JS clicks', async () => {\n const item1 = options[0];\n const change = oneEvent(group, 'change');\n item1.click();\n await change;\n expect(group.value).to.equal('1');\n });\n });\n\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(group.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(group.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('3');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n group.selects = 'multiple';\n\n await elementUpdated(group);\n\n expect(group.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(group.value).to.equal('1');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('1,2');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('1,2,3');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(group.value).to.equal('2,3');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('3');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n await elementUpdated(el);\n\n expect(group.value).to.equal('');\n });\n});\n\ndescribe('Menu w/ groups [selects]', () => {\n let el!: Menu;\n let groupA!: MenuGroup;\n let groupB!: MenuGroup;\n let options!: MenuItem[];\n beforeEach(async () => {\n el = await fixture<Menu>(\n html`\n <sp-menu>\n <sp-menu-group selects=\"single\" id=\"group-1\">\n <sp-menu-item value=\"1a\">Option 1a</sp-menu-item>\n <sp-menu-item value=\"2a\">Option 2a</sp-menu-item>\n <sp-menu-item value=\"3a\">Option 3a</sp-menu-item>\n </sp-menu-group>\n <sp-menu-group selects=\"single\" id=\"group-2\">\n <sp-menu-item value=\"1b\">Option 1b</sp-menu-item>\n <sp-menu-item value=\"2b\">Option 2b</sp-menu-item>\n <sp-menu-item value=\"3b\">Option 3b</sp-menu-item>\n </sp-menu-group>\n </sp-menu>\n `\n );\n groupA = el.querySelector('sp-menu-group:first-child') as MenuGroup;\n groupB = el.querySelector('sp-menu-group:last-child') as MenuGroup;\n options = [...el.querySelectorAll('sp-menu-item')] as MenuItem[];\n });\n describe('fires `change` events', async () => {\n it('on browser clicks', async () => {\n const item1a = options[0];\n const item1b = options[3];\n const boundingRectA = item1a.getBoundingClientRect();\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n let change = oneEvent(el, 'change');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRectA.x + boundingRectA.width / 2,\n boundingRectA.y + boundingRectA.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await change;\n await elementUpdated(item1a);\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('');\n change = oneEvent(el, 'change');\n const boundingRectB = item1b.getBoundingClientRect();\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n boundingRectB.x + boundingRectB.width / 2,\n boundingRectB.y + boundingRectB.height / 2,\n ],\n },\n {\n type: 'down',\n },\n {\n type: 'up',\n },\n ],\n });\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('1b');\n });\n it('on JS clicks', async () => {\n const item1a = options[0];\n const item1b = options[3];\n let change = oneEvent(el, 'change');\n item1a.click();\n await change;\n expect(groupA.value).to.equal('1a');\n change = oneEvent(el, 'change');\n item1b.click();\n await change;\n expect(groupB.value).to.equal('1b');\n });\n it('can have them `preventDefault()`ed', async () => {\n const preventSpy = spy();\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n const item1a = options[0];\n const item1b = options[3];\n groupA.addEventListener('change', (event: Event) => {\n event.preventDefault();\n preventSpy();\n });\n const change = oneEvent(el, 'change');\n item1a.click();\n item1b.click();\n await change;\n expect(preventSpy.callCount).to.equal(1);\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('1b');\n });\n });\n\n it('manages a single selection when [selects=\"single\"]', async () => {\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(groupA.value).to.equal('1a');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('2a');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupB.value).to.equal('2b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupB.value).to.equal('3b');\n });\n it('manages multiple selections when [selects=\"multiple\"]', async () => {\n groupA.selects = 'multiple';\n groupB.selects = 'multiple';\n\n await elementUpdated(groupA);\n await elementUpdated(groupB);\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n\n let change = oneEvent(el, 'change');\n options[0].click();\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n expect(groupA.value).to.equal('1a');\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a');\n expect(groupB.value).to.equal('1b');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a');\n expect(groupB.value).to.equal('1b,2b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a,3a');\n expect(groupB.value).to.equal('1b,2b');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupA.value).to.equal('1a,2a,3a');\n expect(groupB.value).to.equal('1b,2b,3b');\n\n change = oneEvent(el, 'change');\n options[0].click();\n await change;\n\n expect(groupA.value).to.equal('2a,3a');\n expect(groupB.value).to.equal('1b,2b,3b');\n\n change = oneEvent(el, 'change');\n options[3].click();\n await change;\n\n expect(groupA.value).to.equal('2a,3a');\n expect(groupB.value).to.equal('2b,3b');\n\n change = oneEvent(el, 'change');\n options[1].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n expect(groupB.value).to.equal('2b,3b');\n\n change = oneEvent(el, 'change');\n options[4].click();\n await change;\n\n expect(groupA.value).to.equal('3a');\n expect(groupB.value).to.equal('3b');\n\n change = oneEvent(el, 'change');\n options[2].click();\n await change;\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('3b');\n\n change = oneEvent(el, 'change');\n options[5].click();\n await change;\n\n expect(groupA.value).to.equal('');\n expect(groupB.value).to.equal('');\n });\n it('manages focus', async () => {\n await elementUpdated(groupA);\n await elementUpdated(groupB);\n const input = document.createElement('input');\n el.insertAdjacentElement('afterend', input);\n input.focus();\n expect(document.activeElement === input).to.be.true;\n await sendKeys({ press: 'Shift+Tab' });\n expect(document.activeElement === groupA).to.be.true;\n await sendKeys({ press: 'ArrowDown' });\n await sendKeys({ press: 'ArrowUp' });\n\n await elementUpdated(el);\n for (const option of options) {\n const parentElement = option.parentElement as Menu;\n expect(document.activeElement === parentElement, 'parent focused')\n .to.be.true;\n expect(option.focused, 'option visually focused').to.be.true;\n await sendKeys({ press: 'Space' });\n expect(parentElement.value).to.equal(option.value);\n await sendKeys({ press: 'ArrowDown' });\n }\n });\n});\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }