mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 00:27:49 -04:00
fix(cypress): action selector menu lookup
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
This commit is contained in:
parent
3a9439d1e2
commit
11a5330214
2 changed files with 23 additions and 5 deletions
|
|
@ -15,11 +15,27 @@ export const getActionsForFile = (filename: string) => getRowForFile(filename).f
|
|||
export const getActionButtonForFileId = (fileid: number) => getActionsForFileId(fileid).findByRole('button', { name: 'Actions' })
|
||||
export const getActionButtonForFile = (filename: string) => getActionsForFile(filename).findByRole('button', { name: 'Actions' })
|
||||
|
||||
export const getActionEntryForFileId = (fileid: number, actionId: string) => {
|
||||
return getRowForFileId(fileid).find(`[data-cy-files-list-row-action="${CSS.escape(actionId)}"]`)
|
||||
const searchForActionInRow = (row: JQuery<HTMLElement>, actionId: string): Cypress.Chainable<JQuery<HTMLElement>> => {
|
||||
const action = row.find(`[data-cy-files-list-row-action="${CSS.escape(actionId)}"]`)
|
||||
if (action.length > 0) {
|
||||
cy.log('Found action in row')
|
||||
return cy.wrap(action)
|
||||
}
|
||||
|
||||
// Else look in the action menu
|
||||
const menuButtonId = row.find('button[aria-controls]').attr('aria-controls')
|
||||
return cy.get(`#${menuButtonId} [data-cy-files-list-row-action="${CSS.escape(actionId)}"]`)
|
||||
}
|
||||
export const getActionEntryForFile = (filename: string, actionId: string) => {
|
||||
return getRowForFile(filename).find(`[data-cy-files-list-row-action="${CSS.escape(actionId)}"]`)
|
||||
|
||||
export const getActionEntryForFileId = (fileid: number, actionId: string): Cypress.Chainable<JQuery<HTMLElement>> => {
|
||||
// If we cannot find the action in the row, it might be in the action menu
|
||||
return getRowForFileId(fileid).should('be.visible')
|
||||
.then(row => searchForActionInRow(row, actionId))
|
||||
}
|
||||
export const getActionEntryForFile = (filename: string, actionId: string): Cypress.Chainable<JQuery<HTMLElement>> => {
|
||||
// If we cannot find the action in the row, it might be in the action menu
|
||||
return getRowForFile(filename).should('be.visible')
|
||||
.then(row => searchForActionInRow(row, actionId))
|
||||
}
|
||||
|
||||
export const triggerActionForFileId = (fileid: number, actionId: string) => {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import type { User } from '@nextcloud/cypress'
|
||||
import { FileAction } from '@nextcloud/files'
|
||||
|
||||
import { getActionButtonForFileId, getActionEntryForFileId, getRowForFile, getSelectionActionButton, getSelectionActionEntry, selectRowForFile, triggerActionForFile, triggerActionForFileId } from './FilesUtils'
|
||||
import { getActionButtonForFileId, getActionEntryForFileId, getRowForFile, getSelectionActionButton, getSelectionActionEntry, selectRowForFile } from './FilesUtils'
|
||||
import { ACTION_COPY_MOVE } from '../../../apps/files/src/actions/moveOrCopyAction'
|
||||
import { ACTION_DELETE } from '../../../apps/files/src/actions/deleteAction'
|
||||
import { ACTION_DETAILS } from '../../../apps/files/src/actions/sidebarAction'
|
||||
|
|
@ -53,6 +53,8 @@ describe('Files: Actions', { testIsolation: true }, () => {
|
|||
getActionButtonForFileId(fileId).click({ force: true })
|
||||
// Check the action is visible
|
||||
getActionEntryForFileId(fileId, actionId).should('be.visible')
|
||||
// Close the menu
|
||||
cy.get('body').click({ force: true})
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue