import { MantineProvider } from "@mantine/core"; import { fireEvent, render, screen } from "@testing-library/react"; import { assert, describe, expect, it } from "vitest"; import { EntryCard } from "./EntryCard"; describe("EntryCard", () => { it("does not leak a numeric zero from an absent action", () => { render( , ); expect(screen.queryByText("0")).not.toBeInTheDocument(); }); it("keeps a failed image fallback until a new source is supplied", () => { const props = { imageSrc: "data:image/png;base64,invalid", initial: "У", metadata: "Описание", title: "Пример", tone: "neutral" as const, value: "—", valueLabel: "Неизвестно", }; const { rerender } = render( , ); // Decorative image has no accessible name; trigger its actual failure event. const image = screen.queryByAltText(""); assert(image); fireEvent.error(image); rerender( , ); expect(screen.queryByAltText("")).not.toBeInTheDocument(); expect(screen.getByText("У")).toBeInTheDocument(); expect(screen.getByText("Обновлённый пример")).toBeInTheDocument(); rerender( , ); expect(screen.queryByAltText("")).toHaveAttribute( "src", "/replacement-logo.png", ); expect(screen.queryByText("У")).not.toBeInTheDocument(); }); });