import path from "node:path"; import { fileURLToPath } from "node:url"; import { NZAP_TEST_ID } from "~/db/seed/constants"; import { expect, impersonate, navigate, seed, test, } from "./helpers/playwright"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); test.describe("Art", () => { test("uploads art as NZAP, admin approves, art displays on user page", async ({ page, }) => { await seed(page); await impersonate(page, NZAP_TEST_ID); await navigate({ page, url: "/art/new" }); const testImagePath = path.join(__dirname, "fixtures/test-image.png"); await page.locator('input[type="file"]').setInputFiles(testImagePath); await expect(page.locator("form img")).toBeVisible(); await page.getByRole("button", { name: "Save" }).click(); await expect(page).toHaveURL(/\/u\/.*\/art/); await expect(page.getByText(/pending moderator approval/i)).toBeVisible(); await impersonate(page); await navigate({ page, url: "/upload/admin" }); await expect(page.locator("img").first()).toBeVisible(); await page.getByRole("button", { name: /All .* above ok/ }).click(); await expect(page.getByText("All validated!")).toBeVisible(); await navigate({ page, url: "/u/nzap/art" }); const artImage = page.locator("img").first(); await expect(artImage).toBeVisible(); const box = await artImage.boundingBox(); expect(box).not.toBeNull(); expect(box!.width).toBeGreaterThan(0); expect(box!.height).toBeGreaterThan(0); }); });