1
0
Fork 0
polaris-task-force/tests/int/mission-card.int.spec.ts

52 lines
1.5 KiB
TypeScript

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();
});
});