Skip to content

Commit 4942ebe

Browse files
authored
tests: rewrite search feature into playwrightonly (#13555)
Signed-off-by: nabim777 <nabinalemagar019@gmail.com>
1 parent 445d7ec commit 4942ebe

8 files changed

Lines changed: 811 additions & 9 deletions

File tree

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

Lines changed: 712 additions & 0 deletions
Large diffs are not rendered by default.

tests/e2e-playwright/steps/api/api.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,15 @@ export async function userHasCreatedFiles({
6969
}: {
7070
usersEnvironment: UsersEnvironment
7171
stepUser: string
72-
files: { pathToFile: string; content: string }[]
72+
files: { pathToFile: string; content: string; mtimeDeltaDays?: string }[]
7373
}): Promise<void> {
7474
const user = usersEnvironment.getUser({ key: stepUser })
7575
for (const file of files) {
7676
await api.dav.uploadFileInPersonalSpace({
7777
user,
7878
pathToFile: file.pathToFile,
79-
content: file.content
79+
content: file.content,
80+
mtimeDeltaDays: file.mtimeDeltaDays
8081
})
8182
}
8283
}

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export async function searchGloballyWithFilter({
8888
actorsEnvironment: ActorsEnvironment
8989
stepUser: string
9090
keyword: string
91-
filter: string
91+
filter: searchFilter
9292
command?: string
9393
}): Promise<void> {
9494
keyword = keyword ?? ''
@@ -99,7 +99,7 @@ export async function searchGloballyWithFilter({
9999
const resourceObject = new objects.applicationFiles.Resource({ page })
100100
await resourceObject.searchResource({
101101
keyword,
102-
filter: filter as searchFilter,
102+
filter: filter,
103103
pressEnter
104104
})
105105
}
@@ -433,9 +433,6 @@ export async function userClosesFileViewer({
433433
await editor.close(page)
434434
}
435435

436-
// When "Brian" deletes the following resources using the sidebar panel
437-
// | resource | from |
438-
// | lorem-big.txt | folder_to_shared_2 |
439436
export async function userDeletesResources({
440437
actorsEnvironment,
441438
stepUser,

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,43 @@ export async function userClearsFilter({
4444
const searchObject = new objects.applicationFiles.Search({ page })
4545
await searchObject.clearFilter({ filter })
4646
}
47+
48+
export async function userEnablesTitleOnlySearch({
49+
actorsEnvironment,
50+
stepUser
51+
}: {
52+
actorsEnvironment: ActorsEnvironment
53+
stepUser: string
54+
}): Promise<void> {
55+
const { page } = actorsEnvironment.getActor({ key: stepUser })
56+
const searchObject = new objects.applicationFiles.Search({ page })
57+
await searchObject.toggleSearchTitleOnly({ enableOrDisable: 'enable' })
58+
}
59+
60+
export async function userFiltersSearchByMediaType({
61+
actorsEnvironment,
62+
stepUser,
63+
mediaType
64+
}: {
65+
actorsEnvironment: ActorsEnvironment
66+
stepUser: string
67+
mediaType: string
68+
}): Promise<void> {
69+
const { page } = actorsEnvironment.getActor({ key: stepUser })
70+
const searchObject = new objects.applicationFiles.Search({ page })
71+
await searchObject.selectMediaTypeFilter({ mediaType })
72+
}
73+
74+
export async function userFiltersSearchByLastModifiedDate({
75+
actorsEnvironment,
76+
stepUser,
77+
lastModified
78+
}: {
79+
actorsEnvironment: ActorsEnvironment
80+
stepUser: string
81+
lastModified: string
82+
}): Promise<void> {
83+
const { page } = actorsEnvironment.getActor({ key: stepUser })
84+
const searchObject = new objects.applicationFiles.Search({ page })
85+
await searchObject.selectlastModifiedFilter({ lastModified })
86+
}

tests/e2e/support/objects/a11y/actions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const selectors = {
2929
filesSpaceTableCheckbox: '#files-space-table .oc-checkbox',
3030
uploadMenuDropdown: '#upload-menu-drop',
3131
appSidebar: '#app-sidebar',
32+
sidebarPanelActions: '#sidebar-panel-actions',
3233
accountInfoContainer: '#account-info-container',
3334
account: '#account',
3435
removeUserModal: '.oc-modal.oc-modal-danger',

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,7 +1278,17 @@ export const renameResource = async (args: renameResourceArgs): Promise<void> =>
12781278
}
12791279

12801280
await page.locator(util.format(resourceNameSelector, resourceBase)).click({ button: 'right' })
1281+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
1282+
page,
1283+
['tippyBox'],
1284+
'Rename resource tippy box'
1285+
)
12811286
await page.locator(util.format(filesContextMenuAction, 'rename')).click()
1287+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
1288+
page,
1289+
['ocModal'],
1290+
'Rename resource modal'
1291+
)
12821292
await page.locator(fileRenameInput).clear()
12831293
await page.locator(fileRenameInput).fill(newName)
12841294
await Promise.all([
@@ -1344,8 +1354,8 @@ export const deleteResource = async (args: deleteResourceArgs): Promise<void> =>
13441354
await sidebar.openPanel({ page, name: 'actions' })
13451355
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
13461356
page,
1347-
['#app-sidebar'],
1348-
'sidebar panel'
1357+
['sidebarPanelActions'],
1358+
'Sidebar actions panel action before deleting resource'
13491359
)
13501360
await Promise.all([
13511361
page.waitForResponse(
@@ -1358,6 +1368,11 @@ export const deleteResource = async (args: deleteResourceArgs): Promise<void> =>
13581368
])
13591369
await sidebar.close({ page })
13601370
}
1371+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
1372+
page,
1373+
['sidebarPanelActions', 'filesView'],
1374+
'Sidebar actions panel before deleting resource and files view after deleting resource'
1375+
)
13611376
break
13621377
}
13631378

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Page } from '@playwright/test'
22
import util from 'util'
33
import { objects } from '../../..'
4+
import { a11y } from '../..'
45

56
const searchResultMessageSelector = '//p[@class="oc-text-muted"]'
67
const selectTagDropdownSelector =
@@ -45,6 +46,11 @@ export const selectMediaTypeFilter = async ({
4546
page: Page
4647
}): Promise<void> => {
4748
await page.locator(mediaTypeFilterSelector).click()
49+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
50+
page,
51+
['tippyBox'],
52+
'Media type filter dropdown'
53+
)
4854
await Promise.all([
4955
page.waitForResponse(
5056
(resp) =>
@@ -55,6 +61,11 @@ export const selectMediaTypeFilter = async ({
5561
page.locator(util.format(mediaTypeFilterItem, mediaType.toLowerCase())).click()
5662
])
5763
await page.locator(mediaTypeOutside).click()
64+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
65+
page,
66+
['filesView'],
67+
'Files view after selecting media type filter'
68+
)
5869
}
5970

6071
export const selectLastModifiedFilter = async ({
@@ -65,6 +76,11 @@ export const selectLastModifiedFilter = async ({
6576
page: Page
6677
}): Promise<void> => {
6778
await page.locator(lastModifiedFilterSelector).click()
79+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
80+
page,
81+
['tippyBox'],
82+
'Last modified filter dropdown'
83+
)
6884
await Promise.all([
6985
page.waitForResponse(
7086
(resp) =>
@@ -74,6 +90,11 @@ export const selectLastModifiedFilter = async ({
7490
),
7591
page.locator(util.format(lastModifiedFilterItem, lastModified)).click()
7692
])
93+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
94+
page,
95+
['filesView'],
96+
'Files view after selecting last modified filter'
97+
)
7798
}
7899

79100
export const clearFilter = async ({
@@ -84,6 +105,11 @@ export const clearFilter = async ({
84105
filter: string
85106
}): Promise<void> => {
86107
await page.locator(util.format(clearFilterSelector, filter)).click()
108+
await a11y.Accessibility.assertNoSevereA11yViolations(
109+
page,
110+
['filesView'],
111+
`Files view after clearing ${filter} filter`
112+
)
87113
}
88114

89115
export const toggleSearchTitleOnly = async ({
@@ -96,4 +122,9 @@ export const toggleSearchTitleOnly = async ({
96122
const selector =
97123
enableOrDisable === 'enable' ? enableSearchTitleOnlySelector : disableSearchTitleOnlySelector
98124
await page.locator(selector).click()
125+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
126+
page,
127+
['files'],
128+
'search title only toggle button before toggling'
129+
)
99130
}

tests/e2e/support/objects/app-files/utils/sidebar.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ export const open = async ({
118118
}
119119

120120
resource ? await openForResource({ page, resource, resourceType }) : await openGlobal({ page })
121+
await objects.a11y.Accessibility.assertNoSevereA11yViolations(
122+
page,
123+
[sidebarPanel],
124+
'sidebar panel opening'
125+
)
121126
}
122127

123128
export const close = async ({ page }: { page: Page }): Promise<void> => {

0 commit comments

Comments
 (0)