1b24bb2157
- Added functions for creating, updating, deleting, and listing collection entries in admin API. - Introduced seed data management for consistent test content across tests. - Updated global setup and teardown processes to ensure seeded content is created and cleaned up. - Refactored existing tests to utilize seeded content for improved reliability and maintainability.
45 lines
1.6 KiB
TypeScript
45 lines
1.6 KiB
TypeScript
import { cleanupAllTestData, disposeAdminApi } from "./api/helpers/admin-api"
|
|
import { deleteAllEmails, disposeMailDev } from "./api/helpers/maildev"
|
|
import { cleanupSeededTestContent } from "./api/helpers/seed-data"
|
|
import { TEST_BASE_URL } from "./fixtures/test-constants"
|
|
|
|
async function globalTeardown() {
|
|
const baseURL = TEST_BASE_URL
|
|
|
|
try {
|
|
const probeContext = await import("@playwright/test").then(({ request }) =>
|
|
request.newContext({ baseURL, ignoreHTTPSErrors: true })
|
|
)
|
|
const apiProbe = await probeContext.get("/api/content?limit=1")
|
|
const contentType = apiProbe.headers()["content-type"] || ""
|
|
await probeContext.dispose()
|
|
|
|
if (!apiProbe.ok() || contentType.includes("text/html")) {
|
|
console.warn(
|
|
`Playwright teardown: skipped seeded cleanup because ${baseURL} has no usable /api endpoint (${apiProbe.status()} ${contentType || "without content-type"})`
|
|
)
|
|
return
|
|
}
|
|
|
|
const deletedSeedEntries = await cleanupSeededTestContent(baseURL)
|
|
const result = await cleanupAllTestData(baseURL)
|
|
if (deletedSeedEntries > 0 || result.users > 0) {
|
|
console.log(
|
|
`Playwright teardown: deleted ${deletedSeedEntries} seeded content entries and ${result.users} test users`
|
|
)
|
|
}
|
|
} catch (err) {
|
|
console.warn("Playwright teardown: test data cleanup failed:", err)
|
|
}
|
|
|
|
try {
|
|
await deleteAllEmails()
|
|
} catch {
|
|
// MailDev cleanup is optional.
|
|
}
|
|
|
|
await Promise.all([disposeAdminApi(), disposeMailDev()])
|
|
}
|
|
|
|
export default globalTeardown
|