diff --git a/test/uploads/config.ts b/test/uploads/config.ts index fdca3498d6..d5c48f0ed5 100644 --- a/test/uploads/config.ts +++ b/test/uploads/config.ts @@ -11,8 +11,10 @@ import { Uploads1 } from './collections/Upload1/index.js' import { Uploads2 } from './collections/Upload2/index.js' import { audioSlug, + cropOnlySlug, enlargeSlug, focalNoSizesSlug, + globalWithMediaSlug, mediaSlug, reduceSlug, relationSlug, @@ -132,7 +134,7 @@ export default buildConfigWithDefaults({ }, }, { - slug: 'crop-only', + slug: cropOnlySlug, fields: [], upload: { focalPoint: false, @@ -462,6 +464,18 @@ export default buildConfigWithDefaults({ }, }, ], + globals: [ + { + slug: globalWithMediaSlug, + fields: [ + { + type: 'upload', + name: 'media', + relationTo: cropOnlySlug, + }, + ], + }, + ], onInit: async (payload) => { const uploadsDir = path.resolve(dirname, './media') removeFiles(path.normalize(uploadsDir)) diff --git a/test/uploads/e2e.spec.ts b/test/uploads/e2e.spec.ts index debec00f8e..aad8aa0f2e 100644 --- a/test/uploads/e2e.spec.ts +++ b/test/uploads/e2e.spec.ts @@ -1,5 +1,4 @@ import type { Page } from '@playwright/test' -import type { Payload } from 'payload/types' import { expect, test } from '@playwright/test' import path from 'path' @@ -23,6 +22,7 @@ import { adminThumbnailFunctionSlug, adminThumbnailSizeSlug, audioSlug, + globalWithMediaSlug, mediaSlug, relationSlug, } from './shared.js' @@ -39,6 +39,7 @@ let audioURL: AdminUrlUtil let relationURL: AdminUrlUtil let adminThumbnailSizeURL: AdminUrlUtil let adminThumbnailFunctionURL: AdminUrlUtil +let globalWithMediaURL: string describe('uploads', () => { let page: Page @@ -56,6 +57,7 @@ describe('uploads', () => { relationURL = new AdminUrlUtil(serverURL, relationSlug) adminThumbnailSizeURL = new AdminUrlUtil(serverURL, adminThumbnailSizeSlug) adminThumbnailFunctionURL = new AdminUrlUtil(serverURL, adminThumbnailFunctionSlug) + globalWithMediaURL = new AdminUrlUtil(serverURL, globalWithMediaURL).global(globalWithMediaSlug) const context = await browser.newContext() page = await context.newPage() @@ -373,4 +375,17 @@ describe('uploads', () => { expect(redDoc.filesize).toEqual(1207) }) }) + + describe('globals', () => { + test('should be able to crop media from a global', async () => { + await page.goto(globalWithMediaURL) + await page.click('.upload__toggler.doc-drawer__toggler') + await page.setInputFiles('input[type="file"]', path.resolve(dirname, './image.png')) + await page.click('.file-field__edit') + await page.click('.btn.edit-upload__save') + await saveDocAndAssert(page, '.drawer__content #action-save') + await saveDocAndAssert(page) + await expect(page.locator('.thumbnail img')).toBeVisible() + }) + }) }) diff --git a/test/uploads/shared.ts b/test/uploads/shared.ts index 890422aed5..5bdff9046c 100644 --- a/test/uploads/shared.ts +++ b/test/uploads/shared.ts @@ -5,8 +5,10 @@ export const audioSlug = 'audio' export const enlargeSlug = 'enlarge' export const focalNoSizesSlug = 'focal-no-sizes' export const focalOnlySlug = 'focal-only' +export const cropOnlySlug = 'crop-only' export const reduceSlug = 'reduce' export const adminThumbnailFunctionSlug = 'admin-thumbnail-function' export const adminThumbnailSizeSlug = 'admin-thumbnail-size' export const unstoredMediaSlug = 'unstored-media' export const versionSlug = 'versions' +export const globalWithMediaSlug = 'globals-with-media'