Skip to content

Commit 6600787

Browse files
authored
Merge pull request #769 from Lemoncode/feature/#551-change-thumb-selected-and-add-component
test: verify shapes drop in correct thumb page and remain isolated across page switches
2 parents dc33c00 + 57ae713 commit 6600787

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { test, expect } from '@playwright/test';
2+
import { dragAndDrop, getByShapeType, getLocatorPosition } from '../helpers';
3+
4+
test('when selecting a new thumb and adding a new shape it will be dropped in the new created page', async ({
5+
page,
6+
}) => {
7+
await page.goto('');
8+
9+
await page.getByText('Devices').click();
10+
11+
// Drag & drop mobile device component to default page canvas
12+
const componentFirstPage = page
13+
.getByText('Mobile Phone', { exact: true })
14+
.locator('..');
15+
16+
const position = await getLocatorPosition(componentFirstPage);
17+
const targetPosition = { x: position.x + 500, y: position.y - 200 };
18+
await dragAndDrop(page, position, targetPosition);
19+
20+
// Add new page
21+
await page.getByText('Pages').click();
22+
const addButton = page.getByRole('button', { name: 'add new page' });
23+
await addButton.click();
24+
25+
// Verify Page 2 is automatically selected/active
26+
const pageTwo = page.getByText('Page 2', { exact: true }).locator('..');
27+
await expect(pageTwo).toHaveClass(/active/);
28+
29+
// Drag & drop browser component to second page canvas
30+
await page.getByText('Devices').click();
31+
const componentSecondPage = page
32+
.getByText('Browser', { exact: true })
33+
.locator('..');
34+
35+
const position2 = await getLocatorPosition(componentSecondPage);
36+
const targetPosition2 = { x: position2.x + 400, y: position2.y };
37+
await dragAndDrop(page, position2, targetPosition2);
38+
39+
await page.getByText('Pages').click();
40+
41+
// Verify if browser is in page 2 (current selected page)
42+
const browser = await getByShapeType(page, 'browser');
43+
expect(browser).toBeDefined();
44+
45+
// Switch to page 1
46+
const pageOne = page.getByText('Page 1', { exact: true }).locator('..');
47+
await pageOne.click();
48+
49+
// Verify if in page 1: mobile visible, browser not visible
50+
const mobile = await getByShapeType(page, 'mobilePhone');
51+
const browserInPage1 = await getByShapeType(page, 'browser');
52+
53+
expect(mobile).toBeDefined();
54+
expect(browserInPage1).toBeUndefined();
55+
56+
// Add button to page 1 to verify shapes are added to correct active page
57+
await page.getByText('Components', { exact: true }).click();
58+
const button = page.getByAltText('Button', { exact: true });
59+
60+
const position3 = await getLocatorPosition(button);
61+
const targetPosition3 = { x: position.x + 500, y: position.y - 100 };
62+
await dragAndDrop(page, position3, targetPosition3);
63+
64+
// Verify button was added to canvas in page 1
65+
const buttonInCanvas = await getByShapeType(page, 'button');
66+
expect(mobile).toBeDefined();
67+
expect(buttonInCanvas).toBeDefined();
68+
});

0 commit comments

Comments
 (0)