64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import type { Page } from '@playwright/test'
|
|
|
|
import { expect, test } from '@playwright/test'
|
|
import * as path from 'path'
|
|
import { adminRoute } from 'shared.js'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
import { ensureCompilationIsDone, initPageConsoleErrorCatch, login } from '../helpers.js'
|
|
import { AdminUrlUtil } from '../helpers/adminUrlUtil.js'
|
|
import { initPayloadE2ENoConfig } from '../helpers/initPayloadE2ENoConfig.js'
|
|
import { TEST_TIMEOUT_LONG } from '../playwright.config.js'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
test.describe('Admin Panel (Root)', () => {
|
|
let page: Page
|
|
let url: AdminUrlUtil
|
|
|
|
test.beforeAll(async ({ browser }, testInfo) => {
|
|
testInfo.setTimeout(TEST_TIMEOUT_LONG)
|
|
|
|
const { serverURL } = await initPayloadE2ENoConfig({ dirname })
|
|
url = new AdminUrlUtil(serverURL, 'posts', {
|
|
admin: adminRoute,
|
|
})
|
|
|
|
const context = await browser.newContext()
|
|
page = await context.newPage()
|
|
initPageConsoleErrorCatch(page)
|
|
|
|
await login({ page, serverURL, customRoutes: { admin: adminRoute } })
|
|
|
|
await ensureCompilationIsDone({
|
|
customRoutes: {
|
|
admin: adminRoute,
|
|
},
|
|
page,
|
|
serverURL,
|
|
})
|
|
})
|
|
|
|
test('renders admin panel at root', async () => {
|
|
await page.goto(url.admin)
|
|
const pageURL = page.url()
|
|
expect(pageURL).toBe(url.admin)
|
|
expect(pageURL).not.toContain('/admin')
|
|
})
|
|
|
|
test('collection — navigates to list view', async () => {
|
|
await page.goto(url.list)
|
|
const pageURL = page.url()
|
|
expect(pageURL).toContain(url.list)
|
|
expect(pageURL).not.toContain('/admin')
|
|
})
|
|
|
|
test('global — navigates to edit view', async () => {
|
|
await page.goto(url.global('menu'))
|
|
const pageURL = page.url()
|
|
expect(pageURL).toBe(url.global('menu'))
|
|
expect(pageURL).not.toContain('/admin')
|
|
})
|
|
})
|