import { cleanup, fireEvent, render, screen } from "@testing-library/react";
import { afterEach, expect, it, vi } from "vitest";
vi.mock("@termix/plugin-sdk/frontend", () => ({
useTranslation: () => {
throw Error("No plugin scope in the global toaster");
},
}));
import { DownloadProgressToast } from "../../src/frontend/components/DownloadProgressToast";
import { TransferProgressToast } from "../../src/frontend/components/TransferProgressToast";
import { LocalTransferProgressToast } from "../../src/frontend/components/LocalTransferProgressToast";
afterEach(cleanup);
const t = (key: string) => key;
it("renders download progress outside plugin scope", () => {
render(
,
);
expect(screen.getByRole("progressbar").getAttribute("aria-valuenow")).toBe(
"50",
);
});
it("renders host transfer progress outside plugin scope", () => {
render(
,
);
expect(screen.getByRole("progressbar")).toBeTruthy();
});
it("preserves cancellation on local transfers outside plugin scope", () => {
const cancel = vi.fn();
render(
,
);
fireEvent.click(screen.getByRole("button"));
expect(cancel).toHaveBeenCalledOnce();
});