Files
prowler/ui/lib/finding-triage-update.test.ts
T

49 lines
1.3 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
import { UsageLimitError } from "@/lib/action-errors";
import {
FINDING_TRIAGE_STATUS,
type UpdateFindingTriageInput,
} from "@/types/findings-triage";
const { updateFindingTriageMock } = vi.hoisted(() => ({
updateFindingTriageMock: vi.fn(),
}));
vi.mock("@/actions/findings", () => ({
updateFindingTriage: updateFindingTriageMock,
}));
import { updateFindingTriageOrThrow } from "./finding-triage-update";
const input: UpdateFindingTriageInput = {
findingId: "finding-1",
findingUid: "finding/uid",
triageId: "triage-1",
notesCount: 0,
status: FINDING_TRIAGE_STATUS.UNDER_REVIEW,
previousStatus: FINDING_TRIAGE_STATUS.OPEN,
};
describe("updateFindingTriageOrThrow", () => {
beforeEach(() => {
updateFindingTriageMock.mockReset();
});
it("throws a usage-limit error when the plan refuses the update", async () => {
updateFindingTriageMock.mockResolvedValue({ usageLimited: true });
await expect(updateFindingTriageOrThrow(input)).rejects.toBeInstanceOf(
UsageLimitError,
);
});
it("returns the update result otherwise", async () => {
updateFindingTriageMock.mockResolvedValue({ manualPassExpiresAt: null });
await expect(updateFindingTriageOrThrow(input)).resolves.toEqual({
manualPassExpiresAt: null,
});
});
});