From aa80ddfb3a313ddbd9128fce338dfbd6be141385 Mon Sep 17 00:00:00 2001 From: Simon Schulte Date: Fri, 15 May 2026 13:57:31 +0200 Subject: [PATCH] Remove Shortcut references from discover modal --- web/src/DiscoverTicketsModal.tsx | 6 +- .../__tests__/DiscoverTicketsModal.test.tsx | 64 +++++++++++++++++++ 2 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 web/src/__tests__/DiscoverTicketsModal.test.tsx diff --git a/web/src/DiscoverTicketsModal.tsx b/web/src/DiscoverTicketsModal.tsx index 00a84dd..7c7825f 100644 --- a/web/src/DiscoverTicketsModal.tsx +++ b/web/src/DiscoverTicketsModal.tsx @@ -14,12 +14,12 @@ export function DiscoverTicketsModal({ repoPath, tickets, loading, error, onAdd,
event.stopPropagation()}>

Discover Tickets

-

Shortcut stories tagged "auto-pr" that are not done or in progress for {repoPath}.

+

Available tickets for {repoPath}.

{error ?
{error}
: null} {loading ? ( -

Searching Shortcut...

+

Fetching Tickets...

) : tickets.length === 0 && !error ? ( -

No matching tickets found.

+

No Tickets available.

) : (
    {tickets.map((ticket) => ( diff --git a/web/src/__tests__/DiscoverTicketsModal.test.tsx b/web/src/__tests__/DiscoverTicketsModal.test.tsx new file mode 100644 index 0000000..c8ca14e --- /dev/null +++ b/web/src/__tests__/DiscoverTicketsModal.test.tsx @@ -0,0 +1,64 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { render, screen, fireEvent } from "@testing-library/react"; +import { DiscoverTicketsModal } from "../DiscoverTicketsModal"; + +const defaultProps = { + repoPath: "/repo/path", + tickets: [], + loading: false, + error: "", + onAdd: vi.fn(), + onClose: vi.fn(), +}; + +beforeEach(() => vi.clearAllMocks()); + +describe("DiscoverTicketsModal", () => { + it("renders generic copy without Shortcut references", () => { + render(); + + expect(screen.getByText("Available tickets for /repo/path.")).toBeInTheDocument(); + expect(screen.getByText("No Tickets available.")).toBeInTheDocument(); + expect(screen.queryByText(/shortcut/i)).not.toBeInTheDocument(); + }); + + it("shows generic loading copy", () => { + render(); + + expect(screen.getByText("Fetching Tickets...")).toBeInTheDocument(); + expect(screen.queryByText(/shortcut/i)).not.toBeInTheDocument(); + }); + + it("renders discovered tickets and calls onAdd", () => { + const onAdd = vi.fn(); + render( + + ); + + fireEvent.click(screen.getAllByRole("button", { name: "Add" })[0]); + expect(onAdd).toHaveBeenCalledWith("GH-4"); + }); + + it("calls onClose when the backdrop is clicked", () => { + const onClose = vi.fn(); + const { container } = render(); + + fireEvent.click(container.querySelector(".modal-backdrop")!); + expect(onClose).toHaveBeenCalledOnce(); + }); + + it("does not call onClose when the modal body is clicked", () => { + const onClose = vi.fn(); + const { container } = render(); + + fireEvent.click(container.querySelector(".modal")!); + expect(onClose).not.toHaveBeenCalled(); + }); +});