// @vitest-environment jsdom import { flushSync } from "react-dom"; import { createRoot } from "react-dom/client"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; const state = vi.hoisted(() => ({ issueStatus: "todo", queriedIssueIds: [] as string[] })); vi.mock("@tanstack/react-query", () => ({ useQueryClient: () => ({ invalidateQueries: vi.fn(), setQueryData: vi.fn() }), useMutation: () => ({ isPending: false, error: null, mutate: vi.fn() }), useQuery: ({ queryKey }: { queryKey: readonly string[] }) => queryKey[1] === "detail" ? { data: { id: "decision-1", companyId: "company-1", originAgentId: "agent-1", originIssueId: "origin-1", status: "open", targetSnapshots: { "target-1": { updatedAt: "2026-07-31T00:00:00.000Z" } }, options: [{ id: "yes", label: "Yes", effects: [ { type: "create_issue", targetIssueId: "target-1", staleness: "strict", draft: { title: "Follow-up", parentId: "parent-1", blockedByIssueIds: ["blocker-1"] }, }, { type: "resolve_blocker", targetIssueId: "target-1", staleness: "strict", removeBlockedByIssueIds: ["removed-blocker-1"], }, ] }], executions: [], }, isLoading: false, error: null, } : { data: [], isLoading: false, error: null }, useQueries: ({ queries, combine, }: { queries: Array<{ queryKey: readonly string[] }>; combine?: (results: Array<{ data: { id: string; identifier: string; title: string; status: string } }>) => unknown; }) => { state.queriedIssueIds = queries.map((query) => String(query.queryKey[2])); const results = queries.map((query) => ({ data: { id: String(query.queryKey[2]), identifier: "PAP-1", title: "Target", status: state.issueStatus }, })); return combine ? combine(results) : results; }, })); vi.mock("../context/CompanyContext", () => ({ useCompany: () => ({ selectedCompany: { issuePrefix: "PAP" } }), })); vi.mock("./DecisionCard", () => ({ DecisionCard: ({ resolveIssue }: { resolveIssue: (id: string) => { status: string | null } | null }) => (