semmet-angular 0.25.0 → 0.27.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 +1 -1
- package/src/accordion/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +40 -0
- package/src/accordion/index.js +1 -1
- package/src/accordion/index.js.map +1 -1
- package/src/accordion/index.ts +1 -1
- package/src/alert/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +22 -0
- package/src/alert/index.js +1 -1
- package/src/alert/index.js.map +1 -1
- package/src/alert/index.ts +1 -1
- package/src/alert-dialog/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +29 -0
- package/src/alert-dialog/index.js +1 -1
- package/src/alert-dialog/index.js.map +1 -1
- package/src/alert-dialog/index.ts +1 -1
- package/src/badge/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +13 -0
- package/src/badge/index.js +1 -1
- package/src/badge/index.js.map +1 -1
- package/src/badge/index.ts +1 -1
- package/src/breadcrumb/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +13 -0
- package/src/breadcrumb/index.js +1 -1
- package/src/breadcrumb/index.js.map +1 -1
- package/src/breadcrumb/index.ts +1 -1
- package/src/button/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +25 -0
- package/src/button/index.js +1 -1
- package/src/button/index.js.map +1 -1
- package/src/button/index.ts +1 -1
- package/src/button-group/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +29 -0
- package/src/button-group/index.js +1 -1
- package/src/button-group/index.js.map +1 -1
- package/src/button-group/index.ts +1 -1
- package/src/card/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +16 -0
- package/src/card/index.js +1 -1
- package/src/card/index.js.map +1 -1
- package/src/card/index.ts +1 -1
- package/src/carousel/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +30 -0
- package/src/carousel/index.js +1 -1
- package/src/carousel/index.js.map +1 -1
- package/src/carousel/index.ts +1 -1
- package/src/checkbox/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +23 -0
- package/src/checkbox/index.js +1 -1
- package/src/checkbox/index.js.map +1 -1
- package/src/checkbox/index.ts +1 -1
- package/src/close-button/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +19 -0
- package/src/close-button/index.js +1 -1
- package/src/close-button/index.js.map +1 -1
- package/src/close-button/index.ts +1 -1
- package/src/combobox/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +27 -0
- package/src/combobox/index.js +1 -1
- package/src/combobox/index.js.map +1 -1
- package/src/combobox/index.ts +1 -1
- package/src/dialog/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +29 -0
- package/src/dialog/index.js +1 -1
- package/src/dialog/index.js.map +1 -1
- package/src/dialog/index.ts +1 -1
- package/src/disclosure/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +28 -0
- package/src/disclosure/index.js +1 -1
- package/src/disclosure/index.js.map +1 -1
- package/src/disclosure/index.ts +1 -1
- package/src/form/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +21 -0
- package/src/form/index.js +1 -1
- package/src/form/index.js.map +1 -1
- package/src/form/index.ts +1 -1
- package/src/input/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +22 -0
- package/src/input/index.js +1 -1
- package/src/input/index.js.map +1 -1
- package/src/input/index.ts +1 -1
- package/src/input-group/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +16 -0
- package/src/input-group/index.js +1 -1
- package/src/input-group/index.js.map +1 -1
- package/src/input-group/index.ts +1 -1
- package/src/landmarks/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +15 -0
- package/src/landmarks/index.js +1 -1
- package/src/landmarks/index.js.map +1 -1
- package/src/landmarks/index.ts +1 -1
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +26 -0
- package/src/list-group/index.js +1 -1
- package/src/list-group/index.js.map +1 -1
- package/src/list-group/index.ts +1 -1
- package/src/listbox/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +31 -0
- package/src/listbox/index.js +1 -1
- package/src/listbox/index.js.map +1 -1
- package/src/listbox/index.ts +1 -1
- package/src/menu-button/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +30 -0
- package/src/menu-button/index.js +1 -1
- package/src/menu-button/index.js.map +1 -1
- package/src/menu-button/index.ts +1 -1
- package/src/meter/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +16 -0
- package/src/meter/index.js +1 -1
- package/src/meter/index.js.map +1 -1
- package/src/meter/index.ts +1 -1
- package/src/navbar/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +27 -0
- package/src/navbar/index.js +1 -1
- package/src/navbar/index.js.map +1 -1
- package/src/navbar/index.ts +1 -1
- package/src/navigation-menu/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +28 -0
- package/src/navigation-menu/index.js +1 -1
- package/src/navigation-menu/index.js.map +1 -1
- package/src/navigation-menu/index.ts +1 -1
- package/src/ng-add/index.js +22 -0
- package/src/ng-add/index.js.map +1 -1
- package/src/ng-add/index.ts +28 -0
- package/src/offcanvas/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +28 -0
- package/src/offcanvas/index.js +1 -1
- package/src/offcanvas/index.js.map +1 -1
- package/src/offcanvas/index.ts +1 -1
- package/src/pagination/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +22 -0
- package/src/pagination/index.js +1 -1
- package/src/pagination/index.js.map +1 -1
- package/src/pagination/index.ts +1 -1
- package/src/popover/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +28 -0
- package/src/popover/index.js +1 -1
- package/src/popover/index.js.map +1 -1
- package/src/popover/index.ts +1 -1
- package/src/progress-bar/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +16 -0
- package/src/progress-bar/index.js +1 -1
- package/src/progress-bar/index.js.map +1 -1
- package/src/progress-bar/index.ts +1 -1
- package/src/radio-group/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +30 -0
- package/src/radio-group/index.js +1 -1
- package/src/radio-group/index.js.map +1 -1
- package/src/radio-group/index.ts +1 -1
- package/src/select/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +26 -0
- package/src/select/index.js +1 -1
- package/src/select/index.js.map +1 -1
- package/src/select/index.ts +1 -1
- package/src/skeleton/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +16 -0
- package/src/skeleton/index.js +1 -1
- package/src/skeleton/index.js.map +1 -1
- package/src/skeleton/index.ts +1 -1
- package/src/skip-link/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +13 -0
- package/src/skip-link/index.js +1 -1
- package/src/skip-link/index.js.map +1 -1
- package/src/skip-link/index.ts +1 -1
- package/src/slider/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +23 -0
- package/src/slider/index.js +1 -1
- package/src/slider/index.js.map +1 -1
- package/src/slider/index.ts +1 -1
- package/src/spinbutton/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +23 -0
- package/src/spinbutton/index.js +1 -1
- package/src/spinbutton/index.js.map +1 -1
- package/src/spinbutton/index.ts +1 -1
- package/src/spinner/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +17 -0
- package/src/spinner/index.js +1 -1
- package/src/spinner/index.js.map +1 -1
- package/src/spinner/index.ts +1 -1
- package/src/switch/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +20 -0
- package/src/switch/index.js +1 -1
- package/src/switch/index.js.map +1 -1
- package/src/switch/index.ts +1 -1
- package/src/table/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +15 -0
- package/src/table/index.js +1 -1
- package/src/table/index.js.map +1 -1
- package/src/table/index.ts +1 -1
- package/src/tabs/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +34 -0
- package/src/tabs/index.js +1 -1
- package/src/tabs/index.js.map +1 -1
- package/src/tabs/index.ts +1 -1
- package/src/textarea/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +22 -0
- package/src/textarea/index.js +1 -1
- package/src/textarea/index.js.map +1 -1
- package/src/textarea/index.ts +1 -1
- package/src/toast/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +29 -0
- package/src/toast/index.js +1 -1
- package/src/toast/index.js.map +1 -1
- package/src/toast/index.ts +1 -1
- package/src/toolbar/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +30 -0
- package/src/toolbar/index.js +1 -1
- package/src/toolbar/index.js.map +1 -1
- package/src/toolbar/index.ts +1 -1
- package/src/tooltip/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +25 -0
- package/src/tooltip/index.js +1 -1
- package/src/tooltip/index.js.map +1 -1
- package/src/tooltip/index.ts +1 -1
- package/src/tree-view/files/__name@dasherize__/__name@dasherize__.e2e-spec.ts.template +28 -0
- package/src/tree-view/index.js +1 -1
- package/src/tree-view/index.js.map +1 -1
- package/src/tree-view/index.ts +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('toggles mounted disclosure content through its trigger', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
await expect(component).toBeVisible();
|
|
14
|
+
|
|
15
|
+
const trigger = component.getByRole('button').first();
|
|
16
|
+
await expect(trigger).toHaveAttribute('aria-controls', /.+/);
|
|
17
|
+
|
|
18
|
+
const panelId = await trigger.getAttribute('aria-controls');
|
|
19
|
+
const panel = page.locator(`#${panelId}`);
|
|
20
|
+
|
|
21
|
+
await trigger.click();
|
|
22
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'true');
|
|
23
|
+
await expect(panel).toBeVisible();
|
|
24
|
+
|
|
25
|
+
await trigger.click();
|
|
26
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
27
|
+
});
|
|
28
|
+
});
|
package/src/disclosure/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.disclosure = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.disclosure = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.disclosure = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/disclosure/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const disclosure = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const disclosure = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('validates mounted form fields and submits valid data', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
const component = page.locator('<%= selector %>').first();
|
|
7
|
+
test.skip((await component.count()) === 0, 'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.');
|
|
8
|
+
|
|
9
|
+
const form = component.locator('form').first();
|
|
10
|
+
await expect(form).toHaveAttribute('aria-labelledby', /.+/);
|
|
11
|
+
|
|
12
|
+
await component.getByRole('button', { name: /submit/i }).click();
|
|
13
|
+
await expect(component.getByRole('alert').first()).toBeVisible();
|
|
14
|
+
|
|
15
|
+
await component.getByLabel(/name/i).fill('Danilo');
|
|
16
|
+
await component.getByLabel(/email/i).fill('danilo@example.com');
|
|
17
|
+
await component.getByLabel(/message/i).fill('Accessible delivery kit');
|
|
18
|
+
await component.getByRole('button', { name: /submit/i }).click();
|
|
19
|
+
await expect(component.getByRole('status')).toBeVisible();
|
|
20
|
+
});
|
|
21
|
+
});
|
package/src/form/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.form = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.form = (0, generate_component_1.createAriaComponentSchematic)();
|
|
5
|
+
exports.form = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/form/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,IAAI,GAAG,IAAA,iDAA4B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,IAAI,GAAG,IAAA,iDAA4B,EAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/form/index.ts
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('accepts typed input through the mounted native control', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const input = component.locator('input').first();
|
|
14
|
+
await expect(input).toBeVisible();
|
|
15
|
+
|
|
16
|
+
const id = await input.getAttribute('id');
|
|
17
|
+
await expect(component.locator(`label[for="${id}"]`)).toBeVisible();
|
|
18
|
+
|
|
19
|
+
await input.fill('semmet@example.com');
|
|
20
|
+
await expect(input).toHaveValue('semmet@example.com');
|
|
21
|
+
});
|
|
22
|
+
});
|
package/src/input/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.input = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.input = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.input = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/input/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,KAAK,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,KAAK,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/input/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const input = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const input = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('accepts input through mounted input group control', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
const component = page.locator('<%= selector %>').first();
|
|
7
|
+
test.skip((await component.count()) === 0, 'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.');
|
|
8
|
+
|
|
9
|
+
const input = component.locator('input').first();
|
|
10
|
+
await expect(input).toBeVisible();
|
|
11
|
+
const id = await input.getAttribute('id');
|
|
12
|
+
await expect(component.locator(`label[for="${id}"]`)).toBeVisible();
|
|
13
|
+
await input.fill('semmet.dev');
|
|
14
|
+
await expect(input).toHaveValue('semmet.dev');
|
|
15
|
+
});
|
|
16
|
+
});
|
package/src/input-group/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.inputGroup = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.inputGroup = (0, generate_component_1.createAriaComponentSchematic)();
|
|
5
|
+
exports.inputGroup = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,EAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/input-group/index.ts
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('renders mounted page landmark regions', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
const component = page.locator('<%= selector %>').first();
|
|
7
|
+
test.skip((await component.count()) === 0, 'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.');
|
|
8
|
+
|
|
9
|
+
await expect(component.locator('header')).toBeVisible();
|
|
10
|
+
await expect(component.getByRole('navigation', { name: /main/i })).toBeVisible();
|
|
11
|
+
await expect(component.locator('main')).toBeVisible();
|
|
12
|
+
await expect(component.locator('aside[aria-label]')).toBeVisible();
|
|
13
|
+
await expect(component.locator('footer')).toBeVisible();
|
|
14
|
+
});
|
|
15
|
+
});
|
package/src/landmarks/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.landmarks = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.landmarks = (0, generate_component_1.createAriaComponentSchematic)();
|
|
5
|
+
exports.landmarks = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,SAAS,GAAG,IAAA,iDAA4B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,SAAS,GAAG,IAAA,iDAA4B,EAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/landmarks/index.ts
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('updates mounted list group active action', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const list = component.locator('ul').first();
|
|
14
|
+
const actions = component.locator('.semmet-list-group__action');
|
|
15
|
+
test.skip(
|
|
16
|
+
(await actions.count()) < 2,
|
|
17
|
+
'Mount at least two list group actions to enable this generated list-group e2e test.'
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
await expect(list).toHaveAttribute('aria-label', /.+/);
|
|
21
|
+
await expect(actions.first()).toHaveAttribute('aria-current', /page|true/);
|
|
22
|
+
|
|
23
|
+
await actions.nth(1).click();
|
|
24
|
+
await expect(actions.nth(1)).toHaveAttribute('aria-current', /page|true/);
|
|
25
|
+
});
|
|
26
|
+
});
|
package/src/list-group/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.listGroup = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.listGroup = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.listGroup = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,SAAS,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,SAAS,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/list-group/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const listGroup = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const listGroup = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('updates mounted listbox selection with click and keyboard', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const listbox = component.getByRole('listbox').first();
|
|
14
|
+
const options = component.getByRole('option');
|
|
15
|
+
test.skip(
|
|
16
|
+
(await options.count()) < 2,
|
|
17
|
+
'Mount at least two listbox options to enable the generated listbox interaction e2e test.'
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const first = options.nth(0);
|
|
21
|
+
const second = options.nth(1);
|
|
22
|
+
|
|
23
|
+
await expect(first).toHaveAttribute('aria-selected', 'true');
|
|
24
|
+
await second.click();
|
|
25
|
+
await expect(second).toHaveAttribute('aria-selected', 'true');
|
|
26
|
+
await expect(listbox).toHaveAttribute('aria-activedescendant', await second.getAttribute('id') ?? '');
|
|
27
|
+
|
|
28
|
+
await listbox.press('Home');
|
|
29
|
+
await expect(first).toHaveAttribute('aria-selected', 'true');
|
|
30
|
+
});
|
|
31
|
+
});
|
package/src/listbox/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.listbox = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.listbox = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.listbox = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/listbox/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,OAAO,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,OAAO,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/listbox/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const listbox = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const listbox = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('opens mounted menu button and closes it with Escape', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const button = component.getByRole('button').first();
|
|
14
|
+
const menu = component.getByRole('menu').first();
|
|
15
|
+
|
|
16
|
+
await expect(button).toHaveAttribute('aria-haspopup', 'true');
|
|
17
|
+
await expect(button).toHaveAttribute('aria-expanded', 'false');
|
|
18
|
+
await expect(menu).toBeHidden();
|
|
19
|
+
|
|
20
|
+
await button.click();
|
|
21
|
+
await expect(button).toHaveAttribute('aria-expanded', 'true');
|
|
22
|
+
await expect(menu).toBeVisible();
|
|
23
|
+
|
|
24
|
+
const firstItem = component.getByRole('menuitem').first();
|
|
25
|
+
await firstItem.press('Escape');
|
|
26
|
+
await expect(button).toHaveAttribute('aria-expanded', 'false');
|
|
27
|
+
await expect(menu).toBeHidden();
|
|
28
|
+
await expect(button).toBeFocused();
|
|
29
|
+
});
|
|
30
|
+
});
|
package/src/menu-button/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.menuButton = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.menuButton = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.menuButton = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,UAAU,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/menu-button/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const menuButton = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const menuButton = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('renders mounted meter with native bounds and label', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
const component = page.locator('<%= selector %>').first();
|
|
7
|
+
test.skip((await component.count()) === 0, 'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.');
|
|
8
|
+
|
|
9
|
+
const meter = component.locator('meter').first();
|
|
10
|
+
await expect(meter).toBeVisible();
|
|
11
|
+
const id = await meter.getAttribute('id');
|
|
12
|
+
await expect(component.locator(`label[for="${id}"]`)).toBeVisible();
|
|
13
|
+
await expect(meter).toHaveAttribute('min', '0');
|
|
14
|
+
await expect(meter).toHaveAttribute('max', '100');
|
|
15
|
+
});
|
|
16
|
+
});
|
package/src/meter/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.meter = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.meter = (0, generate_component_1.createAriaComponentSchematic)();
|
|
5
|
+
exports.meter = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/meter/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,KAAK,GAAG,IAAA,iDAA4B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,KAAK,GAAG,IAAA,iDAA4B,EAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/meter/index.ts
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('toggles mounted responsive navigation menu', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const nav = component.getByRole('navigation').first();
|
|
14
|
+
const toggle = component.locator('.semmet-navbar__toggle').first();
|
|
15
|
+
|
|
16
|
+
await expect(nav).toBeVisible();
|
|
17
|
+
await expect(toggle).toHaveAttribute('aria-expanded', 'false');
|
|
18
|
+
|
|
19
|
+
await toggle.click();
|
|
20
|
+
await expect(toggle).toHaveAttribute('aria-expanded', 'true');
|
|
21
|
+
|
|
22
|
+
const current = component.locator('[aria-current="page"]').first();
|
|
23
|
+
if ((await current.count()) > 0) {
|
|
24
|
+
await expect(current).toBeVisible();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
package/src/navbar/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.navbar = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.navbar = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.navbar = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/navbar/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,MAAM,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,MAAM,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
package/src/navbar/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const navbar = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const navbar = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('toggles mounted disclosure navigation submenu', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const nav = component.getByRole('navigation').first();
|
|
14
|
+
const trigger = component.getByRole('button').first();
|
|
15
|
+
|
|
16
|
+
await expect(nav).toHaveAttribute('aria-label', /.+/);
|
|
17
|
+
await expect(component.locator('[role="menu"]')).toHaveCount(0);
|
|
18
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
19
|
+
|
|
20
|
+
const submenuId = await trigger.getAttribute('aria-controls');
|
|
21
|
+
const submenu = component.locator(`#${submenuId}`);
|
|
22
|
+
await expect(submenu).toBeHidden();
|
|
23
|
+
|
|
24
|
+
await trigger.click();
|
|
25
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'true');
|
|
26
|
+
await expect(submenu).toBeVisible();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.navigationMenu = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.navigationMenu = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.navigationMenu = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,cAAc,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oEAA2E;AAE9D,QAAA,cAAc,GAAG,IAAA,iDAA4B,EAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createAriaComponentSchematic } from '../utils/generate-component';
|
|
2
2
|
|
|
3
|
-
export const navigationMenu = createAriaComponentSchematic({ includeSharedUnitTest: false });
|
|
3
|
+
export const navigationMenu = createAriaComponentSchematic({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
package/src/ng-add/index.js
CHANGED
|
@@ -10,6 +10,7 @@ function ngAdd(options) {
|
|
|
10
10
|
return (0, schematics_1.chain)([
|
|
11
11
|
options.skipE2e ? skipRule : addPlaywrightDependency,
|
|
12
12
|
options.skipE2e ? skipRule : addPackageScripts,
|
|
13
|
+
addDeliveryVerificationScript,
|
|
13
14
|
options.skipE2e ? skipRule : addPlaywrightConfig,
|
|
14
15
|
options.skipE2e ? skipRule : installPackages,
|
|
15
16
|
]);
|
|
@@ -35,6 +36,27 @@ function addPackageScripts(tree) {
|
|
|
35
36
|
};
|
|
36
37
|
writeJson(tree, '/package.json', packageJson);
|
|
37
38
|
}
|
|
39
|
+
function addDeliveryVerificationScript(tree) {
|
|
40
|
+
const packageJson = readJson(tree, '/package.json');
|
|
41
|
+
const scripts = packageJson.scripts ?? {};
|
|
42
|
+
if (scripts.verify) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const verifyCommands = [
|
|
46
|
+
scripts.test ? 'npm test -- --watch=false' : undefined,
|
|
47
|
+
scripts.e2e ? 'npm run e2e' : undefined,
|
|
48
|
+
scripts.build ? 'npm run build' : undefined,
|
|
49
|
+
scripts.lint ? 'npm run lint' : undefined,
|
|
50
|
+
].filter((command) => Boolean(command));
|
|
51
|
+
if (verifyCommands.length === 0) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
packageJson.scripts = {
|
|
55
|
+
...scripts,
|
|
56
|
+
verify: verifyCommands.join(' && '),
|
|
57
|
+
};
|
|
58
|
+
writeJson(tree, '/package.json', packageJson);
|
|
59
|
+
}
|
|
38
60
|
function addPlaywrightConfig(tree) {
|
|
39
61
|
if (tree.exists('/playwright.config.ts')) {
|
|
40
62
|
return;
|
package/src/ng-add/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
package/src/ng-add/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ export function ngAdd(options: Schema): Rule {
|
|
|
11
11
|
return chain([
|
|
12
12
|
options.skipE2e ? skipRule : addPlaywrightDependency,
|
|
13
13
|
options.skipE2e ? skipRule : addPackageScripts,
|
|
14
|
+
addDeliveryVerificationScript,
|
|
14
15
|
options.skipE2e ? skipRule : addPlaywrightConfig,
|
|
15
16
|
options.skipE2e ? skipRule : installPackages,
|
|
16
17
|
]);
|
|
@@ -43,6 +44,33 @@ function addPackageScripts(tree: Tree): void {
|
|
|
43
44
|
writeJson(tree, '/package.json', packageJson);
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
function addDeliveryVerificationScript(tree: Tree): void {
|
|
48
|
+
const packageJson = readJson(tree, '/package.json');
|
|
49
|
+
const scripts = packageJson.scripts ?? {};
|
|
50
|
+
|
|
51
|
+
if (scripts.verify) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const verifyCommands = [
|
|
56
|
+
scripts.test ? 'npm test -- --watch=false' : undefined,
|
|
57
|
+
scripts.e2e ? 'npm run e2e' : undefined,
|
|
58
|
+
scripts.build ? 'npm run build' : undefined,
|
|
59
|
+
scripts.lint ? 'npm run lint' : undefined,
|
|
60
|
+
].filter((command): command is string => Boolean(command));
|
|
61
|
+
|
|
62
|
+
if (verifyCommands.length === 0) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
packageJson.scripts = {
|
|
67
|
+
...scripts,
|
|
68
|
+
verify: verifyCommands.join(' && '),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
writeJson(tree, '/package.json', packageJson);
|
|
72
|
+
}
|
|
73
|
+
|
|
46
74
|
function addPlaywrightConfig(tree: Tree): void {
|
|
47
75
|
if (tree.exists('/playwright.config.ts')) {
|
|
48
76
|
return;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.describe('<%= classify(name) %>', () => {
|
|
4
|
+
test('opens mounted offcanvas as modal dialog and closes it with Escape', async ({ page }) => {
|
|
5
|
+
await page.goto('/');
|
|
6
|
+
|
|
7
|
+
const component = page.locator('<%= selector %>').first();
|
|
8
|
+
test.skip(
|
|
9
|
+
(await component.count()) === 0,
|
|
10
|
+
'Mount <<%= selector %> /> in a route or host component to enable this generated e2e test.'
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
const trigger = component.locator('.semmet-offcanvas__trigger').first();
|
|
14
|
+
await expect(trigger).toBeVisible();
|
|
15
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
16
|
+
|
|
17
|
+
await trigger.click();
|
|
18
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'true');
|
|
19
|
+
|
|
20
|
+
const panel = component.getByRole('dialog').first();
|
|
21
|
+
await expect(panel).toBeVisible();
|
|
22
|
+
await expect(panel).toHaveAttribute('aria-modal', 'true');
|
|
23
|
+
|
|
24
|
+
await panel.press('Escape');
|
|
25
|
+
await expect(trigger).toHaveAttribute('aria-expanded', 'false');
|
|
26
|
+
await expect(panel).toBeHidden();
|
|
27
|
+
});
|
|
28
|
+
});
|
package/src/offcanvas/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.offcanvas = void 0;
|
|
4
4
|
const generate_component_1 = require("../utils/generate-component");
|
|
5
|
-
exports.offcanvas = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false });
|
|
5
|
+
exports.offcanvas = (0, generate_component_1.createAriaComponentSchematic)({ includeSharedUnitTest: false, includeSharedE2eTest: false });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|