Skip to content

Commit 20c2015

Browse files
committed
test: migrate breadcrumb.feature to playwright
Signed-off-by: Kavita Gautam <kavita@jankaritech.com>
1 parent 4e4ceb5 commit 20c2015

10 files changed

Lines changed: 150 additions & 46 deletions

File tree

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import { test } from '@playwright/test'
2+
import { config } from '../../../e2e/config.js'
3+
import { ActorsEnvironment, UsersEnvironment } from '../../../e2e/support/environment'
4+
import { setAccessAndRefreshToken } from '../../helpers/setAccessAndRefreshToken.js'
5+
import * as ui from '../../steps/ui/index'
6+
import * as api from '../../steps/api/api'
7+
8+
test.describe('Access breadcrumb', { tag: '@predefined-users' }, () => {
9+
let actorsEnvironment
10+
const usersEnvironment = new UsersEnvironment()
11+
12+
test.beforeEach(async ({ browser }) => {
13+
actorsEnvironment = new ActorsEnvironment({
14+
context: {
15+
acceptDownloads: config.acceptDownloads,
16+
reportDir: config.reportDir,
17+
tracingReportDir: config.tracingReportDir,
18+
reportHar: config.reportHar,
19+
reportTracing: config.reportTracing,
20+
reportVideo: config.reportVideo,
21+
failOnUncaughtConsoleError: config.failOnUncaughtConsoleError
22+
},
23+
browser: browser
24+
})
25+
26+
await setAccessAndRefreshToken(usersEnvironment)
27+
await api.userHasBeenCreated({ usersEnvironment, stepUser: 'Admin', userToBeCreated: 'Alice' })
28+
await ui.logInUser({ usersEnvironment, actorsEnvironment, stepUser: 'Alice' })
29+
})
30+
31+
test.afterEach(async () => {
32+
// clean up users
33+
await api.deleteUser({ usersEnvironment, stepUser: 'Admin', targetUser: 'Alice' })
34+
})
35+
36+
test('Breadcrumb navigation', async () => {
37+
await ui.userCreatesResources({
38+
actorsEnvironment,
39+
stepUser: 'Alice',
40+
type: 'folder',
41+
resource: 'parent/folder%2Fwith%2FSlashes'
42+
})
43+
await ui.userOpensResources({
44+
actorsEnvironment,
45+
stepUser: 'Alice',
46+
resource: 'parent/folder%2Fwith%2FSlashes'
47+
})
48+
await ui.userCreatesResources({
49+
actorsEnvironment,
50+
stepUser: 'Alice',
51+
type: 'folder',
52+
resource: `'single-double quotes"`
53+
})
54+
await ui.userOpensResources({
55+
actorsEnvironment,
56+
stepUser: 'Alice',
57+
resource: `'single-double quotes"`
58+
})
59+
await ui.userCreatesResources({
60+
actorsEnvironment,
61+
stepUser: 'Alice',
62+
type: 'folder',
63+
resource: `"inner" double quote`
64+
})
65+
await ui.userOpensResources({
66+
actorsEnvironment,
67+
stepUser: 'Alice',
68+
resource: `"inner" double quote`
69+
})
70+
await ui.userCreatesResources({
71+
actorsEnvironment,
72+
stepUser: 'Alice',
73+
type: 'folder',
74+
resource: 'sub-folder'
75+
})
76+
await ui.userOpensResources({
77+
actorsEnvironment,
78+
stepUser: 'Alice',
79+
resource: 'sub-folder'
80+
})
81+
await ui.userNavigatesToFolderViaBreadcrumb({
82+
actorsEnvironment,
83+
stepUser: 'Alice',
84+
resource: `"inner" double quote`
85+
})
86+
await ui.userNavigatesToFolderViaBreadcrumb({
87+
actorsEnvironment,
88+
stepUser: 'Alice',
89+
resource: `'single-double quotes"`
90+
})
91+
await ui.userNavigatesToFolderViaBreadcrumb({
92+
actorsEnvironment,
93+
stepUser: 'Alice',
94+
resource: 'folder%2Fwith%2FSlashes'
95+
})
96+
await ui.userNavigatesToFolderViaBreadcrumb({
97+
actorsEnvironment,
98+
stepUser: 'Alice',
99+
resource: 'parent'
100+
})
101+
await ui.logOutUser({ actorsEnvironment, stepUser: 'Alice' })
102+
})
103+
})

tests/e2e-playwright/specs/oidc/iframeTokenRenewal.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ test.describe('details', () => {
7878
// And "Alice" creates the following resources
7979
// | resource | type |
8080
// | space-folder | folder |
81-
await ui.createResource({
81+
await ui.userCreatesResources({
8282
actorsEnvironment,
8383
stepUser: 'Alice',
8484
resource: 'space-folder',

tests/e2e-playwright/specs/oidc/refreshToken.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ test.describe('details', () => {
7979
// And "Alice" creates the following resources
8080
// | resource | type |
8181
// | space-folder | folder |
82-
await ui.createResource({
82+
await ui.userCreatesResources({
8383
actorsEnvironment,
8484
stepUser: 'Alice',
8585
resource: 'space-folder',
@@ -112,7 +112,7 @@ test.describe('details', () => {
112112
// And "Alice" creates the following resources
113113
// | resource | type | content |
114114
// | PARENT/parent.txt | txtFile | some text |
115-
await ui.createResource({
115+
await ui.userCreatesResources({
116116
actorsEnvironment,
117117
stepUser: 'Alice',
118118
resource: 'PARENT/parent.txt',

tests/e2e-playwright/specs/search/searchProjectSpace.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ test.describe('Search in the project space', () => {
5353

5454
await ui.navigateToSpace({ actorsEnvironment, stepUser: 'Alice', space: 'team.1' })
5555

56-
await ui.createResource({
56+
await ui.userCreatesResources({
5757
actorsEnvironment,
5858
stepUser: 'Alice',
5959
resource: 'folder(WithSymbols:!;_+-&)',

tests/e2e-playwright/specs/shares/denyShareAccess.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ test.describe('deny share access', () => {
5555
resourceType: 'folder'
5656
})
5757

58-
await ui.openResource({
58+
await ui.userOpensResources({
5959
actorsEnvironment,
6060
stepUser: 'Alice',
6161
resource: 'folder_to_shared'
@@ -89,7 +89,7 @@ test.describe('deny share access', () => {
8989
})
9090

9191
await ui.navigateToSharedWithMePage({ actorsEnvironment, stepUser: 'Brian' })
92-
await ui.openResource({
92+
await ui.userOpensResources({
9393
actorsEnvironment,
9494
stepUser: 'Brian',
9595
resource: 'folder_to_shared'
@@ -109,7 +109,7 @@ test.describe('deny share access', () => {
109109
name: 'files'
110110
})
111111

112-
await ui.openResource({
112+
await ui.userOpensResources({
113113
actorsEnvironment,
114114
stepUser: 'Alice',
115115
resource: 'folder_to_shared'
@@ -126,7 +126,7 @@ test.describe('deny share access', () => {
126126
})
127127
await ui.userOpensApplication({ actorsEnvironment, stepUser: 'Brian', name: 'files' })
128128
await ui.navigateToSharedWithMePage({ actorsEnvironment, stepUser: 'Brian' })
129-
await ui.openResource({
129+
await ui.userOpensResources({
130130
actorsEnvironment,
131131
stepUser: 'Brian',
132132
resource: 'folder_to_shared'

tests/e2e-playwright/specs/spaces/pagination.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ test.describe('check files pagination in project space', () => {
126126
})
127127

128128
// When "Alice" opens file "testfile45.txt"
129-
await ui.openResource({
129+
await ui.userOpensResources({
130130
actorsEnvironment,
131131
stepUser: 'Alice',
132132
resource: 'testfile45.txt'

tests/e2e-playwright/specs/user-settings/tiles.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ test.describe('tiles view', { tag: '@predefined-users' }, () => {
5353
stepUser: 'Alice'
5454
})
5555
// And "Alice" opens folder "tile_folder"
56-
await ui.openResource({
56+
await ui.userOpensResources({
5757
actorsEnvironment,
5858
stepUser: 'Alice',
5959
resource: 'tile_folder'
6060
})
6161
// And "Alice" creates the following resources
62-
await ui.createResource({
62+
await ui.userCreatesResources({
6363
actorsEnvironment,
6464
stepUser: 'Alice',
6565
type: 'folder',

tests/e2e-playwright/steps/ui/resources.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export async function isAbleToEditFileOrFolder({
5454
return userCanEdit
5555
}
5656

57-
export async function createResource({
57+
export async function userCreatesResources({
5858
actorsEnvironment,
5959
stepUser,
6060
resource,
@@ -129,7 +129,7 @@ export async function shouldSeeResourcesAsTiles({
129129
await resourceObject.expectThatResourcesAreTiles()
130130
}
131131

132-
export async function openResource({
132+
export async function userOpensResources({
133133
actorsEnvironment,
134134
stepUser,
135135
resource
@@ -370,3 +370,17 @@ export async function userClosesTextEditor({
370370
const { page } = actorsEnvironment.getActor({ key: stepUser })
371371
await editor.close(page)
372372
}
373+
374+
export async function userNavigatesToFolderViaBreadcrumb({
375+
actorsEnvironment,
376+
stepUser,
377+
resource
378+
}: {
379+
actorsEnvironment: ActorsEnvironment
380+
stepUser: string
381+
resource: string
382+
}): Promise<void> {
383+
const { page } = actorsEnvironment.getActor({ key: stepUser })
384+
const resourceObject = new objects.applicationFiles.Resource({ page })
385+
await resourceObject.openFolderViaBreadcrumb(resource)
386+
}

tests/e2e/cucumber/features/navigation/breadcrumb.feature

Lines changed: 0 additions & 33 deletions
This file was deleted.

tests/e2e/support/objects/app-files/resource/actions.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ export const clickResource = async ({
174174
}),
175175
resource.click()
176176
])
177+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
178+
page,
179+
['breadcrumbResourceSelector'],
180+
'Breadcrumb updated after navigating into a folder'
181+
)
177182
}
178183
}
179184

@@ -199,6 +204,11 @@ export const clickResourceFromBreadcrumb = async ({
199204
),
200205
page.locator(util.format(breadcrumbResourceNameSelector, folder)).click()
201206
])
207+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
208+
page,
209+
['fileRow'],
210+
'Child folder rows are displayed after navigating via parent breadcrumb'
211+
)
202212
await expect(page.locator(breadcrumbLastResourceNameSelector)).toHaveText(resource)
203213
}
204214

@@ -354,6 +364,11 @@ export const createNewFolder = async ({
354364
page.waitForResponse((resp) => resp.status() === 207 && resp.request().method() === 'PROPFIND'),
355365
page.locator(util.format(actionConfirmationButton, 'Create')).click()
356366
])
367+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
368+
page,
369+
['fileRow'],
370+
'New folder row is added to the file list'
371+
)
357372
}
358373

359374
export const createPasswordProtectedFolder = async ({
@@ -586,6 +601,11 @@ export const createResources = async (args: createResourceArgs): Promise<void> =
586601

587602
if (!resourcesExists) {
588603
await page.locator(addNewResourceButton).click()
604+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
605+
page,
606+
['tippyBoxVisible'],
607+
'Tippy box visible after button click'
608+
)
589609
await createNewFolder({ page, resource: path })
590610
}
591611
await clickResource({ page, path })

0 commit comments

Comments
 (0)