import { createElement } from "react"; import { cleanup, render, screen } from "@testing-library/react"; import { afterEach, describe, expect, it } from "vitest"; import { MissionCard } from "@/components/frontend/intelligence/MissionCard"; const mission = { id: 1, name: "Operation Nightfall", codeName: "OP:NIGHTFALL", summary: "Secure the extraction corridor.", operationType: "main" as const, classification: { missionType: "PvE" as const, startDateTime: "2026-08-20T19:30:00.000Z", estimatedDuration: 90, map: 2, campaign: 3, }, ownershipAndStatus: { status: "Scheduled" as const, }, missionRoles: { maxPlayers: 12, }, coverImage: { id: 8, updatedAt: "2026-08-20T00:00:00.000Z", createdAt: "2026-08-20T00:00:00.000Z", url: "/media/nightfall.webp", }, }; describe("MissionCard", () => { afterEach(() => { cleanup(); }); it("uses the cover image by default and keeps full metadata visible", () => { render(createElement(MissionCard, { mission, showFullDetails: true })); const image = document.querySelector("img"); expect(image?.getAttribute("src")).toBe("/media/nightfall.webp"); expect(screen.getByText("1h 30m")).toBeTruthy(); expect(screen.getByText("12 slots")).toBeTruthy(); }); it("suppresses the cover image when the default variant is requested", () => { render(createElement(MissionCard, { mission, variant: "default" })); expect(document.querySelector("img")).toBeNull(); }); });