Files
payload/test/helpers/e2e/toggleColumn.ts
Jacob Fletcher 8383426313 fix(ui): prevents column reset on sort (#9517)
Fixes #9492. Sorting columns would unintentionally clear column
preferences.
2024-11-25 15:15:07 -05:00

50 lines
1.3 KiB
TypeScript

import type { Page } from '@playwright/test'
import { expect } from '@playwright/test'
import { exactText } from '../../helpers.js'
export const toggleColumn = async (
page: Page,
{
togglerSelector = '.list-controls__toggle-columns',
columnContainerSelector = '.list-controls__columns',
columnLabel,
}: {
columnContainerSelector?: string
columnLabel: string
togglerSelector?: string
},
): Promise<any> => {
const columnContainer = page.locator(columnContainerSelector).first()
const isAlreadyOpen = await columnContainer.isVisible()
if (!isAlreadyOpen) {
await page.locator(togglerSelector).first().click()
}
await expect(page.locator(`${columnContainerSelector}.rah-static--height-auto`)).toBeVisible()
const column = columnContainer.locator(`.column-selector .column-selector__column`, {
hasText: exactText(columnLabel),
})
const isActiveBeforeClick = await column.evaluate((el) =>
el.classList.contains('column-selector__column--active'),
)
await expect(column).toBeVisible()
await column.click()
if (isActiveBeforeClick) {
// no class
await expect(column).not.toHaveClass('column-selector__column--active')
} else {
// has class
await expect(column).toHaveClass('column-selector__column--active')
}
return column
}