Files
payload/test/helpers/folders/createFolder.ts
Jarrod Flesch 337f6188da feat: optionally exclude collection documents from appearing in browse-by-folder (#12654)
Adds configurations for browse-by-folder document results. This PR
**does NOT** allow for filtering out folders on a per collection basis.
That will be addressed in a future PR 👍

### Disable browse-by-folder all together
```ts
type RootFoldersConfiguration = {
  /**
   * If true, the browse by folder view will be enabled
   *
   * @default true
   */
  browseByFolder?: boolean
  // ...rest of type
}
```

### Remove document types from appearing in the browse by folder view
```ts
type CollectionFoldersConfiguration =
  | boolean
  | {
      /**
       * If true, the collection documents will be included in the browse by folder view
       *
       * @default true
       */
      browseByFolder?: boolean
    }
```

### Misc
Fixes https://github.com/payloadcms/payload/issues/12631 where adding
folders.collectionOverrides was being set on the client config - it
should be omitted.

Fixes an issue where `baseListFilters` were not being respected.
2025-06-04 13:22:26 -04:00

43 lines
1.2 KiB
TypeScript

import { expect, type Page } from '@playwright/test'
type Args = {
folderName: string
fromDropdown?: boolean
page: Page
}
export async function createFolder({
folderName,
fromDropdown = false,
page,
}: Args): Promise<void> {
if (fromDropdown) {
const folderDropdown = page.locator('.create-new-doc-in-folder__popup-button', {
hasText: 'Create',
})
await folderDropdown.click()
const createFolderButton = page.locator('.popup-button-list__button', {
hasText: 'Folder',
})
await createFolderButton.click()
} else {
const createFolderButton = page.locator(
'.create-new-doc-in-folder__button:has-text("Create New")',
)
await createFolderButton.click()
}
const folderNameInput = page.locator(
'dialog#create-document--header-pill-new-folder-drawer div.drawer-content-container input#field-name',
)
await folderNameInput.fill(folderName)
const createButton = page.getByRole('button', { name: 'Apply Changes' })
await createButton.click()
await expect(page.locator('.payload-toast-container')).toContainText('successfully')
const folderCard = page.locator('.folder-file-card__name', { hasText: folderName }).first()
await expect(folderCard).toBeVisible()
}