import type { Page } from '@playwright/test' import { expect, test } from '@playwright/test' import * as path from 'path' import { fileURLToPath } from 'url' import { ensureAutoLoginAndCompilationIsDone, saveDocAndAssert } from '../helpers.js' import { AdminUrlUtil } from '../helpers/adminUrlUtil.js' import { initPayloadE2ENoConfig } from '../helpers/initPayloadE2ENoConfig.js' import { TEST_TIMEOUT_LONG } from '../playwright.config.js' import { mediaSlug } from './shared.js' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) test.describe('Admin Panel', () => { let page: Page let mediaURL: AdminUrlUtil test.beforeAll(async ({ browser }, testInfo) => { testInfo.setTimeout(TEST_TIMEOUT_LONG) const { serverURL } = await initPayloadE2ENoConfig({ dirname }) mediaURL = new AdminUrlUtil(serverURL, mediaSlug) const context = await browser.newContext() page = await context.newPage() await ensureAutoLoginAndCompilationIsDone({ page, serverURL }) }) test('should create file upload', async () => { await page.goto(mediaURL.create) await page.setInputFiles('input[type="file"]', path.resolve(dirname, './image.png')) const filename = page.locator('.file-field__filename') await expect(filename).toHaveValue('image.png') await saveDocAndAssert(page) }) test('should update an existing upload', async () => { await page.goto(mediaURL.create) await page.setInputFiles('input[type="file"]', path.resolve(dirname, './image.png')) const filename = page.locator('.file-field__filename') await expect(filename).toHaveValue('image.png') await saveDocAndAssert(page) // Update alt text await page.locator('#field-alt').fill('updated text') // Save again await saveDocAndAssert(page) }) })