diff --git a/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts deleted file mode 100644 index d944a52782..0000000000 --- a/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('reorder group: basic', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - }); - test('should render the handle when reorder group is enabled', async ({ page }) => { - await page.setContent(` - - - Item - - - - `); - const reorder = page.locator('ion-reorder'); - await expect(reorder).toBeVisible(); - }); - test('should not render the handle when reorder group is disabled', async ({ page }) => { - await page.setContent(` - - - Item - - - - `); - const reorder = page.locator('ion-reorder'); - await expect(reorder).toBeHidden(); - }); -}); diff --git a/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts b/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts new file mode 100644 index 0000000000..38fc40873e --- /dev/null +++ b/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts @@ -0,0 +1,40 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('reorder group: basic'), () => { + test('should render the handle when reorder group is enabled', async ({ page }) => { + await page.setContent( + ` + + + Item + + + + `, + config + ); + const reorder = page.locator('ion-reorder'); + await expect(reorder).toBeVisible(); + }); + test('should not render the handle when reorder group is disabled', async ({ page }) => { + await page.setContent( + ` + + + Item + + + + `, + config + ); + const reorder = page.locator('ion-reorder'); + await expect(reorder).toBeHidden(); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts deleted file mode 100644 index 781af1a955..0000000000 --- a/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: interactive', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/interactive`); - - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/interactive`); - - const reorderHandle = page.locator('ion-reorder'); - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts b/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts new file mode 100644 index 0000000000..c585185181 --- /dev/null +++ b/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts @@ -0,0 +1,42 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: interactive'), () => { + test.beforeEach(async ({ skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + + await page.goto(`/src/components/reorder-group/test/interactive`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('ion-reorder'); + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts deleted file mode 100644 index a980daa956..0000000000 --- a/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: nested', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/nested`); - - const items = page.locator('app-reorder'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/nested`); - - const reorderHandle = page.locator('app-reorder ion-reorder'); - const items = page.locator('app-reorder'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts b/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts new file mode 100644 index 0000000000..13cad060a4 --- /dev/null +++ b/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts @@ -0,0 +1,41 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: nested'), () => { + test.beforeEach(async ({ skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + await page.goto(`/src/components/reorder-group/test/nested`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('app-reorder'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('app-reorder ion-reorder'); + const items = page.locator('app-reorder'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts deleted file mode 100644 index 7209a59331..0000000000 --- a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: scroll-target', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/scroll-target`); - - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/scroll-target`); - - const reorderHandle = page.locator('ion-reorder'); - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts new file mode 100644 index 0000000000..d1560fe15f --- /dev/null +++ b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts @@ -0,0 +1,41 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: scroll-target'), () => { + test.beforeEach(async ({ skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + await page.goto(`/src/components/reorder-group/test/scroll-target`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('ion-reorder'); + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +});