wcs-core 7.3.0 → 7.4.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/README.md +11 -9
- package/design-tokens/dist/sncf-groupe-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-groupe.css +227 -227
- package/design-tokens/dist/sncf-holding-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-holding.css +227 -227
- package/design-tokens/dist/sncf-reseau-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-reseau.css +227 -227
- package/design-tokens/dist/sncf-voyageurs-root-scoped.css +242 -242
- package/design-tokens/dist/sncf-voyageurs.css +242 -242
- package/dist/cjs/{popper-8d6e7fca.js → popper-1b61df21.js} +10 -17
- package/dist/cjs/popper-1b61df21.js.map +1 -0
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav.cjs.entry.js +3 -3
- package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid.cjs.entry.js +5 -4
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +3 -2
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
- package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +59 -24
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/accordion/{accordion.e2e.js → accordion.e2e.playwright.js} +51 -55
- package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -0
- package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
- package/dist/collection/components/alert/alert.e2e.playwright.js +125 -0
- package/dist/collection/components/alert/alert.e2e.playwright.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js +107 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js +188 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/button.e2e.playwright.js +26 -0
- package/dist/collection/components/button/button.e2e.playwright.js.map +1 -0
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js +39 -0
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/chip/chip.e2e.playwright.js +190 -0
- package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.css +15 -0
- package/dist/collection/components/com-nav/{com-nav.e2e.js → com-nav.e2e.playwright.js} +60 -44
- package/dist/collection/components/com-nav/com-nav.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.js +3 -3
- package/dist/collection/components/com-nav/com-nav.js.map +1 -1
- package/dist/collection/components/com-nav-category/com-nav-category.js +1 -1
- package/dist/collection/components/com-nav-item/com-nav-item.css +2 -2
- package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +1 -1
- package/dist/collection/components/counter/counter.e2e.playwright.js +187 -0
- package/dist/collection/components/counter/counter.e2e.playwright.js.map +1 -0
- package/dist/collection/components/counter/counter.js +1 -1
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +320 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +156 -0
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js +104 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/galactic-menu/galactic-menu.js +1 -1
- package/dist/collection/components/grid/grid.e2e.playwright.js +153 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -0
- package/dist/collection/components/grid/grid.js +6 -5
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js +2 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper-interface.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +5 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.e2e.playwright.js +157 -0
- package/dist/collection/components/input/input.e2e.playwright.js.map +1 -0
- package/dist/collection/components/input/input.js +2 -2
- package/dist/collection/components/label/label.css +4 -6
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/mat-icon/mat-icon.js +1 -1
- package/dist/collection/components/modal/modal.css +4 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js +35 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js.map +1 -0
- package/dist/collection/components/modal/modal.js +2 -2
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/native-select/native-select.js +1 -1
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-radial/progress-radial.js +1 -1
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +231 -0
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -0
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/select/select.e2e.playwright.js +1702 -0
- package/dist/collection/components/select/select.e2e.playwright.js.map +1 -0
- package/dist/collection/components/select/select.js +49 -20
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.js +3 -3
- package/dist/collection/components/select-option/select-option.js.map +1 -1
- package/dist/collection/components/switch/switch.e2e.playwright.js +40 -0
- package/dist/collection/components/switch/switch.e2e.playwright.js.map +1 -0
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tabs/tabs.e2e.playwright.js +205 -0
- package/dist/collection/components/tabs/tabs.e2e.playwright.js.map +1 -0
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/textarea/textarea.e2e.playwright.js +133 -0
- package/dist/collection/components/textarea/textarea.e2e.playwright.js.map +1 -0
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/utils/playwright/test-expect.js +2 -0
- package/dist/collection/utils/playwright/test-expect.js.map +1 -0
- package/dist/collection/utils/playwright/test.js +16 -0
- package/dist/collection/utils/playwright/test.js.map +1 -0
- package/dist/esm/{popper-e491c314.js → popper-ac238961.js} +10 -17
- package/dist/esm/popper-ac238961.js.map +1 -0
- package/dist/esm/wcs-breadcrumb.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav.entry.js +3 -3
- package/dist/esm/wcs-com-nav.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js.map +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +1 -1
- package/dist/esm/wcs-grid.entry.js +5 -4
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +3 -2
- package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
- package/dist/esm/wcs-modal.entry.js +2 -2
- package/dist/esm/wcs-modal.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +59 -24
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-tabs.entry.js +1 -1
- package/dist/esm/wcs-tooltip.entry.js +1 -1
- package/dist/types/components/accordion/accordion.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert/alert.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert-drawer/alert-drawer.e2e.playwright.d.ts +1 -0
- package/dist/types/components/breadcrumb/breadcrumb.e2e.playwright.d.ts +1 -0
- package/dist/types/components/button/button.e2e.playwright.d.ts +1 -0
- package/dist/types/components/checkbox/checkbox.e2e.playwright.d.ts +1 -0
- package/dist/types/components/chip/chip.e2e.playwright.d.ts +1 -0
- package/dist/types/components/com-nav/com-nav.e2e.playwright.d.ts +1 -0
- package/dist/types/components/counter/counter.e2e.playwright.d.ts +1 -0
- package/dist/types/components/dropdown/dropdown.e2e.playwright.d.ts +1 -0
- package/dist/types/components/editable-field/editable-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/form-field/form-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/grid/grid.e2e.playwright.d.ts +1 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +2 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +4 -0
- package/dist/types/components/input/input.e2e.playwright.d.ts +1 -0
- package/dist/types/components/modal/modal.e2e.playwright.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group.e2e.playwright.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +7 -1
- package/dist/types/components/select/select.e2e.playwright.d.ts +1 -0
- package/dist/types/components/switch/switch.e2e.playwright.d.ts +1 -0
- package/dist/types/components/tabs/tabs.e2e.playwright.d.ts +1 -0
- package/dist/types/components/textarea/textarea.e2e.playwright.d.ts +1 -0
- package/dist/types/components.d.ts +12 -0
- package/dist/types/utils/playwright/test-expect.d.ts +33 -0
- package/dist/types/utils/playwright/test.d.ts +7 -0
- package/dist/wcs/{p-8e9bd0f1.entry.js → p-0326f834.entry.js} +2 -2
- package/dist/wcs/{p-8e9bd0f1.entry.js.map → p-0326f834.entry.js.map} +1 -1
- package/dist/wcs/p-2221bf0c.entry.js +16 -0
- package/dist/wcs/p-2221bf0c.entry.js.map +1 -0
- package/dist/wcs/p-4ae08567.entry.js +2 -0
- package/dist/wcs/p-4ae08567.entry.js.map +1 -0
- package/dist/wcs/p-4e2d6227.entry.js +2 -0
- package/dist/wcs/p-4e2d6227.entry.js.map +1 -0
- package/dist/wcs/p-8332a7e3.entry.js +2 -0
- package/dist/wcs/p-8332a7e3.entry.js.map +1 -0
- package/dist/wcs/{p-ec383729.entry.js → p-9b76b8e6.entry.js} +2 -2
- package/dist/wcs/{p-ec383729.entry.js.map → p-9b76b8e6.entry.js.map} +1 -1
- package/dist/wcs/{p-1f593d06.entry.js → p-abd8d5a0.entry.js} +2 -2
- package/dist/wcs/{p-622f7403.entry.js → p-c6f8c45c.entry.js} +2 -2
- package/dist/wcs/{p-a94e685c.entry.js → p-db7ba599.entry.js} +2 -2
- package/dist/wcs/p-e1fb3625.js +2 -0
- package/dist/wcs/p-e1fb3625.js.map +1 -0
- package/dist/wcs/{p-a956dc84.entry.js → p-f2f7595e.entry.js} +2 -2
- package/dist/wcs/{p-a956dc84.entry.js.map → p-f2f7595e.entry.js.map} +1 -1
- package/dist/wcs/p-fbd68522.entry.js +2 -0
- package/dist/wcs/p-fbd68522.entry.js.map +1 -0
- package/dist/wcs/{p-8c2605fd.entry.js → p-fe303f58.entry.js} +2 -2
- package/dist/wcs/wcs.esm.js +1 -1
- package/package.json +18 -24
- package/dist/cjs/popper-8d6e7fca.js.map +0 -1
- package/dist/collection/components/accordion/accordion.e2e.js.map +0 -1
- package/dist/collection/components/alert/alert.e2e.js +0 -142
- package/dist/collection/components/alert/alert.e2e.js.map +0 -1
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +0 -111
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +0 -1
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +0 -223
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js.map +0 -1
- package/dist/collection/components/button/button.e2e.js +0 -25
- package/dist/collection/components/button/button.e2e.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox.e2e.js +0 -45
- package/dist/collection/components/checkbox/checkbox.e2e.js.map +0 -1
- package/dist/collection/components/chip/chip.e2e.js +0 -209
- package/dist/collection/components/chip/chip.e2e.js.map +0 -1
- package/dist/collection/components/com-nav/com-nav.e2e.js.map +0 -1
- package/dist/collection/components/counter/counter.e2e.js +0 -206
- package/dist/collection/components/counter/counter.e2e.js.map +0 -1
- package/dist/collection/components/dropdown/dropdown.e2e.js +0 -156
- package/dist/collection/components/dropdown/dropdown.e2e.js.map +0 -1
- package/dist/collection/components/editable-field/editable-field.e2e.js +0 -176
- package/dist/collection/components/editable-field/editable-field.e2e.js.map +0 -1
- package/dist/collection/components/form-field/form-field.e2e.js +0 -122
- package/dist/collection/components/form-field/form-field.e2e.js.map +0 -1
- package/dist/collection/components/grid/grid.e2e.js +0 -147
- package/dist/collection/components/grid/grid.e2e.js.map +0 -1
- package/dist/collection/components/input/input.e2e.js +0 -152
- package/dist/collection/components/input/input.e2e.js.map +0 -1
- package/dist/collection/components/modal/modal.e2e.js +0 -36
- package/dist/collection/components/modal/modal.e2e.js.map +0 -1
- package/dist/collection/components/radio-group/radio-group.e2e.js +0 -239
- package/dist/collection/components/radio-group/radio-group.e2e.js.map +0 -1
- package/dist/collection/components/select/select.e2e.js +0 -1081
- package/dist/collection/components/select/select.e2e.js.map +0 -1
- package/dist/collection/components/switch/switch.e2e.js +0 -45
- package/dist/collection/components/switch/switch.e2e.js.map +0 -1
- package/dist/collection/components/tabs/tabs.e2e.js +0 -207
- package/dist/collection/components/tabs/tabs.e2e.js.map +0 -1
- package/dist/collection/components/textarea/textarea.e2e.js +0 -132
- package/dist/collection/components/textarea/textarea.e2e.js.map +0 -1
- package/dist/collection/utils/tests.js +0 -23
- package/dist/collection/utils/tests.js.map +0 -1
- package/dist/esm/popper-e491c314.js.map +0 -1
- package/dist/types/utils/tests.d.ts +0 -4
- package/dist/wcs/p-0dd07842.entry.js +0 -2
- package/dist/wcs/p-0dd07842.entry.js.map +0 -1
- package/dist/wcs/p-0f864e86.js +0 -2
- package/dist/wcs/p-0f864e86.js.map +0 -1
- package/dist/wcs/p-1244daa0.entry.js +0 -2
- package/dist/wcs/p-1244daa0.entry.js.map +0 -1
- package/dist/wcs/p-1fbe0328.entry.js +0 -2
- package/dist/wcs/p-1fbe0328.entry.js.map +0 -1
- package/dist/wcs/p-b94a09b6.entry.js +0 -16
- package/dist/wcs/p-b94a09b6.entry.js.map +0 -1
- package/dist/wcs/p-fd187bce.entry.js +0 -2
- package/dist/wcs/p-fd187bce.entry.js.map +0 -1
- /package/dist/wcs/{p-1f593d06.entry.js.map → p-abd8d5a0.entry.js.map} +0 -0
- /package/dist/wcs/{p-622f7403.entry.js.map → p-c6f8c45c.entry.js.map} +0 -0
- /package/dist/wcs/{p-a94e685c.entry.js.map → p-db7ba599.entry.js.map} +0 -0
- /package/dist/wcs/{p-8c2605fd.entry.js.map → p-fe303f58.entry.js.map} +0 -0
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
-
import { findFocusedNode, setWcsContent } from "../../utils/tests";
|
|
3
|
-
describe('Chip component', () => {
|
|
4
|
-
describe('Events', () => {
|
|
5
|
-
it('should emit wcsChipSelectChange with selected=true on click (selectable by default)', async () => {
|
|
6
|
-
// Given
|
|
7
|
-
const page = await newE2EPage();
|
|
8
|
-
await setWcsContent(page, `
|
|
9
|
-
<wcs-chip value="chip-id" label="Chip"></wcs-chip>
|
|
10
|
-
`);
|
|
11
|
-
// When
|
|
12
|
-
const chip = await page.find('wcs-chip');
|
|
13
|
-
const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');
|
|
14
|
-
await chip.click();
|
|
15
|
-
await page.waitForChanges();
|
|
16
|
-
// Then
|
|
17
|
-
expect(eventSpy).toHaveReceivedEventTimes(1);
|
|
18
|
-
expect(eventSpy).toHaveReceivedEventDetail({ value: 'chip-id', selected: true });
|
|
19
|
-
});
|
|
20
|
-
it('should toggle selection and emit on Space/Enter (selectable)', async () => {
|
|
21
|
-
// Given
|
|
22
|
-
const page = await newE2EPage();
|
|
23
|
-
await setWcsContent(page, `
|
|
24
|
-
<wcs-chip value="chip-id" label="Chip"></wcs-chip>
|
|
25
|
-
`);
|
|
26
|
-
const chip = await page.find('wcs-chip');
|
|
27
|
-
const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');
|
|
28
|
-
// When - Space selects
|
|
29
|
-
await chip.focus();
|
|
30
|
-
await chip.press('Space');
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
// When - Enter toggles back
|
|
33
|
-
await chip.press('Enter');
|
|
34
|
-
await page.waitForChanges();
|
|
35
|
-
// Then
|
|
36
|
-
expect(eventSpy).toHaveReceivedEventTimes(2);
|
|
37
|
-
// Last emitted detail should be selected=false
|
|
38
|
-
const lastDetail = eventSpy.events[eventSpy.events.length - 1].detail;
|
|
39
|
-
expect(lastDetail).toEqual({ value: 'chip-id', selected: false });
|
|
40
|
-
});
|
|
41
|
-
it('should emit wcsChipDismiss when clicking dismiss button (dismissible)', async () => {
|
|
42
|
-
// Given
|
|
43
|
-
const page = await newE2EPage();
|
|
44
|
-
await setWcsContent(page, `
|
|
45
|
-
<wcs-chip mode="dismissible" value="chip-id" label="Chip"></wcs-chip>
|
|
46
|
-
`);
|
|
47
|
-
const chip = await page.find('wcs-chip');
|
|
48
|
-
const dismissBtn = await page.find('wcs-chip>>>button');
|
|
49
|
-
const eventSpy = await chip.spyOnEvent('wcsChipDismiss');
|
|
50
|
-
// When
|
|
51
|
-
await dismissBtn.click();
|
|
52
|
-
await page.waitForChanges();
|
|
53
|
-
// Then
|
|
54
|
-
expect(eventSpy).toHaveReceivedEventTimes(1);
|
|
55
|
-
expect(eventSpy).toHaveReceivedEventDetail({ value: 'chip-id' });
|
|
56
|
-
// open prop should be false -> attribute removed
|
|
57
|
-
expect(chip.getAttribute('open')).toBe(null);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe('Keyboard', () => {
|
|
61
|
-
it('Delete/Backspace on dismiss button dismisses the chip', async () => {
|
|
62
|
-
// Given
|
|
63
|
-
const page = await newE2EPage();
|
|
64
|
-
await setWcsContent(page, `
|
|
65
|
-
<wcs-chip mode="dismissible" value="chip-id" label="Chip"></wcs-chip>
|
|
66
|
-
`);
|
|
67
|
-
const chip = await page.find('wcs-chip');
|
|
68
|
-
const dismissBtn = await page.find('wcs-chip>>>button');
|
|
69
|
-
const eventSpy = await chip.spyOnEvent('wcsChipDismiss');
|
|
70
|
-
// When
|
|
71
|
-
await dismissBtn.focus();
|
|
72
|
-
await page.keyboard.press('Delete');
|
|
73
|
-
await page.waitForChanges();
|
|
74
|
-
// Then
|
|
75
|
-
expect(eventSpy).toHaveReceivedEvent();
|
|
76
|
-
expect(chip.getAttribute('open')).toBe(null);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
describe('Accessibility', () => {
|
|
80
|
-
it('exposes proper ARIA for selectable: role=checkbox, aria-checked toggles, tabindex respects disabled', async () => {
|
|
81
|
-
// Given
|
|
82
|
-
const page = await newE2EPage();
|
|
83
|
-
await setWcsContent(page, `
|
|
84
|
-
<wcs-chip value="chip-id" label="Chip"></wcs-chip>
|
|
85
|
-
`);
|
|
86
|
-
const chip = await page.find('wcs-chip');
|
|
87
|
-
// Then default
|
|
88
|
-
expect(chip.getAttribute('role')).toBe('checkbox');
|
|
89
|
-
expect(chip.getAttribute('aria-checked')).toBe('false');
|
|
90
|
-
expect(chip.getAttribute('tabindex')).toBe('0');
|
|
91
|
-
// When
|
|
92
|
-
await chip.click();
|
|
93
|
-
await page.waitForChanges();
|
|
94
|
-
// Then toggled
|
|
95
|
-
expect(chip.getAttribute('aria-checked')).toBe('true');
|
|
96
|
-
});
|
|
97
|
-
it('exposes proper ARIA/disabled for dismissible: button has label and respects disabled', async () => {
|
|
98
|
-
// Given
|
|
99
|
-
const page = await newE2EPage();
|
|
100
|
-
await setWcsContent(page, `
|
|
101
|
-
<wcs-chip mode="dismissible" value="chip-id" label="Chip"></wcs-chip>
|
|
102
|
-
`);
|
|
103
|
-
const btn = await page.find('wcs-chip>>>button');
|
|
104
|
-
// Then
|
|
105
|
-
expect(btn.getAttribute('aria-label')).toBe('Supprimer Chip');
|
|
106
|
-
// When disabled
|
|
107
|
-
const chip = await page.find('wcs-chip');
|
|
108
|
-
chip.setProperty('disabled', true);
|
|
109
|
-
await page.waitForChanges();
|
|
110
|
-
// Then
|
|
111
|
-
expect(chip.getAttribute('aria-disabled')).toBe('true');
|
|
112
|
-
expect(btn.getAttribute('disabled')).not.toBe(null);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
describe('Disabled state', () => {
|
|
116
|
-
it('does not emit select event when disabled (click and Space)', async () => {
|
|
117
|
-
// Given
|
|
118
|
-
const page = await newE2EPage();
|
|
119
|
-
await setWcsContent(page, `
|
|
120
|
-
<wcs-chip disabled value="chip-id" label="Chip"></wcs-chip>
|
|
121
|
-
`);
|
|
122
|
-
const chip = await page.find('wcs-chip');
|
|
123
|
-
const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');
|
|
124
|
-
// When
|
|
125
|
-
await chip.click();
|
|
126
|
-
await chip.press('Space');
|
|
127
|
-
await page.waitForChanges();
|
|
128
|
-
// Then
|
|
129
|
-
expect(eventSpy).not.toHaveReceivedEvent();
|
|
130
|
-
expect(chip.getAttribute('tabindex')).toBe('-1');
|
|
131
|
-
expect(chip.getAttribute('aria-checked')).toBe('false');
|
|
132
|
-
});
|
|
133
|
-
it('does not emit dismiss event when disabled', async () => {
|
|
134
|
-
// Given
|
|
135
|
-
const page = await newE2EPage();
|
|
136
|
-
await setWcsContent(page, `
|
|
137
|
-
<wcs-chip disabled mode="dismissible" value="chip-id" label="Chip"></wcs-chip>
|
|
138
|
-
`);
|
|
139
|
-
const chip = await page.find('wcs-chip');
|
|
140
|
-
const btn = await page.find('wcs-chip>>>button');
|
|
141
|
-
const eventSpy = await chip.spyOnEvent('wcsChipDismiss');
|
|
142
|
-
// When
|
|
143
|
-
await btn.click();
|
|
144
|
-
await page.waitForChanges();
|
|
145
|
-
// Then
|
|
146
|
-
expect(eventSpy).not.toHaveReceivedEvent();
|
|
147
|
-
expect(chip.getAttribute('open')).toBe('');
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
describe('Focus management', () => {
|
|
151
|
-
it('after dismiss, focus moves to next actionable chip (selectable host)', async () => {
|
|
152
|
-
// Given
|
|
153
|
-
const page = await newE2EPage();
|
|
154
|
-
await setWcsContent(page, `
|
|
155
|
-
<div>
|
|
156
|
-
<wcs-chip id="c1" mode="dismissible" value="c1" label="One"></wcs-chip>
|
|
157
|
-
<wcs-chip id="c2" value="c2" label="Two"></wcs-chip>
|
|
158
|
-
</div>
|
|
159
|
-
`);
|
|
160
|
-
const btn = await page.find('#c1>>>button');
|
|
161
|
-
// When
|
|
162
|
-
await btn.click();
|
|
163
|
-
await page.waitForChanges();
|
|
164
|
-
const snapshot = await page.accessibility.snapshot();
|
|
165
|
-
const focused = findFocusedNode(snapshot);
|
|
166
|
-
// Then
|
|
167
|
-
expect(focused.name).toBe('Two');
|
|
168
|
-
});
|
|
169
|
-
it('after dismiss, focus moves to next actionable chip (dismissable host)', async () => {
|
|
170
|
-
// Given
|
|
171
|
-
const page = await newE2EPage();
|
|
172
|
-
await setWcsContent(page, `
|
|
173
|
-
<div>
|
|
174
|
-
<wcs-chip id="c1" mode="dismissible" value="c1" label="One"></wcs-chip>
|
|
175
|
-
<wcs-chip id="c2" mode="dismissible" value="c2" label="Two"></wcs-chip>
|
|
176
|
-
</div>
|
|
177
|
-
`);
|
|
178
|
-
const btn = await page.find('#c1>>>button');
|
|
179
|
-
// When
|
|
180
|
-
await btn.click();
|
|
181
|
-
await page.waitForChanges();
|
|
182
|
-
const snapshot = await page.accessibility.snapshot();
|
|
183
|
-
const focused = findFocusedNode(snapshot);
|
|
184
|
-
const c2Button = await page.find('#c2>>>button');
|
|
185
|
-
// Then
|
|
186
|
-
expect(focused.name).toBe(c2Button.getAttribute('aria-label'));
|
|
187
|
-
});
|
|
188
|
-
it('skips disabled chips when moving focus after dismiss', async () => {
|
|
189
|
-
// Given
|
|
190
|
-
const page = await newE2EPage();
|
|
191
|
-
await setWcsContent(page, `
|
|
192
|
-
<div>
|
|
193
|
-
<wcs-chip id="c1" mode="dismissible" value="c1" label="One"></wcs-chip>
|
|
194
|
-
<wcs-chip id="c2" disabled value="c2" label="Two"></wcs-chip>
|
|
195
|
-
<wcs-chip id="c3" value="c3" label="Three"></wcs-chip>
|
|
196
|
-
</div>
|
|
197
|
-
`);
|
|
198
|
-
const btn = await page.find('#c1>>>button');
|
|
199
|
-
// When
|
|
200
|
-
await btn.click();
|
|
201
|
-
await page.waitForChanges();
|
|
202
|
-
const snapshot = await page.accessibility.snapshot();
|
|
203
|
-
const focused = findFocusedNode(snapshot);
|
|
204
|
-
// Then
|
|
205
|
-
expect(focused.name).toBe('Three');
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
//# sourceMappingURL=chip.e2e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chip.e2e.js","sourceRoot":"","sources":["../../../src/components/chip/chip.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\nimport { findFocusedNode, setWcsContent } from '../../utils/tests';\n\ndescribe('Chip component', () => {\n describe('Events', () => {\n it('should emit wcsChipSelectChange with selected=true on click (selectable by default)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n // When\n const chip = await page.find('wcs-chip');\n const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n await chip.click();\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).toHaveReceivedEventTimes(1);\n expect(eventSpy).toHaveReceivedEventDetail({ value: 'chip-id', selected: true });\n });\n\n it('should toggle selection and emit on Space/Enter (selectable)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When - Space selects\n await chip.focus();\n await chip.press('Space');\n await page.waitForChanges();\n // When - Enter toggles back\n await chip.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).toHaveReceivedEventTimes(2);\n // Last emitted detail should be selected=false\n const lastDetail = eventSpy.events[eventSpy.events.length - 1].detail;\n expect(lastDetail).toEqual({ value: 'chip-id', selected: false });\n });\n\n it('should emit wcsChipDismiss when clicking dismiss button (dismissible)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n const dismissBtn = await page.find('wcs-chip>>>button');\n const eventSpy = await chip.spyOnEvent('wcsChipDismiss');\n\n // When\n await dismissBtn.click();\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).toHaveReceivedEventTimes(1);\n expect(eventSpy).toHaveReceivedEventDetail({ value: 'chip-id' });\n // open prop should be false -> attribute removed\n expect(chip.getAttribute('open')).toBe(null);\n });\n });\n\n describe('Keyboard', () => {\n it('Delete/Backspace on dismiss button dismisses the chip', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n const dismissBtn = await page.find('wcs-chip>>>button');\n const eventSpy = await chip.spyOnEvent('wcsChipDismiss');\n\n // When\n await dismissBtn.focus();\n await page.keyboard.press('Delete');\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).toHaveReceivedEvent();\n expect(chip.getAttribute('open')).toBe(null);\n });\n });\n\n describe('Accessibility', () => {\n it('exposes proper ARIA for selectable: role=checkbox, aria-checked toggles, tabindex respects disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n // Then default\n expect(chip.getAttribute('role')).toBe('checkbox');\n expect(chip.getAttribute('aria-checked')).toBe('false');\n expect(chip.getAttribute('tabindex')).toBe('0');\n // When\n await chip.click();\n await page.waitForChanges();\n // Then toggled\n expect(chip.getAttribute('aria-checked')).toBe('true');\n });\n\n it('exposes proper ARIA/disabled for dismissible: button has label and respects disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const btn = await page.find('wcs-chip>>>button');\n // Then\n expect(btn.getAttribute('aria-label')).toBe('Supprimer Chip');\n\n // When disabled\n const chip = await page.find('wcs-chip');\n chip.setProperty('disabled', true);\n await page.waitForChanges();\n // Then\n expect(chip.getAttribute('aria-disabled')).toBe('true');\n expect(btn.getAttribute('disabled')).not.toBe(null);\n });\n });\n\n describe('Disabled state', () => {\n it('does not emit select event when disabled (click and Space)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip disabled value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n const eventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When\n await chip.click();\n await chip.press('Space');\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).not.toHaveReceivedEvent();\n expect(chip.getAttribute('tabindex')).toBe('-1');\n expect(chip.getAttribute('aria-checked')).toBe('false');\n });\n\n it('does not emit dismiss event when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-chip disabled mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n const chip = await page.find('wcs-chip');\n const btn = await page.find('wcs-chip>>>button');\n const eventSpy = await chip.spyOnEvent('wcsChipDismiss');\n\n // When\n await btn.click();\n await page.waitForChanges();\n\n // Then\n expect(eventSpy).not.toHaveReceivedEvent();\n expect(chip.getAttribute('open')).toBe('');\n });\n });\n\n describe('Focus management', () => {\n it('after dismiss, focus moves to next actionable chip (selectable host)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n const btn = await page.find('#c1>>>button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n const snapshot = await page.accessibility.snapshot();\n const focused = findFocusedNode(snapshot);\n\n // Then\n expect(focused.name).toBe('Two');\n });\n\n it('after dismiss, focus moves to next actionable chip (dismissable host)', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" mode=\"dismissible\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n const btn = await page.find('#c1>>>button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n const snapshot = await page.accessibility.snapshot();\n const focused = findFocusedNode(snapshot);\n const c2Button = await page.find('#c2>>>button');\n\n // Then\n expect(focused.name).toBe(c2Button.getAttribute('aria-label'));\n });\n\n it('skips disabled chips when moving focus after dismiss', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" disabled value=\"c2\" label=\"Two\"></wcs-chip>\n <wcs-chip id=\"c3\" value=\"c3\" label=\"Three\"></wcs-chip>\n </div>\n `);\n const btn = await page.find('#c1>>>button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n const snapshot = await page.accessibility.snapshot();\n const focused = findFocusedNode(snapshot);\n\n // Then\n expect(focused.name).toBe('Three');\n });\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"com-nav.e2e.js","sourceRoot":"","sources":["../../../src/components/com-nav/com-nav.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, newE2EPage } from \"@stencil/core/testing\";\nimport {KeyInput} from \"puppeteer\";\nimport { setWcsContent } from \"../../utils/tests\";\n\ndescribe('Com nav', () => {\n describe('Keyboard navigation', () => {\n describe('Mobile menu', () => {\n let page!: E2EPage;\n beforeEach(async () => {\n // Given\n page = await newE2EPage();\n await page.setViewport({\n width: 320,\n height: 480,\n });\n\n await setWcsContent(page, `\n <wcs-com-nav app-name=\"App Test\">\n <wcs-com-nav-submenu label=\"Sous menu\" panel-title=\"Sous Menu\"\n panel-description=\"Nullam id dolor id nibh ultricies vehicula ut id elit. Cras mattis consectetur purus sit amet fermentum. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.\">\n <wcs-com-nav-item>\n <a href=\"#\">Loisirs & Tourisme</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Toutes les lignes</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Services mobiles</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Au quotidien</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Le réseau</a>\n </wcs-com-nav-item>\n </wcs-com-nav-submenu>\n <wcs-com-nav-submenu label=\"Autre sous menu\" panel-title=\"Autre Sous Menu\"\n panel-description=\"Un autre sous menu avec des catégories. Cras mattis consectetur purus sit amet fermentum. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.\">\n <wcs-com-nav-item>\n <a href=\"#\">Le réseau</a>\n </wcs-com-nav-item>\n <wcs-com-nav-category label=\"Une catégorie\">\n <wcs-com-nav-item>\n <a href=\"#\">Services mobiles text plus long</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Au quotidien</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">Le réseau</a>\n </wcs-com-nav-item>\n </wcs-com-nav-category>\n <wcs-com-nav-category label=\"Une catégorie\">\n <wcs-com-nav-item>\n <a href=\"#\">1</a>\n </wcs-com-nav-item>\n <wcs-com-nav-item>\n <a href=\"#\">2</a>\n </wcs-com-nav-item>\n </wcs-com-nav-category>\n </wcs-com-nav-submenu>\n <wcs-com-nav-item id=\"com-nav-item-last-item\">\n <a href=\"https://sncf.com\" target=\"_blank\">Ressource externe</a>\n </wcs-com-nav-item>\n <div slot=\"actions\">\n <wcs-button mode=\"clear\" class=\"wcs-dark\">Connexion</wcs-button>\n </div>\n </wcs-com-nav>\n `);\n })\n\n it.each(['Enter', 'Space'])('should open menu when press %s key on mobile menu icon', async (key: KeyInput) => {\n // Given the content is set in beforeEach method\n\n // When\n const menuIcon = await page.find('wcs-com-nav >>> #mobile-menu-icon');\n await menuIcon.focus();\n await page.keyboard.press(key);\n\n await page.waitForChanges();\n\n // Then\n const menu = await page.find('wcs-com-nav >>> .mobile-overlay');\n expect(menu).toBeDefined();\n expect(menu).toHaveAttribute('data-mobile-open');\n });\n\n it.each(['Enter', 'Space'])('should close menu when it opens and press %s key on mobile menu icon', async (key: KeyInput) => {\n // Given\n // the content is set in beforeEach method\n const menuIcon = await page.find('wcs-com-nav >>> #mobile-menu-icon');\n await menuIcon.focus();\n await page.keyboard.press(key);\n\n // Wait for menu to open\n await page.waitForChanges();\n\n // Close the menu\n await page.keyboard.press(key);\n await page.waitForChanges();\n\n // Then\n const menu = await page.find('wcs-com-nav >>> .mobile-overlay');\n expect(menu).not.toHaveAttribute('data-mobile-open');\n });\n\n it('should be touchable on mobile and open the menu', async () => {\n // Given\n // the content is set in beforeEach method\n const menuIcon = await page.find('wcs-com-nav >>> #mobile-menu-icon');\n await menuIcon.tap();\n\n // Then\n const menu = await page.find('wcs-com-nav >>> .mobile-overlay');\n expect(menu).toBeDefined();\n expect(menu).toHaveAttribute('data-mobile-open');\n });\n\n it('should close menu when it opens and press escape key anywhere', async () => {\n // Given\n // the content is set in beforeEach method\n const menuIcon = await page.find('wcs-com-nav >>> #mobile-menu-icon');\n await menuIcon.focus();\n await page.keyboard.press('Enter');\n\n // When\n // Navigate on menu\n await page.keyboard.press('Tab');\n await page.keyboard.press('Tab');\n await page.keyboard.press('Tab');\n await page.keyboard.press('Escape');\n\n await page.waitForChanges();\n\n // Then\n const menu = await page.find('wcs-com-nav >>> .mobile-overlay');\n expect(menu).not.toHaveAttribute('data-mobile-open');\n });\n\n it('should close the mobile menu when clicking on a wcs-com-nav-item', async () => {\n // Given\n const menuIcon = await page.find('wcs-com-nav >>> #mobile-menu-icon');\n await menuIcon.tap();\n\n // Wait for menu to open\n await page.waitForChanges();\n\n // When\n const navItem = await page.find('#com-nav-item-last-item');\n await navItem.click();\n\n await page.waitForChanges();\n\n // Then\n const menu = await page.find('wcs-com-nav >>> .mobile-overlay');\n expect(menu).not.toHaveAttribute('data-mobile-open');\n });\n });\n });\n});\n"]}
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { newE2EPage } from "@stencil/core/testing";
|
|
2
|
-
import { setWcsContent } from "../../utils/tests";
|
|
3
|
-
describe('counter', () => {
|
|
4
|
-
it('should increment the counter when click on plus button', async () => {
|
|
5
|
-
// Given
|
|
6
|
-
const page = await newE2EPage();
|
|
7
|
-
await setWcsContent(page, `
|
|
8
|
-
<wcs-counter></wcs-counter>
|
|
9
|
-
`);
|
|
10
|
-
const counter = await page.find('wcs-counter');
|
|
11
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
12
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');
|
|
13
|
-
// When
|
|
14
|
-
await incrementButton.click();
|
|
15
|
-
await page.waitForChanges();
|
|
16
|
-
// Then
|
|
17
|
-
expect(changeSpy).toHaveReceivedEventTimes(1);
|
|
18
|
-
expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });
|
|
19
|
-
});
|
|
20
|
-
it('should decrement the counter when click on minus button', async () => {
|
|
21
|
-
// Given
|
|
22
|
-
const page = await newE2EPage();
|
|
23
|
-
await setWcsContent(page, `
|
|
24
|
-
<wcs-counter></wcs-counter>
|
|
25
|
-
`);
|
|
26
|
-
const counter = await page.find('wcs-counter');
|
|
27
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
28
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:first-child');
|
|
29
|
-
// When
|
|
30
|
-
await incrementButton.click();
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
// Then
|
|
33
|
-
expect(changeSpy).toHaveReceivedEventTimes(1);
|
|
34
|
-
expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });
|
|
35
|
-
});
|
|
36
|
-
it('should have 0 as default value', async () => {
|
|
37
|
-
// Given
|
|
38
|
-
const page = await newE2EPage();
|
|
39
|
-
await setWcsContent(page, `
|
|
40
|
-
<wcs-counter></wcs-counter>
|
|
41
|
-
`);
|
|
42
|
-
const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');
|
|
43
|
-
// Then
|
|
44
|
-
expect(currentDisplayedValue).toEqualText('0');
|
|
45
|
-
});
|
|
46
|
-
it('should respect the step attribute', async () => {
|
|
47
|
-
// Given
|
|
48
|
-
const page = await newE2EPage();
|
|
49
|
-
await setWcsContent(page, `
|
|
50
|
-
<wcs-counter step="5"></wcs-counter>
|
|
51
|
-
`);
|
|
52
|
-
const counter = await page.find('wcs-counter');
|
|
53
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
54
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');
|
|
55
|
-
// When
|
|
56
|
-
await incrementButton.click();
|
|
57
|
-
await page.waitForChanges();
|
|
58
|
-
// Then
|
|
59
|
-
expect(changeSpy).toHaveReceivedEventTimes(1);
|
|
60
|
-
expect(changeSpy).toHaveReceivedEventDetail({ value: 5 });
|
|
61
|
-
});
|
|
62
|
-
it('should respect the min attribute', async () => {
|
|
63
|
-
// Given
|
|
64
|
-
const page = await newE2EPage();
|
|
65
|
-
await setWcsContent(page, `
|
|
66
|
-
<wcs-counter min="-1" value="0"></wcs-counter>
|
|
67
|
-
`);
|
|
68
|
-
const counter = await page.find('wcs-counter');
|
|
69
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
70
|
-
const decrementButton = await page.find('wcs-counter >>> wcs-button:first-child');
|
|
71
|
-
// When
|
|
72
|
-
await decrementButton.click();
|
|
73
|
-
await decrementButton.click();
|
|
74
|
-
await page.waitForChanges();
|
|
75
|
-
// Then
|
|
76
|
-
expect(changeSpy).toHaveReceivedEventTimes(1);
|
|
77
|
-
expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });
|
|
78
|
-
});
|
|
79
|
-
it('should use the min attribute as default value when value is not set', async () => {
|
|
80
|
-
// Given
|
|
81
|
-
const page = await newE2EPage();
|
|
82
|
-
await setWcsContent(page, `
|
|
83
|
-
<wcs-counter min="5"></wcs-counter>
|
|
84
|
-
`);
|
|
85
|
-
const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');
|
|
86
|
-
// Then
|
|
87
|
-
expect(currentDisplayedValue).toEqualText('5');
|
|
88
|
-
});
|
|
89
|
-
it('should respect the max attribute', async () => {
|
|
90
|
-
// Given
|
|
91
|
-
const page = await newE2EPage();
|
|
92
|
-
await setWcsContent(page, `
|
|
93
|
-
<wcs-counter max="1"></wcs-counter>
|
|
94
|
-
`);
|
|
95
|
-
const counter = await page.find('wcs-counter');
|
|
96
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
97
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');
|
|
98
|
-
// When
|
|
99
|
-
await incrementButton.click();
|
|
100
|
-
await incrementButton.click();
|
|
101
|
-
await page.waitForChanges();
|
|
102
|
-
// Then
|
|
103
|
-
expect(changeSpy).toHaveReceivedEventTimes(1);
|
|
104
|
-
expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });
|
|
105
|
-
});
|
|
106
|
-
it('should respect the value attribute', async () => {
|
|
107
|
-
// Given
|
|
108
|
-
const page = await newE2EPage();
|
|
109
|
-
await setWcsContent(page, `
|
|
110
|
-
<wcs-counter value="5"></wcs-counter>
|
|
111
|
-
`);
|
|
112
|
-
const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');
|
|
113
|
-
// Then
|
|
114
|
-
expect(currentDisplayedValue).toEqualText('5');
|
|
115
|
-
});
|
|
116
|
-
it('should use the min value as default when min is greater than 0', async () => {
|
|
117
|
-
// Given
|
|
118
|
-
const page = await newE2EPage();
|
|
119
|
-
await setWcsContent(page, `
|
|
120
|
-
<wcs-counter min="5"></wcs-counter>
|
|
121
|
-
`);
|
|
122
|
-
const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');
|
|
123
|
-
// Then
|
|
124
|
-
expect(currentDisplayedValue).toEqualText('5');
|
|
125
|
-
});
|
|
126
|
-
it('should use the min value as default when min is greater than value', async () => {
|
|
127
|
-
// Given
|
|
128
|
-
const page = await newE2EPage();
|
|
129
|
-
await setWcsContent(page, `
|
|
130
|
-
<wcs-counter min="5" value="3"></wcs-counter>
|
|
131
|
-
`);
|
|
132
|
-
const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');
|
|
133
|
-
// Then
|
|
134
|
-
expect(currentDisplayedValue).toEqualText('5');
|
|
135
|
-
});
|
|
136
|
-
it('should fire wcsBlur event when the counter loose focus', async () => {
|
|
137
|
-
const page = await newE2EPage();
|
|
138
|
-
await setWcsContent(page, `
|
|
139
|
-
<button id="first">first</button>
|
|
140
|
-
<wcs-counter></wcs-counter>
|
|
141
|
-
<button id="last">last</button>
|
|
142
|
-
`);
|
|
143
|
-
const counter = await page.find('wcs-counter');
|
|
144
|
-
const blurSpy = await counter.spyOnEvent('wcsBlur');
|
|
145
|
-
const firstButton = await page.find('#first');
|
|
146
|
-
// When
|
|
147
|
-
await firstButton.click();
|
|
148
|
-
await page.keyboard.press('Tab');
|
|
149
|
-
await page.keyboard.press('Tab');
|
|
150
|
-
await page.waitForChanges();
|
|
151
|
-
// Then
|
|
152
|
-
expect(blurSpy).toHaveReceivedEventTimes(1);
|
|
153
|
-
});
|
|
154
|
-
it('should fire wcsBlur event when the user click on decrement button and leave', async () => {
|
|
155
|
-
const page = await newE2EPage();
|
|
156
|
-
await setWcsContent(page, `
|
|
157
|
-
<wcs-counter></wcs-counter>
|
|
158
|
-
<button>last</button>
|
|
159
|
-
`);
|
|
160
|
-
const counter = await page.find('wcs-counter');
|
|
161
|
-
const button = await page.find('button');
|
|
162
|
-
const blurSpy = await counter.spyOnEvent('wcsBlur');
|
|
163
|
-
const decrementButton = await page.find('wcs-counter >>> wcs-button:first-child');
|
|
164
|
-
// When
|
|
165
|
-
await decrementButton.click();
|
|
166
|
-
await button.click();
|
|
167
|
-
await page.waitForChanges();
|
|
168
|
-
// Then
|
|
169
|
-
expect(blurSpy).toHaveReceivedEventTimes(1);
|
|
170
|
-
});
|
|
171
|
-
it('should fire wcsBlur event when the user click on increment button and leave', async () => {
|
|
172
|
-
const page = await newE2EPage();
|
|
173
|
-
await setWcsContent(page, `
|
|
174
|
-
<wcs-counter></wcs-counter>
|
|
175
|
-
<button>last</button>
|
|
176
|
-
`);
|
|
177
|
-
const counter = await page.find('wcs-counter');
|
|
178
|
-
const button = await page.find('button');
|
|
179
|
-
const blurSpy = await counter.spyOnEvent('wcsBlur');
|
|
180
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');
|
|
181
|
-
// When
|
|
182
|
-
await incrementButton.click();
|
|
183
|
-
await button.click();
|
|
184
|
-
await page.waitForChanges();
|
|
185
|
-
// Then
|
|
186
|
-
expect(blurSpy).toHaveReceivedEventTimes(1);
|
|
187
|
-
});
|
|
188
|
-
it('should not be interactive when disabled', async () => {
|
|
189
|
-
// Given
|
|
190
|
-
const page = await newE2EPage();
|
|
191
|
-
await setWcsContent(page, `
|
|
192
|
-
<wcs-counter disabled="true"></wcs-counter>
|
|
193
|
-
`);
|
|
194
|
-
const counter = await page.find('wcs-counter');
|
|
195
|
-
const changeSpy = await counter.spyOnEvent('wcsChange');
|
|
196
|
-
const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');
|
|
197
|
-
// When
|
|
198
|
-
await incrementButton.click();
|
|
199
|
-
await page.waitForChanges();
|
|
200
|
-
// Then
|
|
201
|
-
expect(changeSpy).not.toHaveReceivedEvent();
|
|
202
|
-
expect(await counter.getProperty('value')).toBe(0);
|
|
203
|
-
expect(await incrementButton.getProperty('disabled')).toBe(true);
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
//# sourceMappingURL=counter.e2e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"counter.e2e.js","sourceRoot":"","sources":["../../../src/components/counter/counter.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\nimport { setWcsContent } from \"../../utils/tests\";\n\n\ndescribe('counter', () => {\n it('should increment the counter when click on plus button', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');\n // When\n await incrementButton.click();\n await page.waitForChanges();\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({value: 1});\n });\n\n it('should decrement the counter when click on minus button', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:first-child');\n // When\n await incrementButton.click();\n await page.waitForChanges();\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({value: -1});\n });\n\n it('should have 0 as default value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');\n\n // Then\n expect(currentDisplayedValue).toEqualText('0');\n });\n it('should respect the step attribute', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter step=\"5\"></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');\n // When\n await incrementButton.click();\n await page.waitForChanges();\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({value: 5});\n });\n it('should respect the min attribute', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter min=\"-1\" value=\"0\"></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const decrementButton = await page.find('wcs-counter >>> wcs-button:first-child');\n // When\n await decrementButton.click();\n await decrementButton.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({value: -1});\n });\n it('should use the min attribute as default value when value is not set', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter min=\"5\"></wcs-counter>\n `);\n const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');\n // Then\n expect(currentDisplayedValue).toEqualText('5');\n });\n it('should respect the max attribute', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter max=\"1\"></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');\n // When\n await incrementButton.click();\n await incrementButton.click();\n await page.waitForChanges();\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({value: 1});\n });\n it('should respect the value attribute', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter value=\"5\"></wcs-counter>\n `);\n const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');\n // Then\n expect(currentDisplayedValue).toEqualText('5');\n });\n it('should use the min value as default when min is greater than 0', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter min=\"5\"></wcs-counter>\n `);\n const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');\n // Then\n expect(currentDisplayedValue).toEqualText('5');\n });\n it('should use the min value as default when min is greater than value', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter min=\"5\" value=\"3\"></wcs-counter>\n `);\n const currentDisplayedValue = await page.find('wcs-counter >>> .current-value');\n // Then\n expect(currentDisplayedValue).toEqualText('5');\n });\n it('should fire wcsBlur event when the counter loose focus', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <button id=\"first\">first</button>\n <wcs-counter></wcs-counter>\n <button id=\"last\">last</button>\n `);\n const counter = await page.find('wcs-counter');\n const blurSpy = await counter.spyOnEvent('wcsBlur');\n const firstButton = await page.find('#first');\n // When\n await firstButton.click();\n await page.keyboard.press('Tab');\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n it('should fire wcsBlur event when the user click on decrement button and leave', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n <button>last</button>\n `);\n const counter = await page.find('wcs-counter');\n const button = await page.find('button');\n const blurSpy = await counter.spyOnEvent('wcsBlur');\n const decrementButton = await page.find('wcs-counter >>> wcs-button:first-child');\n // When\n await decrementButton.click();\n await button.click();\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n it('should fire wcsBlur event when the user click on increment button and leave', async () => {\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n <button>last</button>\n `);\n const counter = await page.find('wcs-counter');\n const button = await page.find('button');\n const blurSpy = await counter.spyOnEvent('wcsBlur');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');\n // When\n await incrementButton.click();\n await button.click();\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n it('should not be interactive when disabled', async () => {\n // Given\n const page = await newE2EPage();\n await setWcsContent(page, `\n <wcs-counter disabled=\"true\"></wcs-counter>\n `);\n const counter = await page.find('wcs-counter');\n const changeSpy = await counter.spyOnEvent('wcsChange');\n const incrementButton = await page.find('wcs-counter >>> wcs-button:last-child');\n\n // When\n await incrementButton.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).not.toHaveReceivedEvent();\n expect(await counter.getProperty('value')).toBe(0);\n expect(await incrementButton.getProperty('disabled')).toBe(true);\n });\n});\n"]}
|