mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 10:50:38 +09:00
94 lines
2.5 KiB
TypeScript
94 lines
2.5 KiB
TypeScript
|
|
// @vitest-environment jsdom
|
||
|
|
|
||
|
|
import { act } from "react";
|
||
|
|
import type { ComponentProps } from "react";
|
||
|
|
import { createRoot } from "react-dom/client";
|
||
|
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||
|
|
import { FailedRunInboxRow } from "./Inbox";
|
||
|
|
|
||
|
|
vi.mock("@/lib/router", () => ({
|
||
|
|
Link: ({ children, className, ...props }: ComponentProps<"a">) => (
|
||
|
|
<a className={className} {...props}>{children}</a>
|
||
|
|
),
|
||
|
|
useLocation: () => ({ pathname: "/", search: "", hash: "" }),
|
||
|
|
useNavigate: () => () => {},
|
||
|
|
}));
|
||
|
|
|
||
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||
|
|
(globalThis as any).IS_REACT_ACT_ENVIRONMENT = true;
|
||
|
|
|
||
|
|
describe("FailedRunInboxRow", () => {
|
||
|
|
let container: HTMLDivElement;
|
||
|
|
|
||
|
|
beforeEach(() => {
|
||
|
|
container = document.createElement("div");
|
||
|
|
document.body.appendChild(container);
|
||
|
|
});
|
||
|
|
|
||
|
|
afterEach(() => {
|
||
|
|
container.remove();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("suppresses accent hover styling when selected", () => {
|
||
|
|
const root = createRoot(container);
|
||
|
|
const run = {
|
||
|
|
id: "run-1",
|
||
|
|
companyId: "company-1",
|
||
|
|
agentId: "agent-1",
|
||
|
|
invocationSource: "assignment",
|
||
|
|
triggerDetail: null,
|
||
|
|
status: "failed",
|
||
|
|
error: "boom",
|
||
|
|
wakeupRequestId: null,
|
||
|
|
exitCode: null,
|
||
|
|
signal: null,
|
||
|
|
usageJson: null,
|
||
|
|
resultJson: null,
|
||
|
|
sessionIdBefore: null,
|
||
|
|
sessionIdAfter: null,
|
||
|
|
logStore: null,
|
||
|
|
logRef: null,
|
||
|
|
logBytes: null,
|
||
|
|
logSha256: null,
|
||
|
|
logCompressed: false,
|
||
|
|
errorCode: null,
|
||
|
|
externalRunId: null,
|
||
|
|
processPid: null,
|
||
|
|
processStartedAt: null,
|
||
|
|
retryOfRunId: null,
|
||
|
|
processLossRetryCount: 0,
|
||
|
|
stdoutExcerpt: null,
|
||
|
|
stderrExcerpt: null,
|
||
|
|
contextSnapshot: null,
|
||
|
|
startedAt: new Date("2026-03-11T00:00:00.000Z"),
|
||
|
|
finishedAt: null,
|
||
|
|
createdAt: new Date("2026-03-11T00:00:00.000Z"),
|
||
|
|
updatedAt: new Date("2026-03-11T00:00:00.000Z"),
|
||
|
|
} as const;
|
||
|
|
|
||
|
|
act(() => {
|
||
|
|
root.render(
|
||
|
|
<FailedRunInboxRow
|
||
|
|
run={run}
|
||
|
|
issueById={new Map()}
|
||
|
|
agentName="Agent"
|
||
|
|
issueLinkState={null}
|
||
|
|
onDismiss={() => {}}
|
||
|
|
onRetry={() => {}}
|
||
|
|
isRetrying={false}
|
||
|
|
selected
|
||
|
|
/>,
|
||
|
|
);
|
||
|
|
});
|
||
|
|
|
||
|
|
const link = container.querySelector("a");
|
||
|
|
expect(link).not.toBeNull();
|
||
|
|
expect(link?.className).toContain("hover:bg-transparent");
|
||
|
|
expect(link?.className).not.toContain("hover:bg-accent/50");
|
||
|
|
|
||
|
|
act(() => {
|
||
|
|
root.unmount();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
});
|