Files
tibi-svelte-starter/tests/global-teardown.ts
T
apairon 1b24bb2157 feat: enhance admin API helpers with CRUD operations for collections and seed data management
- 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.
2026-05-12 20:36:06 +00:00

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