@spectrum-web-components/action-group 0.10.2-devmode.0 → 0.11.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/package.json +5 -5
- package/sp-action-group.js +1 -2
- package/sp-action-group.js.map +1 -1
- package/src/ActionGroup.js +2 -307
- package/src/ActionGroup.js.map +1 -1
- package/src/action-group.css.js +2 -4
- package/src/action-group.css.js.map +1 -1
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/spectrum-action-group.css.js +2 -4
- package/src/spectrum-action-group.css.js.map +1 -1
- package/stories/action-group-tooltip.stories.js +6 -136
- package/stories/action-group-tooltip.stories.js.map +1 -1
- package/stories/action-group.stories.js +22 -202
- package/stories/action-group.stories.js.map +1 -1
- package/test/action-group-tooltip.test-vrt.js +1 -3
- package/test/action-group-tooltip.test-vrt.js.map +1 -1
- package/test/action-group.test-vrt.js +1 -3
- package/test/action-group.test-vrt.js.map +1 -1
- package/test/action-group.test.js +46 -502
- package/test/action-group.test.js.map +1 -1
- package/test/benchmark/basic-test.js +1 -5
- package/test/benchmark/basic-test.js.map +1 -1
|
@@ -1,53 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
elementUpdated,
|
|
3
|
-
expect,
|
|
4
|
-
fixture,
|
|
5
|
-
html,
|
|
6
|
-
waitUntil
|
|
7
|
-
} from "@open-wc/testing";
|
|
8
|
-
import "@spectrum-web-components/action-button/sp-action-button.js";
|
|
9
|
-
import { LitElement } from "@spectrum-web-components/base";
|
|
10
|
-
import "@spectrum-web-components/overlay/overlay-trigger.js";
|
|
11
|
-
import "@spectrum-web-components/tooltip/sp-tooltip.js";
|
|
12
|
-
import {
|
|
13
|
-
arrowDownEvent,
|
|
14
|
-
arrowLeftEvent,
|
|
15
|
-
arrowRightEvent,
|
|
16
|
-
arrowUpEvent,
|
|
17
|
-
endEvent,
|
|
18
|
-
homeEvent,
|
|
19
|
-
testForLitDevWarnings
|
|
20
|
-
} from "../../../test/testing-helpers";
|
|
21
|
-
import { sendKeys } from "@web/test-runner-commands";
|
|
22
|
-
import "@spectrum-web-components/action-group/sp-action-group.js";
|
|
23
|
-
class QuietActionGroup extends LitElement {
|
|
24
|
-
render() {
|
|
25
|
-
return html`
|
|
1
|
+
import{elementUpdated as n,expect as e,fixture as i,html as c,waitUntil as d}from"@open-wc/testing";import"@spectrum-web-components/action-button/sp-action-button.js";import{LitElement as p}from"@spectrum-web-components/base";import"@spectrum-web-components/overlay/overlay-trigger.js";import"@spectrum-web-components/tooltip/sp-tooltip.js";import{arrowDownEvent as f,arrowLeftEvent as w,arrowRightEvent as b,arrowUpEvent as g,endEvent as q,homeEvent as S,testForLitDevWarnings as y}from"../../../test/testing-helpers";import{sendKeys as u}from"@web/test-runner-commands";import"@spectrum-web-components/action-group/sp-action-group.js";class A extends p{render(){return c`
|
|
26
2
|
<sp-action-group quiet>
|
|
27
3
|
<slot name="first"></slot>
|
|
28
4
|
<slot name="second"></slot>
|
|
29
5
|
</sp-action-group>
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
customElements.define("quiet-action-group", QuietActionGroup);
|
|
34
|
-
class EmphasizedActionGroup extends LitElement {
|
|
35
|
-
render() {
|
|
36
|
-
return html`
|
|
6
|
+
`}}customElements.define("quiet-action-group",A);class m extends p{render(){return c`
|
|
37
7
|
<sp-action-group emphasized>
|
|
38
8
|
<slot name="first"></slot>
|
|
39
9
|
<slot name="second"></slot>
|
|
40
10
|
</sp-action-group>
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
customElements.define("emphasized-action-group", EmphasizedActionGroup);
|
|
45
|
-
async function singleSelectedActionGroup(selected) {
|
|
46
|
-
const el = await fixture(html`
|
|
11
|
+
`}}customElements.define("emphasized-action-group",m);async function r(a){return await i(c`
|
|
47
12
|
<sp-action-group
|
|
48
13
|
label="Selects User-Chosen Buttons"
|
|
49
14
|
selects="single"
|
|
50
|
-
.selected=${
|
|
15
|
+
.selected=${a}
|
|
51
16
|
>
|
|
52
17
|
<sp-action-button value="first" class="first">
|
|
53
18
|
First
|
|
@@ -56,15 +21,11 @@ async function singleSelectedActionGroup(selected) {
|
|
|
56
21
|
Second
|
|
57
22
|
</sp-action-button>
|
|
58
23
|
</sp-action-group>
|
|
59
|
-
`)
|
|
60
|
-
return el;
|
|
61
|
-
}
|
|
62
|
-
async function multipleSelectedActionGroup(selected) {
|
|
63
|
-
const el = await fixture(html`
|
|
24
|
+
`)}async function v(a){return await i(c`
|
|
64
25
|
<sp-action-group
|
|
65
26
|
label="Selects User-Chosen Buttons"
|
|
66
27
|
selects="multiple"
|
|
67
|
-
.selected=${
|
|
28
|
+
.selected=${a}
|
|
68
29
|
>
|
|
69
30
|
<sp-action-button value="first" class="first">
|
|
70
31
|
First
|
|
@@ -73,55 +34,26 @@ async function multipleSelectedActionGroup(selected) {
|
|
|
73
34
|
Second
|
|
74
35
|
</sp-action-button>
|
|
75
36
|
</sp-action-group>
|
|
76
|
-
`)
|
|
77
|
-
return el;
|
|
78
|
-
}
|
|
79
|
-
describe("ActionGroup", () => {
|
|
80
|
-
it("loads empty action-group accessibly", async () => {
|
|
81
|
-
const el = await fixture(html`
|
|
37
|
+
`)}describe("ActionGroup",()=>{it("loads empty action-group accessibly",async()=>{const t=await i(c`
|
|
82
38
|
<sp-action-group></sp-action-group>
|
|
83
|
-
`);
|
|
84
|
-
await elementUpdated(el);
|
|
85
|
-
await expect(el).to.be.accessible();
|
|
86
|
-
});
|
|
87
|
-
testForLitDevWarnings(async () => await fixture(html`
|
|
39
|
+
`);await n(t),await e(t).to.be.accessible()}),y(async()=>await i(c`
|
|
88
40
|
<sp-action-group aria-label="Default Group">
|
|
89
41
|
<sp-action-button>First</sp-action-button>
|
|
90
42
|
<sp-action-button>Second</sp-action-button>
|
|
91
43
|
<sp-action-button>Third</sp-action-button>
|
|
92
44
|
</sp-action-group>
|
|
93
|
-
`))
|
|
94
|
-
it("loads default action-group accessibly", async () => {
|
|
95
|
-
const el = await fixture(html`
|
|
45
|
+
`)),it("loads default action-group accessibly",async()=>{const t=await i(c`
|
|
96
46
|
<sp-action-group aria-label="Default Group">
|
|
97
47
|
<sp-action-button>First</sp-action-button>
|
|
98
48
|
<sp-action-button>Second</sp-action-button>
|
|
99
49
|
<sp-action-button>Third</sp-action-button>
|
|
100
50
|
</sp-action-group>
|
|
101
|
-
`);
|
|
102
|
-
await elementUpdated(el);
|
|
103
|
-
await expect(el).to.be.accessible();
|
|
104
|
-
expect(el.getAttribute("aria-label")).to.equal("Default Group");
|
|
105
|
-
expect(el.hasAttribute("role")).to.be.false;
|
|
106
|
-
expect(el.children[0].getAttribute("role")).to.equal("button");
|
|
107
|
-
});
|
|
108
|
-
it("applies `quiet` attribute to its children", async () => {
|
|
109
|
-
const el = await fixture(html`
|
|
51
|
+
`);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Default Group"),e(t.hasAttribute("role")).to.be.false,e(t.children[0].getAttribute("role")).to.equal("button")}),it("applies `quiet` attribute to its children",async()=>{const t=await i(c`
|
|
110
52
|
<sp-action-group quiet>
|
|
111
53
|
<sp-action-button id="first">First</sp-action-button>
|
|
112
54
|
<sp-action-button id="second">Second</sp-action-button>
|
|
113
55
|
</sp-action-group>
|
|
114
|
-
`);
|
|
115
|
-
const firstButton = el.querySelector("#first");
|
|
116
|
-
const secondButton = el.querySelector("#second");
|
|
117
|
-
await elementUpdated(el);
|
|
118
|
-
expect(firstButton.hasAttribute("quiet")).to.be.true;
|
|
119
|
-
expect(firstButton.quiet).to.be.true;
|
|
120
|
-
expect(secondButton.hasAttribute("quiet")).to.be.true;
|
|
121
|
-
expect(secondButton.quiet).to.be.true;
|
|
122
|
-
});
|
|
123
|
-
it("applies `quiet` attribute to its slotted children", async () => {
|
|
124
|
-
const el = await fixture(html`
|
|
56
|
+
`),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `quiet` attribute to its slotted children",async()=>{const t=await i(c`
|
|
125
57
|
<quiet-action-group>
|
|
126
58
|
<sp-action-button slot="first" id="first">
|
|
127
59
|
First
|
|
@@ -130,17 +62,7 @@ describe("ActionGroup", () => {
|
|
|
130
62
|
Second
|
|
131
63
|
</sp-action-button>
|
|
132
64
|
</quiet-action-group>
|
|
133
|
-
`);
|
|
134
|
-
const firstButton = el.querySelector("#first");
|
|
135
|
-
const secondButton = el.querySelector("#second");
|
|
136
|
-
await elementUpdated(el);
|
|
137
|
-
expect(firstButton.hasAttribute("quiet")).to.be.true;
|
|
138
|
-
expect(firstButton.quiet).to.be.true;
|
|
139
|
-
expect(secondButton.hasAttribute("quiet")).to.be.true;
|
|
140
|
-
expect(secondButton.quiet).to.be.true;
|
|
141
|
-
});
|
|
142
|
-
it("applies `emphasized` attribute to its slotted children", async () => {
|
|
143
|
-
const el = await fixture(html`
|
|
65
|
+
`),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `emphasized` attribute to its slotted children",async()=>{const t=await i(c`
|
|
144
66
|
<emphasized-action-group>
|
|
145
67
|
<sp-action-button slot="first" id="first">
|
|
146
68
|
First
|
|
@@ -149,17 +71,7 @@ describe("ActionGroup", () => {
|
|
|
149
71
|
Second
|
|
150
72
|
</sp-action-button>
|
|
151
73
|
</emphasized-action-group>
|
|
152
|
-
`);
|
|
153
|
-
const firstButton = el.querySelector("#first");
|
|
154
|
-
const secondButton = el.querySelector("#second");
|
|
155
|
-
await elementUpdated(el);
|
|
156
|
-
expect(firstButton.hasAttribute("emphasized")).to.be.true;
|
|
157
|
-
expect(firstButton.emphasized).to.be.true;
|
|
158
|
-
expect(secondButton.hasAttribute("emphasized")).to.be.true;
|
|
159
|
-
expect(secondButton.emphasized).to.be.true;
|
|
160
|
-
});
|
|
161
|
-
it("applies `quiet` attribute to slotted children with overlays", async () => {
|
|
162
|
-
const el = await fixture(html`
|
|
74
|
+
`),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("emphasized")).to.be.true,e(o.emphasized).to.be.true,e(s.hasAttribute("emphasized")).to.be.true,e(s.emphasized).to.be.true}),it("applies `quiet` attribute to slotted children with overlays",async()=>{const t=await i(c`
|
|
163
75
|
<quiet-action-group>
|
|
164
76
|
<overlay-trigger slot="first">
|
|
165
77
|
<sp-action-button slot="trigger" id="first">
|
|
@@ -172,17 +84,7 @@ describe("ActionGroup", () => {
|
|
|
172
84
|
</sp-action-button>
|
|
173
85
|
</overlay-trigger>
|
|
174
86
|
</quiet-action-group>
|
|
175
|
-
`);
|
|
176
|
-
const firstButton = el.querySelector("#first");
|
|
177
|
-
const secondButton = el.querySelector("#second");
|
|
178
|
-
await elementUpdated(el);
|
|
179
|
-
expect(firstButton.hasAttribute("quiet")).to.be.true;
|
|
180
|
-
expect(firstButton.quiet).to.be.true;
|
|
181
|
-
expect(secondButton.hasAttribute("quiet")).to.be.true;
|
|
182
|
-
expect(secondButton.quiet).to.be.true;
|
|
183
|
-
});
|
|
184
|
-
it("applies `emphasized` attribute to slotted children with overlays", async () => {
|
|
185
|
-
const el = await fixture(html`
|
|
87
|
+
`),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("quiet")).to.be.true,e(o.quiet).to.be.true,e(s.hasAttribute("quiet")).to.be.true,e(s.quiet).to.be.true}),it("applies `emphasized` attribute to slotted children with overlays",async()=>{const t=await i(c`
|
|
186
88
|
<emphasized-action-group>
|
|
187
89
|
<overlay-trigger slot="first">
|
|
188
90
|
<sp-action-button slot="trigger" id="first">
|
|
@@ -195,42 +97,19 @@ describe("ActionGroup", () => {
|
|
|
195
97
|
</sp-action-button>
|
|
196
98
|
</overlay-trigger>
|
|
197
99
|
</emphasized-action-group>
|
|
198
|
-
`);
|
|
199
|
-
const firstButton = el.querySelector("#first");
|
|
200
|
-
const secondButton = el.querySelector("#second");
|
|
201
|
-
await elementUpdated(el);
|
|
202
|
-
expect(firstButton.hasAttribute("emphasized")).to.be.true;
|
|
203
|
-
expect(firstButton.emphasized).to.be.true;
|
|
204
|
-
expect(secondButton.hasAttribute("emphasized")).to.be.true;
|
|
205
|
-
expect(secondButton.emphasized).to.be.true;
|
|
206
|
-
});
|
|
207
|
-
it('loads [selects="single"] action-group accessibly', async () => {
|
|
208
|
-
const el = await fixture(html`
|
|
100
|
+
`),o=t.querySelector("#first"),s=t.querySelector("#second");await n(t),e(o.hasAttribute("emphasized")).to.be.true,e(o.emphasized).to.be.true,e(s.hasAttribute("emphasized")).to.be.true,e(s.emphasized).to.be.true}),it('loads [selects="single"] action-group accessibly',async()=>{const t=await i(c`
|
|
209
101
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
210
102
|
<sp-action-button>First</sp-action-button>
|
|
211
103
|
<sp-action-button>Second</sp-action-button>
|
|
212
104
|
<sp-action-button>Third</sp-action-button>
|
|
213
105
|
</sp-action-group>
|
|
214
|
-
`);
|
|
215
|
-
await elementUpdated(el);
|
|
216
|
-
await expect(el).to.be.accessible();
|
|
217
|
-
expect(el.getAttribute("aria-label")).to.equal("Selects Single Group");
|
|
218
|
-
expect(el.getAttribute("role")).to.equal("radiogroup");
|
|
219
|
-
expect(el.children[0].getAttribute("role")).to.equal("radio");
|
|
220
|
-
});
|
|
221
|
-
it('loads [selects="single"] action-group w/ selection accessibly', async () => {
|
|
222
|
-
const el = await fixture(html`
|
|
106
|
+
`);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Selects Single Group"),e(t.getAttribute("role")).to.equal("radiogroup"),e(t.children[0].getAttribute("role")).to.equal("radio")}),it('loads [selects="single"] action-group w/ selection accessibly',async()=>{const t=await i(c`
|
|
223
107
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
224
108
|
<sp-action-button>First</sp-action-button>
|
|
225
109
|
<sp-action-button>Second</sp-action-button>
|
|
226
110
|
<sp-action-button selected>Third</sp-action-button>
|
|
227
111
|
</sp-action-group>
|
|
228
|
-
`);
|
|
229
|
-
await elementUpdated(el);
|
|
230
|
-
await expect(el).to.be.accessible();
|
|
231
|
-
});
|
|
232
|
-
it('loads [selects="multiple"] action-group accessibly', async () => {
|
|
233
|
-
const el = await fixture(html`
|
|
112
|
+
`);await n(t),await e(t).to.be.accessible()}),it('loads [selects="multiple"] action-group accessibly',async()=>{const t=await i(c`
|
|
234
113
|
<sp-action-group
|
|
235
114
|
label="Selects Multiple Group"
|
|
236
115
|
selects="multiple"
|
|
@@ -239,15 +118,7 @@ describe("ActionGroup", () => {
|
|
|
239
118
|
<sp-action-button>Second</sp-action-button>
|
|
240
119
|
<sp-action-button>Third</sp-action-button>
|
|
241
120
|
</sp-action-group>
|
|
242
|
-
`);
|
|
243
|
-
await elementUpdated(el);
|
|
244
|
-
await expect(el).to.be.accessible();
|
|
245
|
-
expect(el.getAttribute("aria-label")).to.equal("Selects Multiple Group");
|
|
246
|
-
expect(el.getAttribute("role")).to.equal("group");
|
|
247
|
-
expect(el.children[0].getAttribute("role")).to.equal("checkbox");
|
|
248
|
-
});
|
|
249
|
-
it('loads [selects="multiple"] action-group w/ selection accessibly', async () => {
|
|
250
|
-
const el = await fixture(html`
|
|
121
|
+
`);await n(t),await e(t).to.be.accessible(),e(t.getAttribute("aria-label")).to.equal("Selects Multiple Group"),e(t.getAttribute("role")).to.equal("group"),e(t.children[0].getAttribute("role")).to.equal("checkbox")}),it('loads [selects="multiple"] action-group w/ selection accessibly',async()=>{const t=await i(c`
|
|
251
122
|
<sp-action-group
|
|
252
123
|
label="Selects Multiple Group"
|
|
253
124
|
selects="multiple"
|
|
@@ -256,36 +127,19 @@ describe("ActionGroup", () => {
|
|
|
256
127
|
<sp-action-button selected>Second</sp-action-button>
|
|
257
128
|
<sp-action-button selected>Third</sp-action-button>
|
|
258
129
|
</sp-action-group>
|
|
259
|
-
`);
|
|
260
|
-
await elementUpdated(el);
|
|
261
|
-
await expect(el).to.be.accessible();
|
|
262
|
-
});
|
|
263
|
-
it('sets tab stop when [selects="single"] and the initial button is [disabled]', async () => {
|
|
264
|
-
const el = await fixture(html`
|
|
130
|
+
`);await n(t),await e(t).to.be.accessible()}),it('sets tab stop when [selects="single"] and the initial button is [disabled]',async()=>{const t=await i(c`
|
|
265
131
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
266
132
|
<sp-action-button disabled>First</sp-action-button>
|
|
267
133
|
<sp-action-button class="second">Second</sp-action-button>
|
|
268
134
|
<sp-action-button>Third</sp-action-button>
|
|
269
135
|
</sp-action-group>
|
|
270
|
-
`);
|
|
271
|
-
const secondButton = el.querySelector(".second");
|
|
272
|
-
await elementUpdated(el);
|
|
273
|
-
expect(secondButton.hasAttribute("tabindex"));
|
|
274
|
-
expect(secondButton.getAttribute("tabindex")).to.equal("0");
|
|
275
|
-
});
|
|
276
|
-
it('surfaces [selects="single"] selection', async () => {
|
|
277
|
-
const el = await fixture(html`
|
|
136
|
+
`),o=t.querySelector(".second");await n(t),e(o.hasAttribute("tabindex")),e(o.getAttribute("tabindex")).to.equal("0")}),it('surfaces [selects="single"] selection',async()=>{const t=await i(c`
|
|
278
137
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
279
138
|
<sp-action-button>First</sp-action-button>
|
|
280
139
|
<sp-action-button>Second</sp-action-button>
|
|
281
140
|
<sp-action-button selected>Third</sp-action-button>
|
|
282
141
|
</sp-action-group>
|
|
283
|
-
`);
|
|
284
|
-
await elementUpdated(el);
|
|
285
|
-
expect(el.selected, '"Third" selected').to.deep.equal(["Third"]);
|
|
286
|
-
});
|
|
287
|
-
it('surfaces [selects="multiple"] selection', async () => {
|
|
288
|
-
const el = await fixture(html`
|
|
142
|
+
`);await n(t),e(t.selected,'"Third" selected').to.deep.equal(["Third"])}),it('surfaces [selects="multiple"] selection',async()=>{const t=await i(c`
|
|
289
143
|
<sp-action-group
|
|
290
144
|
label="Selects Multiple Group"
|
|
291
145
|
selects="multiple"
|
|
@@ -294,30 +148,13 @@ describe("ActionGroup", () => {
|
|
|
294
148
|
<sp-action-button selected>Second</sp-action-button>
|
|
295
149
|
<sp-action-button selected>Third</sp-action-button>
|
|
296
150
|
</sp-action-group>
|
|
297
|
-
`);
|
|
298
|
-
await elementUpdated(el);
|
|
299
|
-
expect(el.selected, '"Second" and "Third" selected').to.deep.equal([
|
|
300
|
-
"Second",
|
|
301
|
-
"Third"
|
|
302
|
-
]);
|
|
303
|
-
});
|
|
304
|
-
it("does not select without [selects]", async () => {
|
|
305
|
-
const el = await fixture(html`
|
|
151
|
+
`);await n(t),e(t.selected,'"Second" and "Third" selected').to.deep.equal(["Second","Third"])}),it("does not select without [selects]",async()=>{const t=await i(c`
|
|
306
152
|
<sp-action-group label="No Selects Group">
|
|
307
153
|
<sp-action-button>First</sp-action-button>
|
|
308
154
|
<sp-action-button selected>Second</sp-action-button>
|
|
309
155
|
<sp-action-button class="third">Third</sp-action-button>
|
|
310
156
|
</sp-action-group>
|
|
311
|
-
`);
|
|
312
|
-
const thirdElement = el.querySelector(".third");
|
|
313
|
-
await elementUpdated(el);
|
|
314
|
-
expect(el.selected.length).to.equal(1);
|
|
315
|
-
thirdElement.click();
|
|
316
|
-
await elementUpdated(el);
|
|
317
|
-
expect(el.selected.length).to.equal(1);
|
|
318
|
-
});
|
|
319
|
-
it('selects via `click` while [selects="single"]', async () => {
|
|
320
|
-
const el = await fixture(html`
|
|
157
|
+
`),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),o.click(),await n(t),e(t.selected.length).to.equal(1)}),it('selects via `click` while [selects="single"]',async()=>{const t=await i(c`
|
|
321
158
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
322
159
|
<sp-action-button value="first">First</sp-action-button>
|
|
323
160
|
<sp-action-button value="second" selected>
|
|
@@ -327,18 +164,7 @@ describe("ActionGroup", () => {
|
|
|
327
164
|
Third
|
|
328
165
|
</sp-action-button>
|
|
329
166
|
</sp-action-group>
|
|
330
|
-
`);
|
|
331
|
-
const thirdElement = el.querySelector(".third");
|
|
332
|
-
await elementUpdated(el);
|
|
333
|
-
expect(el.selected.length).to.equal(1);
|
|
334
|
-
expect(el.selected.includes("second"));
|
|
335
|
-
thirdElement.click();
|
|
336
|
-
await elementUpdated(el);
|
|
337
|
-
expect(thirdElement.selected, "third child selected").to.be.true;
|
|
338
|
-
await waitUntil(() => el.selected.length === 1 && el.selected.includes("third"), "Updates value of `selected`");
|
|
339
|
-
});
|
|
340
|
-
it('selects via `click` while [selects="multiple"] selection', async () => {
|
|
341
|
-
const el = await fixture(html`
|
|
167
|
+
`),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected.includes("second")),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,await d(()=>t.selected.length===1&&t.selected.includes("third"),"Updates value of `selected`")}),it('selects via `click` while [selects="multiple"] selection',async()=>{const t=await i(c`
|
|
342
168
|
<sp-action-group
|
|
343
169
|
label="Selects Multiple Group"
|
|
344
170
|
selects="multiple"
|
|
@@ -349,91 +175,27 @@ describe("ActionGroup", () => {
|
|
|
349
175
|
<sp-action-button class="second">Second</sp-action-button>
|
|
350
176
|
<sp-action-button class="third">Third</sp-action-button>
|
|
351
177
|
</sp-action-group>
|
|
352
|
-
`);
|
|
353
|
-
const firstElement = el.querySelector(".first");
|
|
354
|
-
const secondElement = el.querySelector(".second");
|
|
355
|
-
const thirdElement = el.querySelector(".third");
|
|
356
|
-
await elementUpdated(el);
|
|
357
|
-
expect(el.selected.length).to.equal(1);
|
|
358
|
-
expect(el.selected.includes("First"));
|
|
359
|
-
firstElement.click();
|
|
360
|
-
secondElement.click();
|
|
361
|
-
thirdElement.click();
|
|
362
|
-
await elementUpdated(el);
|
|
363
|
-
expect(secondElement.selected, "second child selected").to.be.true;
|
|
364
|
-
expect(thirdElement.selected, "third child selected").to.be.true;
|
|
365
|
-
await waitUntil(() => el.selected.length === 2 && el.selected.includes("Second") && el.selected.includes("Third"), "Updates value of `selected`");
|
|
366
|
-
});
|
|
367
|
-
it("does not respond to clicks on itself", async () => {
|
|
368
|
-
const el = await fixture(html`
|
|
178
|
+
`),o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected.includes("First")),o.click(),s.click(),l.click(),await n(t),e(s.selected,"second child selected").to.be.true,e(l.selected,"third child selected").to.be.true,await d(()=>t.selected.length===2&&t.selected.includes("Second")&&t.selected.includes("Third"),"Updates value of `selected`")}),it("does not respond to clicks on itself",async()=>{const t=await i(c`
|
|
369
179
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
370
180
|
<sp-action-button>First</sp-action-button>
|
|
371
181
|
<sp-action-button>Second</sp-action-button>
|
|
372
182
|
<sp-action-button class="third">Third</sp-action-button>
|
|
373
183
|
</sp-action-group>
|
|
374
|
-
`);
|
|
375
|
-
await elementUpdated(el);
|
|
376
|
-
expect(el.selected.length).to.equal(0);
|
|
377
|
-
el.click();
|
|
378
|
-
await elementUpdated(el);
|
|
379
|
-
expect(el.selected.length).to.equal(0);
|
|
380
|
-
});
|
|
381
|
-
it("selection can be prevented", async () => {
|
|
382
|
-
const el = await fixture(html`
|
|
184
|
+
`);await n(t),e(t.selected.length).to.equal(0),t.click(),await n(t),e(t.selected.length).to.equal(0)}),it("selection can be prevented",async()=>{const t=await i(c`
|
|
383
185
|
<sp-action-group
|
|
384
186
|
label="Selects Single Group"
|
|
385
187
|
selects="single"
|
|
386
|
-
@change=${(
|
|
387
|
-
event.preventDefault();
|
|
388
|
-
}}
|
|
188
|
+
@change=${s=>{s.preventDefault()}}
|
|
389
189
|
>
|
|
390
190
|
<sp-action-button>First</sp-action-button>
|
|
391
191
|
<sp-action-button>Second</sp-action-button>
|
|
392
192
|
<sp-action-button class="third">Third</sp-action-button>
|
|
393
193
|
</sp-action-group>
|
|
394
|
-
`);
|
|
395
|
-
const thirdElement = el.querySelector(".third");
|
|
396
|
-
await elementUpdated(el);
|
|
397
|
-
expect(el.selected.length).to.equal(0);
|
|
398
|
-
thirdElement.click();
|
|
399
|
-
await elementUpdated(el);
|
|
400
|
-
expect(thirdElement.selected, "third child not selected").to.be.false;
|
|
401
|
-
expect(el.selected.length).to.equal(0);
|
|
402
|
-
});
|
|
403
|
-
it('selects user-passed value while [selects="single"]', async () => {
|
|
404
|
-
const el = await singleSelectedActionGroup(["first"]);
|
|
405
|
-
await elementUpdated(el);
|
|
406
|
-
expect(el.selected.length).to.equal(1);
|
|
407
|
-
const firstButton = el.querySelector(".first");
|
|
408
|
-
const secondButton = el.querySelector(".second");
|
|
409
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
410
|
-
expect(secondButton.selected, "second button not selected").to.be.false;
|
|
411
|
-
secondButton.click();
|
|
412
|
-
await elementUpdated(el);
|
|
413
|
-
expect(el.selected.length).to.equal(1);
|
|
414
|
-
expect(firstButton.selected, "first button not selected").to.be.false;
|
|
415
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
416
|
-
});
|
|
417
|
-
it('selects can be updated while [selects="single"]', async () => {
|
|
418
|
-
const el = await singleSelectedActionGroup(["first"]);
|
|
419
|
-
await elementUpdated(el);
|
|
420
|
-
expect(el.selected.length).to.equal(1);
|
|
421
|
-
const firstButton = el.querySelector(".first");
|
|
422
|
-
const secondButton = el.querySelector(".second");
|
|
423
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
424
|
-
expect(secondButton.selected, "second button not selected").to.be.false;
|
|
425
|
-
el.selected = ["second"];
|
|
426
|
-
await elementUpdated(el);
|
|
427
|
-
expect(el.selected.length).to.equal(1);
|
|
428
|
-
expect(firstButton.selected, "first button not selected").to.be.false;
|
|
429
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
430
|
-
});
|
|
431
|
-
it('selects user-passed value while [selects="multiple"]', async () => {
|
|
432
|
-
const el = await fixture(html`
|
|
194
|
+
`),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(0),o.click(),await n(t),e(o.selected,"third child not selected").to.be.false,e(t.selected.length).to.equal(0)}),it('selects user-passed value while [selects="single"]',async()=>{const t=await r(["first"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button not selected").to.be.false,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('selects can be updated while [selects="single"]',async()=>{const t=await r(["first"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button not selected").to.be.false,t.selected=["second"],await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('selects user-passed value while [selects="multiple"]',async()=>{const t=await i(c`
|
|
433
195
|
<sp-action-group
|
|
434
196
|
label="Selects Multiple Group"
|
|
435
197
|
selects="multiple"
|
|
436
|
-
.selected=${["first",
|
|
198
|
+
.selected=${["first","second"]}
|
|
437
199
|
>
|
|
438
200
|
<sp-action-button class="first" value="first">
|
|
439
201
|
First
|
|
@@ -445,34 +207,11 @@ describe("ActionGroup", () => {
|
|
|
445
207
|
Third
|
|
446
208
|
</sp-action-button>
|
|
447
209
|
</sp-action-group>
|
|
448
|
-
`);
|
|
449
|
-
await elementUpdated(el);
|
|
450
|
-
const firstButton = el.querySelector(".first");
|
|
451
|
-
const secondButton = el.querySelector(".second");
|
|
452
|
-
const thirdButton = el.querySelector(".third");
|
|
453
|
-
expect(el.selected.length).to.equal(2);
|
|
454
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
455
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
456
|
-
expect(thirdButton.selected, "third button not selected").to.be.false;
|
|
457
|
-
thirdButton.click();
|
|
458
|
-
await elementUpdated(el);
|
|
459
|
-
expect(el.selected.length).to.equal(3);
|
|
460
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
461
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
462
|
-
expect(thirdButton.selected, "third button selected").to.be.true;
|
|
463
|
-
firstButton.click();
|
|
464
|
-
await elementUpdated(el);
|
|
465
|
-
expect(el.selected.length).to.equal(2);
|
|
466
|
-
expect(firstButton.selected, "first button not selected").to.be.false;
|
|
467
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
468
|
-
expect(thirdButton.selected, "third button selected").to.be.true;
|
|
469
|
-
});
|
|
470
|
-
it('selects can be updated while [selects="multiple"]', async () => {
|
|
471
|
-
const el = await fixture(html`
|
|
210
|
+
`);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button not selected").to.be.false,l.click(),await n(t),e(t.selected.length).to.equal(3),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true,o.click(),await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true}),it('selects can be updated while [selects="multiple"]',async()=>{const t=await i(c`
|
|
472
211
|
<sp-action-group
|
|
473
212
|
label="Selects Multiple Group"
|
|
474
213
|
selects="multiple"
|
|
475
|
-
.selected=${["first",
|
|
214
|
+
.selected=${["first","second"]}
|
|
476
215
|
>
|
|
477
216
|
<sp-action-button class="first" value="first">
|
|
478
217
|
First
|
|
@@ -484,53 +223,7 @@ describe("ActionGroup", () => {
|
|
|
484
223
|
Third
|
|
485
224
|
</sp-action-button>
|
|
486
225
|
</sp-action-group>
|
|
487
|
-
`);
|
|
488
|
-
await elementUpdated(el);
|
|
489
|
-
const firstButton = el.querySelector(".first");
|
|
490
|
-
const secondButton = el.querySelector(".second");
|
|
491
|
-
const thirdButton = el.querySelector(".third");
|
|
492
|
-
expect(el.selected.length).to.equal(2);
|
|
493
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
494
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
495
|
-
expect(thirdButton.selected, "third button not selected").to.be.false;
|
|
496
|
-
el.selected = ["first", "second", "third"];
|
|
497
|
-
await elementUpdated(el);
|
|
498
|
-
expect(el.selected.length).to.equal(3);
|
|
499
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
500
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
501
|
-
expect(thirdButton.selected, "third button selected").to.be.true;
|
|
502
|
-
el.selected = ["second", "third"];
|
|
503
|
-
await elementUpdated(el);
|
|
504
|
-
expect(el.selected.length, JSON.stringify(el.selected)).to.equal(2);
|
|
505
|
-
expect(firstButton.selected, "first button not selected").to.be.false;
|
|
506
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
507
|
-
expect(thirdButton.selected, "third button selected").to.be.true;
|
|
508
|
-
});
|
|
509
|
-
it('selects multiple user-passed values while [selects="single"], but then proceeds with radio-button style functionality', async () => {
|
|
510
|
-
const el = await singleSelectedActionGroup(["first", "second"]);
|
|
511
|
-
await elementUpdated(el);
|
|
512
|
-
expect(el.selected.length).to.equal(2);
|
|
513
|
-
const firstButton = el.querySelector(".first");
|
|
514
|
-
const secondButton = el.querySelector(".second");
|
|
515
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
516
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
517
|
-
secondButton.click();
|
|
518
|
-
await elementUpdated(el);
|
|
519
|
-
expect(el.selected.length).to.equal(1);
|
|
520
|
-
expect(firstButton.selected, "first button selected").to.be.false;
|
|
521
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
522
|
-
});
|
|
523
|
-
it('only selects user-passed buttons if present in action-group while [selects="multiple"]', async () => {
|
|
524
|
-
const el = await multipleSelectedActionGroup(["second", "fourth"]);
|
|
525
|
-
await elementUpdated(el);
|
|
526
|
-
expect(el.selected.length).to.equal(1);
|
|
527
|
-
const secondButton = el.querySelector(".second");
|
|
528
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
529
|
-
const firstButton = el.querySelector(".first");
|
|
530
|
-
expect(firstButton.selected, "first button selected").to.be.false;
|
|
531
|
-
});
|
|
532
|
-
it("selects user-passed values with no .selects value, but does not allow interaction afterwards", async () => {
|
|
533
|
-
const el = await fixture(html`
|
|
226
|
+
`);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button not selected").to.be.false,t.selected=["first","second","third"],await n(t),e(t.selected.length).to.equal(3),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true,t.selected=["second","third"],await n(t),e(t.selected.length,JSON.stringify(t.selected)).to.equal(2),e(o.selected,"first button not selected").to.be.false,e(s.selected,"second button selected").to.be.true,e(l.selected,"third button selected").to.be.true}),it('selects multiple user-passed values while [selects="single"], but then proceeds with radio-button style functionality',async()=>{const t=await r(["first","second"]);await n(t),e(t.selected.length).to.equal(2);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button selected").to.be.false,e(s.selected,"second button selected").to.be.true}),it('only selects user-passed buttons if present in action-group while [selects="multiple"]',async()=>{const t=await v(["second","fourth"]);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".second");e(o.selected,"second button selected").to.be.true;const s=t.querySelector(".first");e(s.selected,"first button selected").to.be.false}),it("selects user-passed values with no .selects value, but does not allow interaction afterwards",async()=>{const t=await i(c`
|
|
534
227
|
<sp-action-group
|
|
535
228
|
label="Selects User-Chosen Buttons"
|
|
536
229
|
.selected=${["first"]}
|
|
@@ -542,24 +235,10 @@ describe("ActionGroup", () => {
|
|
|
542
235
|
Second
|
|
543
236
|
</sp-action-button>
|
|
544
237
|
</sp-action-group>
|
|
545
|
-
`);
|
|
546
|
-
await elementUpdated(el);
|
|
547
|
-
expect(el.selected.length).to.equal(1);
|
|
548
|
-
const firstButton = el.querySelector(".first");
|
|
549
|
-
const secondButton = el.querySelector(".second");
|
|
550
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
551
|
-
expect(secondButton.selected, "second button selected").to.be.false;
|
|
552
|
-
secondButton.click();
|
|
553
|
-
await elementUpdated(el);
|
|
554
|
-
expect(el.selected.length).to.equal(1);
|
|
555
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
556
|
-
expect(secondButton.selected, "second button selected").to.be.false;
|
|
557
|
-
});
|
|
558
|
-
it("selects multiple buttons if .selected is passed in, but does not allow further interaction afterwards", async () => {
|
|
559
|
-
const el = await fixture(html`
|
|
238
|
+
`);await n(t),e(t.selected.length).to.equal(1);const o=t.querySelector(".first"),s=t.querySelector(".second");e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.false,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.false}),it("selects multiple buttons if .selected is passed in, but does not allow further interaction afterwards",async()=>{const t=await i(c`
|
|
560
239
|
<sp-action-group
|
|
561
240
|
label="Selects User-Chosen Buttons"
|
|
562
|
-
.selected=${["first",
|
|
241
|
+
.selected=${["first","second"]}
|
|
563
242
|
>
|
|
564
243
|
<sp-action-button class="first" value="first">
|
|
565
244
|
First
|
|
@@ -568,28 +247,12 @@ describe("ActionGroup", () => {
|
|
|
568
247
|
Second
|
|
569
248
|
</sp-action-button>
|
|
570
249
|
</sp-action-group>
|
|
571
|
-
`);
|
|
572
|
-
await elementUpdated(el);
|
|
573
|
-
expect(el.selected.length).to.equal(2);
|
|
574
|
-
const firstButton = el.querySelector(".first");
|
|
575
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
576
|
-
const secondButton = el.querySelector(".second");
|
|
577
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
578
|
-
firstButton.click();
|
|
579
|
-
await elementUpdated(el);
|
|
580
|
-
expect(el.selected.length).to.equal(2);
|
|
581
|
-
expect(firstButton.selected, "first button selected").to.be.true;
|
|
582
|
-
expect(secondButton.selected, "second button selected").to.be.true;
|
|
583
|
-
});
|
|
584
|
-
it('will not change .selected state if event is prevented while [selects="multiple"]', async () => {
|
|
585
|
-
const el = await fixture(html`
|
|
250
|
+
`);await n(t),e(t.selected.length).to.equal(2);const o=t.querySelector(".first");e(o.selected,"first button selected").to.be.true;const s=t.querySelector(".second");e(s.selected,"second button selected").to.be.true,o.click(),await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first button selected").to.be.true,e(s.selected,"second button selected").to.be.true}),it('will not change .selected state if event is prevented while [selects="multiple"]',async()=>{const t=await i(c`
|
|
586
251
|
<sp-action-group
|
|
587
252
|
label="Selects Multiple Group"
|
|
588
253
|
selects="multiple"
|
|
589
|
-
.selected=${["first",
|
|
590
|
-
@change=${(
|
|
591
|
-
event.preventDefault();
|
|
592
|
-
}}
|
|
254
|
+
.selected=${["first","second"]}
|
|
255
|
+
@change=${h=>{h.preventDefault()}}
|
|
593
256
|
>
|
|
594
257
|
<sp-action-button class="first" value="first">
|
|
595
258
|
First
|
|
@@ -601,31 +264,12 @@ describe("ActionGroup", () => {
|
|
|
601
264
|
Third
|
|
602
265
|
</sp-action-button>
|
|
603
266
|
</sp-action-group>
|
|
604
|
-
`);
|
|
605
|
-
const firstElement = el.querySelector(".first");
|
|
606
|
-
const secondElement = el.querySelector(".second");
|
|
607
|
-
const thirdElement = el.querySelector(".third");
|
|
608
|
-
await elementUpdated(el);
|
|
609
|
-
expect(el.selected.length).to.equal(2);
|
|
610
|
-
expect(firstElement.selected, "first child selected").to.be.true;
|
|
611
|
-
expect(secondElement.selected, "second child selected").to.be.true;
|
|
612
|
-
thirdElement.click();
|
|
613
|
-
await elementUpdated(el);
|
|
614
|
-
expect(thirdElement.selected, "third child not selected").to.be.false;
|
|
615
|
-
expect(el.selected.length).to.equal(2);
|
|
616
|
-
secondElement.click();
|
|
617
|
-
await elementUpdated(el);
|
|
618
|
-
expect(secondElement.selected, "second element still selected").to.be.true;
|
|
619
|
-
});
|
|
620
|
-
it('will not change .selected state if event is prevented while [selects="single"]', async () => {
|
|
621
|
-
const el = await fixture(html`
|
|
267
|
+
`),o=t.querySelector(".first"),s=t.querySelector(".second"),l=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(2),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child selected").to.be.true,l.click(),await n(t),e(l.selected,"third child not selected").to.be.false,e(t.selected.length).to.equal(2),s.click(),await n(t),e(s.selected,"second element still selected").to.be.true}),it('will not change .selected state if event is prevented while [selects="single"]',async()=>{const t=await i(c`
|
|
622
268
|
<sp-action-group
|
|
623
269
|
label="Selects Single Group"
|
|
624
270
|
selects="single"
|
|
625
271
|
.selected=${["first"]}
|
|
626
|
-
@change=${(
|
|
627
|
-
event.preventDefault();
|
|
628
|
-
}}
|
|
272
|
+
@change=${l=>{l.preventDefault()}}
|
|
629
273
|
>
|
|
630
274
|
<sp-action-button class="first" value="first">
|
|
631
275
|
First
|
|
@@ -634,28 +278,11 @@ describe("ActionGroup", () => {
|
|
|
634
278
|
Second
|
|
635
279
|
</sp-action-button>
|
|
636
280
|
</sp-action-group>
|
|
637
|
-
`);
|
|
638
|
-
const firstElement = el.querySelector(".first");
|
|
639
|
-
const secondElement = el.querySelector(".second");
|
|
640
|
-
await elementUpdated(el);
|
|
641
|
-
expect(el.selected.length).to.equal(1);
|
|
642
|
-
expect(firstElement.selected, "first child selected").to.be.true;
|
|
643
|
-
secondElement.click();
|
|
644
|
-
await elementUpdated(el);
|
|
645
|
-
expect(secondElement.selected, "second child not selected").to.be.false;
|
|
646
|
-
expect(el.selected.length).to.equal(1);
|
|
647
|
-
firstElement.click();
|
|
648
|
-
await elementUpdated(el);
|
|
649
|
-
expect(firstElement.selected, "first element still selected").to.be.true;
|
|
650
|
-
});
|
|
651
|
-
it("will not change .selected state if event is prevented while selects is undefined", async () => {
|
|
652
|
-
const el = await fixture(html`
|
|
281
|
+
`),o=t.querySelector(".first"),s=t.querySelector(".second");await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,s.click(),await n(t),e(s.selected,"second child not selected").to.be.false,e(t.selected.length).to.equal(1),o.click(),await n(t),e(o.selected,"first element still selected").to.be.true}),it("will not change .selected state if event is prevented while selects is undefined",async()=>{const t=await i(c`
|
|
653
282
|
<sp-action-group
|
|
654
283
|
label="Selects Single Group"
|
|
655
284
|
.selected=${["first"]}
|
|
656
|
-
@change=${(
|
|
657
|
-
event.preventDefault();
|
|
658
|
-
}}
|
|
285
|
+
@change=${l=>{l.preventDefault()}}
|
|
659
286
|
>
|
|
660
287
|
<sp-action-button class="first" value="first">
|
|
661
288
|
First
|
|
@@ -664,20 +291,7 @@ describe("ActionGroup", () => {
|
|
|
664
291
|
Second
|
|
665
292
|
</sp-action-button>
|
|
666
293
|
</sp-action-group>
|
|
667
|
-
`);
|
|
668
|
-
const firstElement = el.querySelector(".first");
|
|
669
|
-
const secondElement = el.querySelector(".second");
|
|
670
|
-
await elementUpdated(el);
|
|
671
|
-
expect(el.selected.length).to.equal(1);
|
|
672
|
-
expect(firstElement.selected, "first child selected").to.be.true;
|
|
673
|
-
secondElement.click();
|
|
674
|
-
await elementUpdated(el);
|
|
675
|
-
expect(el.selected.length).to.equal(1);
|
|
676
|
-
expect(firstElement.selected, "first child selected").to.be.true;
|
|
677
|
-
expect(secondElement.selected, "second child not selected").to.be.false;
|
|
678
|
-
});
|
|
679
|
-
it("will accept selected as a JSON string", async () => {
|
|
680
|
-
const el = await fixture(html`
|
|
294
|
+
`),o=t.querySelector(".first"),s=t.querySelector(".second");await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,s.click(),await n(t),e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child not selected").to.be.false}),it("will accept selected as a JSON string",async()=>{const t=await i(c`
|
|
681
295
|
<sp-action-group
|
|
682
296
|
label="Selects Single Group"
|
|
683
297
|
selects="single"
|
|
@@ -690,60 +304,13 @@ describe("ActionGroup", () => {
|
|
|
690
304
|
Second
|
|
691
305
|
</sp-action-button>
|
|
692
306
|
</sp-action-group>
|
|
693
|
-
`);
|
|
694
|
-
await elementUpdated(el);
|
|
695
|
-
const firstElement = el.querySelector(".first");
|
|
696
|
-
const secondElement = el.querySelector(".second");
|
|
697
|
-
expect(el.selected.length).to.equal(1);
|
|
698
|
-
expect(firstElement.selected, "first child selected").to.be.true;
|
|
699
|
-
expect(secondElement.selected, "second child selected").to.be.false;
|
|
700
|
-
});
|
|
701
|
-
const acceptKeyboardInput = async (el) => {
|
|
702
|
-
const thirdElement = el.querySelector(".third");
|
|
703
|
-
await elementUpdated(el);
|
|
704
|
-
expect(el.selected.length).to.equal(1);
|
|
705
|
-
expect(el.selected[0]).to.equal("Second");
|
|
706
|
-
thirdElement.click();
|
|
707
|
-
await elementUpdated(el);
|
|
708
|
-
expect(thirdElement.selected, "third child selected").to.be.true;
|
|
709
|
-
expect(el.selected.length).to.equal(1);
|
|
710
|
-
expect(el.selected[0]).to.equal("Third");
|
|
711
|
-
el.dispatchEvent(arrowRightEvent());
|
|
712
|
-
await sendKeys({ press: "Enter" });
|
|
713
|
-
await elementUpdated(el);
|
|
714
|
-
expect(el.selected.length).to.equal(1);
|
|
715
|
-
expect(el.selected[0]).to.equal("First");
|
|
716
|
-
el.dispatchEvent(arrowLeftEvent());
|
|
717
|
-
el.dispatchEvent(arrowUpEvent());
|
|
718
|
-
await sendKeys({ press: "Enter" });
|
|
719
|
-
expect(el.selected.length).to.equal(1);
|
|
720
|
-
expect(el.selected[0]).to.equal("Second");
|
|
721
|
-
el.dispatchEvent(endEvent());
|
|
722
|
-
await sendKeys({ press: "Enter" });
|
|
723
|
-
expect(el.selected.length).to.equal(1);
|
|
724
|
-
expect(el.selected[0]).to.equal("Third");
|
|
725
|
-
await sendKeys({ press: "Enter" });
|
|
726
|
-
el.dispatchEvent(homeEvent());
|
|
727
|
-
await sendKeys({ press: "Enter" });
|
|
728
|
-
expect(el.selected.length).to.equal(1);
|
|
729
|
-
expect(el.selected[0]).to.equal("First");
|
|
730
|
-
el.dispatchEvent(arrowDownEvent());
|
|
731
|
-
await sendKeys({ press: "Enter" });
|
|
732
|
-
expect(el.selected.length).to.equal(1);
|
|
733
|
-
expect(el.selected[0]).to.equal("Second");
|
|
734
|
-
};
|
|
735
|
-
it("accepts keybord input", async () => {
|
|
736
|
-
const el = await fixture(html`
|
|
307
|
+
`);await n(t);const o=t.querySelector(".first"),s=t.querySelector(".second");e(t.selected.length).to.equal(1),e(o.selected,"first child selected").to.be.true,e(s.selected,"second child selected").to.be.false});const a=async t=>{const o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second"),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),t.dispatchEvent(b()),await u({press:"Enter"}),await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(w()),t.dispatchEvent(g()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second"),t.dispatchEvent(q()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),await u({press:"Enter"}),t.dispatchEvent(S()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(f()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Second")};it("accepts keybord input",async()=>{const t=await i(c`
|
|
737
308
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
738
309
|
<sp-action-button>First</sp-action-button>
|
|
739
310
|
<sp-action-button selected>Second</sp-action-button>
|
|
740
311
|
<sp-action-button class="third">Third</sp-action-button>
|
|
741
312
|
</sp-action-group>
|
|
742
|
-
`);
|
|
743
|
-
await acceptKeyboardInput(el);
|
|
744
|
-
});
|
|
745
|
-
it("accepts keybord input with tooltip", async () => {
|
|
746
|
-
const el = await fixture(html`
|
|
313
|
+
`);await a(t)}),it("accepts keybord input with tooltip",async()=>{const t=await i(c`
|
|
747
314
|
<sp-action-group label="Selects Single Group" selects="single">
|
|
748
315
|
<overlay-trigger>
|
|
749
316
|
<sp-action-button slot="trigger">
|
|
@@ -768,11 +335,7 @@ describe("ActionGroup", () => {
|
|
|
768
335
|
<sp-tooltip slot="hover-content">Select me.</sp-tooltip>
|
|
769
336
|
</overlay-trigger>
|
|
770
337
|
</sp-action-group>
|
|
771
|
-
`);
|
|
772
|
-
await acceptKeyboardInput(el);
|
|
773
|
-
});
|
|
774
|
-
it('accepts keybord input when [dir="ltr"]', async () => {
|
|
775
|
-
const el = await fixture(html`
|
|
338
|
+
`);await a(t)}),it('accepts keybord input when [dir="ltr"]',async()=>{const t=await i(c`
|
|
776
339
|
<sp-action-group
|
|
777
340
|
label="Selects Single Group"
|
|
778
341
|
selects="single"
|
|
@@ -782,24 +345,5 @@ describe("ActionGroup", () => {
|
|
|
782
345
|
<sp-action-button disabled>Second</sp-action-button>
|
|
783
346
|
<sp-action-button class="third">Third</sp-action-button>
|
|
784
347
|
</sp-action-group>
|
|
785
|
-
`);
|
|
786
|
-
const thirdElement = el.querySelector(".third");
|
|
787
|
-
await elementUpdated(el);
|
|
788
|
-
expect(el.selected.length).to.equal(0);
|
|
789
|
-
thirdElement.click();
|
|
790
|
-
await elementUpdated(el);
|
|
791
|
-
expect(thirdElement.selected, "third child selected").to.be.true;
|
|
792
|
-
expect(el.selected.length).to.equal(1);
|
|
793
|
-
expect(el.selected[0]).to.equal("Third");
|
|
794
|
-
el.dispatchEvent(arrowRightEvent());
|
|
795
|
-
await sendKeys({ press: "Enter" });
|
|
796
|
-
await elementUpdated(el);
|
|
797
|
-
expect(el.selected.length).to.equal(1);
|
|
798
|
-
expect(el.selected[0]).to.equal("First");
|
|
799
|
-
el.dispatchEvent(arrowUpEvent());
|
|
800
|
-
await sendKeys({ press: "Enter" });
|
|
801
|
-
expect(el.selected.length).to.equal(1);
|
|
802
|
-
expect(el.selected[0]).to.equal("Third");
|
|
803
|
-
});
|
|
804
|
-
});
|
|
348
|
+
`),o=t.querySelector(".third");await n(t),e(t.selected.length).to.equal(0),o.click(),await n(t),e(o.selected,"third child selected").to.be.true,e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third"),t.dispatchEvent(b()),await u({press:"Enter"}),await n(t),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("First"),t.dispatchEvent(g()),await u({press:"Enter"}),e(t.selected.length).to.equal(1),e(t.selected[0]).to.equal("Third")})});
|
|
805
349
|
//# sourceMappingURL=action-group.test.js.map
|