Skip to content

Commit 7af3322

Browse files
agatha197ironAiken2
authored andcommitted
feat(FR-636): add delete and delete-forever test case
1 parent 550d41a commit 7af3322

2 files changed

Lines changed: 60 additions & 51 deletions

File tree

e2e/test-util.ts

Lines changed: 55 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,27 @@ 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.locator('#react-root').getByTitle('Name').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 expect(
138+
page
139+
.getByRole('cell', { name: `VFolder Identicon ${folderName}` })
140+
.filter({ hasText: folderName }),
141+
).toBeVisible();
142+
// remove searching folder name
143+
await page.getByRole('img', { name: 'close' }).locator('svg').click();
144+
}
145+
125146
export async function createVFolderAndVerify(
126147
page: Page,
127148
folderName: string,
@@ -140,64 +161,52 @@ export async function createVFolderAndVerify(
140161
await page.getByTestId(`${permission}-permission`).click();
141162

142163
await page.getByRole('button', { name: 'Create', exact: true }).click();
143-
await page.reload();
144-
await page.locator('#react-root').getByTitle('Name').click();
145-
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);
148-
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();
164+
await verifyVFolder(page, folderName);
155165
}
156166

157167
export async function deleteVFolderAndVerify(page: Page, folderName: string) {
158168
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();
169+
await page.locator('#react-root').getByTitle('Name').click();
170+
await page.getByRole('option', { name: 'Name' }).locator('div').click();
171+
const searchInput = page.locator('#rc_select_8');
172+
await searchInput.click();
173+
await searchInput.fill(folderName);
169174
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')
175+
.getByRole('row', { name: 'VFolder Identicon e2e-test-' })
176+
.getByRole('button')
179177
.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' })
189178
.click();
179+
await page.getByRole('button', { name: 'Move' }).click();
180+
// await page.waitForLoadState('networkidle');
181+
await verifyVFolder(page, folderName, 'Trash');
182+
}
183+
184+
export async function deleteForeverAndVerify(page: Page, folderName: string) {
185+
await deleteVFolderAndVerify(page, folderName);
186+
const searchInput = page.locator('#rc_select_8');
187+
await searchInput.fill(folderName);
190188
await page
191-
.getByRole('textbox', { name: 'Type folder name to delete' })
192-
.fill(folderName);
189+
.getByRole('row', { name: 'VFolder Identicon e2e-test-' })
190+
.getByRole('button')
191+
.nth(1)
192+
.click();
193+
await page.locator('#confirmText').fill(folderName);
194+
195+
// Delete forever
193196
await page.getByRole('button', { name: 'Delete forever' }).click();
197+
// Verify
198+
await navigateTo(page, 'data');
199+
await page.getByRole('tab', { name: 'Trash' }).click();
200+
await page.locator('#react-root').getByTitle('Name').click();
201+
await page.getByRole('option', { name: 'Name' }).locator('div').click();
202+
await searchInput.fill(folderName);
194203
await expect(
195204
page
196-
.locator('vaadin-grid-cell-content')
197-
.filter({ hasText: folderName })
198-
.locator(':visible'),
205+
.getByRole('cell', { name: `VFolder Identicon ${folderName}` })
206+
.filter({ hasText: folderName }),
199207
).toHaveCount(0);
200-
await nameInputInTrash.fill('');
208+
// Remove searching folder name
209+
await page.getByRole('img', { name: 'close' }).locator('svg').click();
201210
}
202211

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

e2e/vfolder.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {
22
createVFolderAndVerify,
3-
deleteVFolderAndVerify,
3+
deleteForeverAndVerify,
44
fillOutVaadinGridCellFilter,
55
loginAsUser,
66
loginAsUser2,
@@ -15,7 +15,7 @@ test.describe('VFolder ', () => {
1515
await loginAsUser(page);
1616
const folderName = 'e2e-test-folder-user-creation' + new Date().getTime();
1717
await createVFolderAndVerify(page, folderName);
18-
await deleteVFolderAndVerify(page, folderName);
18+
await deleteForeverAndVerify(page, folderName);
1919
});
2020
});
2121

@@ -89,7 +89,7 @@ test.describe('VFolder sharing', () => {
8989
await page2.getByLabel('Type folder name to leave').fill(sharingFolderName);
9090
await page2.getByRole('button', { name: 'Leave' }).click();
9191
// delete folder
92-
await deleteVFolderAndVerify(page, sharingFolderName);
92+
await deleteForeverAndVerify(page, sharingFolderName);
9393
await page.close();
9494
await page2.close();
9595
});
@@ -129,7 +129,7 @@ test.describe('VFolder sharing', () => {
129129
.filter({ hasText: sharingFolderName }),
130130
).toBeVisible();
131131
// Delete folder as User before User2 accept the invitation
132-
await deleteVFolderAndVerify(page, sharingFolderName);
132+
await deleteForeverAndVerify(page, sharingFolderName);
133133
// check the invitation is disappeared
134134
await page2.reload();
135135
await expect(
@@ -181,7 +181,7 @@ test.describe('VFolder sharing', () => {
181181
.filter({ hasText: sharingFolderName }),
182182
).toBeVisible();
183183
// User delete the folder when User2 is trying to accept
184-
await deleteVFolderAndVerify(page, sharingFolderName);
184+
await deleteForeverAndVerify(page, sharingFolderName);
185185
// User2 accept the invitation
186186
await page2
187187
.getByText(`From ${userInfo.user.email}`)

0 commit comments

Comments
 (0)