@ionic/core 8.1.2-nightly.20240510 → 8.1.2-nightly.20240513
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +4 -3
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +3 -1
- package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +1 -1
- package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
- package/dist/collection/components/loading/test/basic/loading.e2e.js +1 -1
- package/dist/collection/components/menu/test/basic/menu.e2e.js +1 -1
- package/dist/collection/components/modal/test/trigger/modal.e2e.js +1 -1
- package/dist/collection/components/nav/test/basic/nav.e2e.js +5 -5
- package/dist/collection/components/nav/test/nested/nav.e2e.js +6 -6
- package/dist/collection/components/nav/test/routing/nav.e2e.js +7 -7
- package/dist/collection/components/picker/test/basic/picker.e2e.js +4 -2
- package/dist/collection/components/picker/test/keyboard-entry/picker.e2e.js +4 -2
- package/dist/collection/components/popover/test/trigger/popover.e2e.js +1 -1
- package/dist/collection/components/select/test/basic/select.e2e.js +1 -1
- package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
- package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +2 -2
- package/dist/docs.json +1 -1
- package/package.json +1 -1
|
@@ -5,10 +5,11 @@ import { expect } from "@playwright/test";
|
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
6
|
configs().forEach(({ config, title }) => {
|
|
7
7
|
test.describe(title('accordion: a11y'), () => {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// TODO(ROU-8157): remove skip once the keyboard navigation is working again
|
|
9
|
+
test.skip('accordions should be keyboard navigable', async ({ page, skip, browserName }) => {
|
|
10
|
+
// TODO(ROU-5358): remove skip once issue is resolved
|
|
10
11
|
skip.browser('firefox', 'https://github.com/ionic-team/ionic-framework/issues/25070');
|
|
11
|
-
// TODO (
|
|
12
|
+
// TODO (ROU-5437)
|
|
12
13
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
13
14
|
await page.goto(`/src/components/accordion/test/a11y`, config);
|
|
14
15
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
@@ -133,7 +133,9 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => {
|
|
|
133
133
|
*/
|
|
134
134
|
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
135
135
|
test.describe(title('alert: font scaling'), () => {
|
|
136
|
-
test('should scale text on larger font sizes', async ({ page }) => {
|
|
136
|
+
test('should scale text on larger font sizes', async ({ page, skip }) => {
|
|
137
|
+
// TODO(ROU-8158): unskip this test when a solution is found
|
|
138
|
+
skip.browser('chromium', 'Rendering is flaky in Chrome.');
|
|
137
139
|
await page.setContent(`
|
|
138
140
|
<style>
|
|
139
141
|
html {
|
|
@@ -11,7 +11,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ config, screenshot, t
|
|
|
11
11
|
test.describe('adding a breadcrumb item', () => {
|
|
12
12
|
test('should update the active item', async ({ page }) => {
|
|
13
13
|
const breadcrumbItems = page.locator('ion-breadcrumb');
|
|
14
|
-
const addItemButton = page.locator('
|
|
14
|
+
const addItemButton = page.locator('#add-btn');
|
|
15
15
|
await expect(breadcrumbItems).toHaveCount(4);
|
|
16
16
|
await addItemButton.click();
|
|
17
17
|
await page.waitForChanges();
|
|
@@ -8,7 +8,7 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
8
8
|
test('should position the time picker relative to the click target', async ({ page }) => {
|
|
9
9
|
await page.goto('/src/components/datetime/test/position', config);
|
|
10
10
|
const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
|
|
11
|
-
const openDateTimeBtn = page.locator('
|
|
11
|
+
const openDateTimeBtn = page.locator('#open-datetime');
|
|
12
12
|
await openDateTimeBtn.click();
|
|
13
13
|
await ionPopoverDidPresent.next();
|
|
14
14
|
await page.locator('.datetime-ready').waitFor();
|
|
@@ -60,7 +60,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
|
|
|
60
60
|
const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
|
|
61
61
|
await page.click('#html-content-loading');
|
|
62
62
|
await ionLoadingDidPresent.next();
|
|
63
|
-
const button = page.locator('ion-loading
|
|
63
|
+
const button = page.locator('ion-loading button');
|
|
64
64
|
if (browserName === 'webkit') {
|
|
65
65
|
await page.keyboard.down('Alt');
|
|
66
66
|
}
|
|
@@ -26,7 +26,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
26
26
|
});
|
|
27
27
|
test('should trap focus', async ({ page, skip, browserName }) => {
|
|
28
28
|
skip.browser('firefox', 'Firefox incorrectly allows keyboard focus to move to ion-content');
|
|
29
|
-
// TODO (
|
|
29
|
+
// TODO (ROU-5437)
|
|
30
30
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
31
31
|
const ionDidOpen = await page.spyOnEvent('ionDidOpen');
|
|
32
32
|
await page.click('#open-start');
|
|
@@ -21,7 +21,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
21
21
|
await modal.evaluate((modal) => {
|
|
22
22
|
var _a;
|
|
23
23
|
modal.remove();
|
|
24
|
-
(_a = document.querySelector('
|
|
24
|
+
(_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', modal);
|
|
25
25
|
});
|
|
26
26
|
await page.waitForChanges();
|
|
27
27
|
await button.click();
|
|
@@ -17,7 +17,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
17
17
|
});
|
|
18
18
|
test.describe('pushing a new page', () => {
|
|
19
19
|
test('should render the pushed component', async ({ page }) => {
|
|
20
|
-
const pageTwoButton = page.locator('
|
|
20
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
21
21
|
const pageOne = page.locator('page-one');
|
|
22
22
|
const pageTwo = page.locator('page-two');
|
|
23
23
|
await pageTwoButton.click();
|
|
@@ -27,7 +27,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
27
27
|
await expect(pageOne).not.toBeVisible();
|
|
28
28
|
});
|
|
29
29
|
test('should render the back button', async ({ page }) => {
|
|
30
|
-
const pageTwoButton = page.locator('
|
|
30
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
31
31
|
const pageTwoBackButton = page.locator('page-two ion-back-button');
|
|
32
32
|
await pageTwoButton.click();
|
|
33
33
|
await page.waitForChanges();
|
|
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
37
37
|
test('back button should pop to the previous page', async ({ page }) => {
|
|
38
38
|
const pageOne = page.locator('page-one');
|
|
39
39
|
const pageTwo = page.locator('page-two');
|
|
40
|
-
const pageTwoButton = page.locator('
|
|
40
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
41
41
|
const pageTwoBackButton = page.locator('page-two ion-back-button');
|
|
42
42
|
await pageTwoButton.click();
|
|
43
43
|
await page.waitForChanges();
|
|
@@ -52,8 +52,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
52
52
|
const pageOne = page.locator('page-one');
|
|
53
53
|
const pageTwo = page.locator('page-two');
|
|
54
54
|
const pageThree = page.locator('page-three');
|
|
55
|
-
const pageTwoButton = page.locator('
|
|
56
|
-
const pageThreeButton = page.locator('
|
|
55
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
56
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
|
|
57
57
|
await pageTwoButton.click();
|
|
58
58
|
await page.waitForChanges();
|
|
59
59
|
await expect(pageOne).toHaveCount(1);
|
|
@@ -15,8 +15,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
15
15
|
test('should push pages with nested ion-nav', async ({ page }) => {
|
|
16
16
|
const pageOne = page.locator('page-one');
|
|
17
17
|
const pageTwo = page.locator('page-two');
|
|
18
|
-
const pageTwoButton = page.locator('
|
|
19
|
-
const pageTwoTwoButton = page.locator('
|
|
18
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
|
|
19
|
+
const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
|
|
20
20
|
await pageTwoButton.click();
|
|
21
21
|
await page.waitForChanges();
|
|
22
22
|
const pageTwoOne = page.locator('page-two-one');
|
|
@@ -28,7 +28,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
28
28
|
await page.waitForChanges();
|
|
29
29
|
await expect(pageTwoOne).toHaveCount(1);
|
|
30
30
|
await expect(pageTwoTwo).toBeVisible();
|
|
31
|
-
const pageThreeButton = page.locator('
|
|
31
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
|
|
32
32
|
await pageThreeButton.click();
|
|
33
33
|
await page.waitForChanges();
|
|
34
34
|
const pageThree = page.locator('page-three');
|
|
@@ -38,15 +38,15 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
38
38
|
});
|
|
39
39
|
test.describe('back button', () => {
|
|
40
40
|
test('should work with nested ion-nav', async ({ page }) => {
|
|
41
|
-
const pageTwoButton = page.locator('
|
|
42
|
-
const pageTwoTwoButton = page.locator('
|
|
41
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
|
|
42
|
+
const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
|
|
43
43
|
await pageTwoButton.click();
|
|
44
44
|
await page.waitForChanges();
|
|
45
45
|
const pageTwoOne = page.locator('page-two-one');
|
|
46
46
|
const pageTwoTwo = page.locator('page-two-two');
|
|
47
47
|
await pageTwoTwoButton.click();
|
|
48
48
|
await page.waitForChanges();
|
|
49
|
-
const pageThreeButton = page.locator('
|
|
49
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
|
|
50
50
|
const pageThreeBackButton = page.locator('page-three ion-back-button');
|
|
51
51
|
await pageThreeButton.click();
|
|
52
52
|
await page.waitForChanges();
|
|
@@ -21,8 +21,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
21
21
|
const pageRoot = page.locator('page-root');
|
|
22
22
|
const pageOne = page.locator('page-one');
|
|
23
23
|
const pageTwo = page.locator('page-two');
|
|
24
|
-
const pageOneButton = page.locator('
|
|
25
|
-
const pageTwoButton = page.locator('
|
|
24
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
25
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
26
26
|
await pageOneButton.click();
|
|
27
27
|
await page.waitForChanges();
|
|
28
28
|
await expect(pageOne).toBeVisible();
|
|
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
37
37
|
await expect(pageOne).toHaveCount(1);
|
|
38
38
|
});
|
|
39
39
|
test('should render the back button', async ({ page }) => {
|
|
40
|
-
const pageOneButton = page.locator('
|
|
40
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
41
41
|
const pageOneBackButton = page.locator('page-one ion-back-button');
|
|
42
42
|
await pageOneButton.click();
|
|
43
43
|
await page.waitForChanges();
|
|
@@ -47,7 +47,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
47
47
|
test('back button should pop to the previous page', async ({ page }) => {
|
|
48
48
|
const pageRoot = page.locator('page-root');
|
|
49
49
|
const pageOne = page.locator('page-one');
|
|
50
|
-
const pageOneButton = page.locator('
|
|
50
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
51
51
|
const pageOneBackButton = page.locator('page-one ion-back-button');
|
|
52
52
|
await pageOneButton.click();
|
|
53
53
|
await page.waitForChanges();
|
|
@@ -63,9 +63,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
63
63
|
const pageOne = page.locator('page-one');
|
|
64
64
|
const pageTwo = page.locator('page-two');
|
|
65
65
|
const pageThree = page.locator('page-three');
|
|
66
|
-
const pageOneButton = page.locator('
|
|
67
|
-
const pageTwoButton = page.locator('
|
|
68
|
-
const pageThreeButton = page.locator('
|
|
66
|
+
const pageOneButton = page.locator('button:has-text("Go to Page One")');
|
|
67
|
+
const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
|
|
68
|
+
const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
|
|
69
69
|
await pageOneButton.click();
|
|
70
70
|
await page.waitForChanges();
|
|
71
71
|
await expect(pageRoot).toHaveCount(1);
|
|
@@ -86,7 +86,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
86
86
|
</ion-picker>
|
|
87
87
|
`, config);
|
|
88
88
|
});
|
|
89
|
-
|
|
89
|
+
// TODO(FW-6232): remove this skip when tabbing is working properly
|
|
90
|
+
test.skip('tabbing should correctly move focus between columns', async ({ page }) => {
|
|
90
91
|
const firstColumn = page.locator('ion-picker-column#first');
|
|
91
92
|
const secondColumn = page.locator('ion-picker-column#second');
|
|
92
93
|
// Focus first column
|
|
@@ -97,7 +98,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
97
98
|
await page.keyboard.press('Tab');
|
|
98
99
|
await expect(secondColumn).toBeFocused();
|
|
99
100
|
});
|
|
100
|
-
|
|
101
|
+
// TODO(FW-6232): remove this skip when tabbing is working properly
|
|
102
|
+
test.skip('tabbing should correctly move focus back', async ({ page }) => {
|
|
101
103
|
const firstColumn = page.locator('ion-picker-column#first');
|
|
102
104
|
const secondColumn = page.locator('ion-picker-column#second');
|
|
103
105
|
await secondColumn.evaluate((el) => el.setFocus());
|
|
@@ -8,7 +8,8 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
8
8
|
*/
|
|
9
9
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
10
10
|
test.describe(title('picker: keyboard entry'), () => {
|
|
11
|
-
|
|
11
|
+
// TODO(FW-6232): remove this skip when keyboard entry is working properly
|
|
12
|
+
test.skip('should scroll to and update the value prop for a single column', async ({ page }) => {
|
|
12
13
|
await page.setContent(`
|
|
13
14
|
<ion-picker>
|
|
14
15
|
<ion-picker-column></ion-picker-column>
|
|
@@ -106,7 +107,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
106
107
|
await expect(secondIonChange).toHaveReceivedEventDetail({ value: 24 });
|
|
107
108
|
await expect(secondColumn).toHaveJSProperty('value', 24);
|
|
108
109
|
});
|
|
109
|
-
|
|
110
|
+
// TODO(FW-6232): remove this skip when keyboard entry is working properly
|
|
111
|
+
test.skip('should select 00', async ({ page }) => {
|
|
110
112
|
await page.setContent(`
|
|
111
113
|
<ion-picker>
|
|
112
114
|
<ion-picker-column></ion-picker-column>
|
|
@@ -32,7 +32,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
32
32
|
await popover.evaluate((popover) => {
|
|
33
33
|
var _a;
|
|
34
34
|
popover.remove();
|
|
35
|
-
(_a = document.querySelector('
|
|
35
|
+
(_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', popover);
|
|
36
36
|
});
|
|
37
37
|
await page.waitForChanges();
|
|
38
38
|
await button.click();
|
|
@@ -32,7 +32,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
32
32
|
});
|
|
33
33
|
test.describe('select: popover', () => {
|
|
34
34
|
test('it should open a popover select', async ({ page, skip }) => {
|
|
35
|
-
// TODO (
|
|
35
|
+
// TODO (ROU-5437)
|
|
36
36
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
37
37
|
const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
|
|
38
38
|
await page.click('#customPopoverSelect');
|
|
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
6
6
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
7
7
|
test.describe(title('select: disabled options'), () => {
|
|
8
8
|
test('should not focus a disabled option when no value is set', async ({ page, skip }) => {
|
|
9
|
-
// TODO (
|
|
9
|
+
// TODO (ROU-5437)
|
|
10
10
|
skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
|
|
11
11
|
test.info().annotations.push({
|
|
12
12
|
type: 'issue',
|
|
@@ -18,7 +18,7 @@ const checkedOptions = [
|
|
|
18
18
|
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
19
19
|
test.describe(title('select-popover: basic'), () => {
|
|
20
20
|
test.beforeEach(({ browserName }) => {
|
|
21
|
-
test.skip(browserName === 'webkit', '
|
|
21
|
+
test.skip(browserName === 'webkit', 'ROU-5437');
|
|
22
22
|
});
|
|
23
23
|
test.describe('single selection', () => {
|
|
24
24
|
let selectPopoverPage;
|
|
@@ -44,7 +44,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
44
44
|
await expect(selectPopoverPage.popover).not.toBeVisible();
|
|
45
45
|
});
|
|
46
46
|
test('pressing Space on a selected option should dismiss the popover', async ({ browserName }) => {
|
|
47
|
-
test.skip(browserName === 'firefox', 'Same behavior as
|
|
47
|
+
test.skip(browserName === 'firefox', 'Same behavior as ROU-5437');
|
|
48
48
|
await selectPopoverPage.setup(config, checkedOptions, false);
|
|
49
49
|
await selectPopoverPage.pressSpaceOnOption('apple');
|
|
50
50
|
await selectPopoverPage.ionPopoverDidDismiss.next();
|
package/dist/docs.json
CHANGED