Skip to content

Commit 682c678

Browse files
committed
feat(FR-636): add delete and delete-forever test case
1 parent 6154199 commit 682c678

2 files changed

Lines changed: 65 additions & 48 deletions

File tree

e2e/test-util.ts

Lines changed: 62 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,28 @@ export async function fillOutVaadinGridCellFilter(
122122
await nameInput.fill(inputValue);
123123
}
124124

125+
export async function verifyVFolder(
126+
page: Page,
127+
folderName: string,
128+
statusTab: 'Created' | 'Trash' = 'Created',
129+
) {
130+
await navigateTo(page, 'data');
131+
await page.getByRole('tab', { name: statusTab }).click();
132+
await page.getByTestId('vfolder-filter').locator('div').nth(2).click();
133+
await page.getByRole('option', { name: 'Name' }).locator('div').click();
134+
const searchInput = page.locator('#rc_select_8');
135+
await searchInput.click();
136+
await searchInput.fill(folderName);
137+
await page.getByRole('button', { name: 'search' }).click();
138+
await expect(
139+
page
140+
.getByRole('cell', { name: `VFolder Identicon ${folderName}` })
141+
.filter({ hasText: folderName }),
142+
).toBeVisible();
143+
// remove searching folder name
144+
await page.getByRole('img', { name: 'close' }).locator('svg').click();
145+
}
146+
125147
export async function createVFolderAndVerify(
126148
page: Page,
127149
folderName: string,
@@ -140,64 +162,59 @@ export async function createVFolderAndVerify(
140162
await page.getByTestId(`${permission}-permission`).click();
141163

142164
await page.getByRole('button', { name: 'Create', exact: true }).click();
143-
await page.reload();
165+
await verifyVFolder(page, folderName);
166+
}
167+
168+
export async function moveToTrashAndVerify(page: Page, folderName: string) {
169+
await navigateTo(page, 'data');
144170
await page.getByTestId('vfolder-filter').locator('div').nth(2).click();
145171
await page.getByRole('option', { name: 'Name' }).locator('div').click();
146-
await page.locator('#rc_select_8').click();
147-
await page.locator('#rc_select_8').fill(folderName);
172+
const searchInput = page.locator('#rc_select_8');
173+
await searchInput.click();
174+
await searchInput.fill(folderName);
148175
await page.getByRole('button', { name: 'search' }).click();
149-
await page.getByRole('link', { name: folderName }).click();
150-
await expect(
151-
page
152-
.getByRole('cell', { name: `VFolder Identicon ${folderName}` })
153-
.filter({ hasText: folderName }),
154-
).toBeVisible();
176+
await page
177+
.getByRole('row', { name: 'VFolder Identicon e2e-test-' })
178+
.getByRole('button')
179+
.nth(1)
180+
.click();
181+
await page.getByRole('button', { name: 'Move' }).click();
182+
// remove searching folder name
183+
await page.getByRole('img', { name: 'close' }).locator('svg').click();
184+
await verifyVFolder(page, folderName, 'Trash');
155185
}
156186

157-
export async function deleteVFolderAndVerify(page: Page, folderName: string) {
187+
export async function deleteForeverAndVerifyFromTrash(
188+
page: Page,
189+
folderName: string,
190+
) {
158191
await navigateTo(page, 'data');
159-
const nameInput = page
160-
.locator('#general-folder-storage vaadin-grid-cell-content')
161-
.filter({ hasText: 'Name' })
162-
.locator('vaadin-text-field')
163-
.nth(1)
164-
.locator('input');
165-
await nameInput.click();
166-
await nameInput.fill(folderName);
167-
await page.waitForTimeout(1000);
168-
await page.getByRole('button', { name: 'delete' }).first().click();
192+
await page.getByRole('tab', { name: 'Trash' }).click();
193+
const searchInput = page.locator('#rc_select_8');
194+
await searchInput.fill(folderName);
195+
await page.getByRole('button', { name: 'search' }).click();
196+
// Delete forever
169197
await page
170-
.locator('#delete-without-confirm-button')
171-
.getByLabel('delete')
172-
.click();
173-
await page.waitForLoadState('networkidle');
174-
await page.getByRole('tab', { name: 'delete' }).click();
175-
const nameInputInTrash = page
176-
.locator('#trash-bin-folder-storage vaadin-grid-cell-content')
177-
.filter({ hasText: 'Name' })
178-
.locator('vaadin-text-field')
198+
.getByRole('row', { name: 'VFolder Identicon e2e-test-' })
199+
.getByRole('button')
179200
.nth(1)
180-
.locator('input');
181-
await nameInputInTrash.fill(folderName);
182-
// after filling the input, the vaadin-grid will be updated asynchronously. So we need to wait for the grid to be updated.
183-
await page.waitForTimeout(1000);
184-
await page
185-
.locator('vaadin-grid-cell-content')
186-
.filter({ hasText: folderName })
187-
.locator('//following-sibling::*[7]')
188-
.getByRole('button', { name: 'delete_forever' })
189201
.click();
190-
await page
191-
.getByRole('textbox', { name: 'Type folder name to delete' })
192-
.fill(folderName);
202+
await page.locator('#confirmText').click();
203+
await page.locator('#confirmText').fill(folderName);
193204
await page.getByRole('button', { name: 'Delete forever' }).click();
205+
// Verify
206+
await page.getByTestId('vfolder-filter').locator('div').nth(2).click();
207+
await page.getByRole('option', { name: 'Name' }).locator('div').click();
208+
await searchInput.click();
209+
await searchInput.fill(folderName);
210+
await page.getByRole('button', { name: 'search' }).click();
194211
await expect(
195212
page
196-
.locator('vaadin-grid-cell-content')
197-
.filter({ hasText: folderName })
198-
.locator(':visible'),
213+
.getByRole('cell', { name: `VFolder Identicon ${folderName}` })
214+
.filter({ hasText: folderName }),
199215
).toHaveCount(0);
200-
await nameInputInTrash.fill('');
216+
// Remove searching folder name
217+
await page.locator('.ant-tag > .anticon > svg > path').first().click();
201218
}
202219

203220
export async function createSession(page: Page, sessionName: string) {

e2e/vfolder.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import {
22
createVFolderAndVerify,
3-
deleteVFolderAndVerify,
43
fillOutVaadinGridCellFilter,
54
loginAsUser,
65
loginAsUser2,
76
logout,
7+
moveToTrashAndVerify,
88
navigateTo,
99
userInfo,
1010
} from './test-util';
1111
import { test, expect } from '@playwright/test';
1212

1313
test.describe('VFolder ', () => {
14+
const folderName = 'e2e-test-folder-user-creation' + new Date().getTime();
1415
test('User can create and delete vFolder', async ({ page }) => {
1516
await loginAsUser(page);
16-
const folderName = 'e2e-test-folder-user-creation' + new Date().getTime();
1717
await createVFolderAndVerify(page, folderName);
18-
await deleteVFolderAndVerify(page, folderName);
18+
await moveToTrashAndVerify(page, folderName);
1919
});
2020
});
2121

0 commit comments

Comments
 (0)