diff options
| author | Adam Malczewski <[email protected]> | 2026-06-25 22:45:51 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-25 22:45:51 +0900 |
| commit | 1285564f12238b22f6b39b9f3fbcecaca8456911 (patch) | |
| tree | 9d8ca532969a5a11ee61b5c42135ac6f54159183 /src/features/workspaces/ui/WorkspaceCard.test.ts | |
| parent | c5ea2232f117adda740c7e3b8366e9f10f14d3cb (diff) | |
| parent | cdce5197abcf0f5b0576e847a701d3a317384a65 (diff) | |
| download | dispatch-web-1285564f12238b22f6b39b9f3fbcecaca8456911.tar.gz dispatch-web-1285564f12238b22f6b39b9f3fbcecaca8456911.zip | |
Merge branch 'feature/ssh-support' into dev
# Conflicts:
# src/features/workspaces/ui/WorkspaceCard.svelte
# src/features/workspaces/ui/WorkspaceCard.test.ts
# src/features/workspaces/ui/WorkspacesHome.svelte
Diffstat (limited to 'src/features/workspaces/ui/WorkspaceCard.test.ts')
| -rw-r--r-- | src/features/workspaces/ui/WorkspaceCard.test.ts | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/features/workspaces/ui/WorkspaceCard.test.ts b/src/features/workspaces/ui/WorkspaceCard.test.ts index 0264d5f..f6ea432 100644 --- a/src/features/workspaces/ui/WorkspaceCard.test.ts +++ b/src/features/workspaces/ui/WorkspaceCard.test.ts @@ -11,6 +11,7 @@ function fakeEntry(overrides: Partial<WorkspaceEntry> = {}): WorkspaceEntry { id: "my-ws", title: "My Workspace", defaultCwd: null, + defaultComputerId: null, createdAt: 1, lastActivityAt: 2, conversationCount: 3, @@ -33,6 +34,12 @@ function fakeStore() { value: fakeEntry({ id, defaultCwd }), }), ), + setDefaultComputer: vi.fn( + async (id: string, computerId: string | null): Promise<WorkspaceResult<WorkspaceEntry>> => ({ + ok: true, + value: fakeEntry({ id, defaultComputerId: computerId }), + }), + ), remove: vi.fn( async (): Promise<WorkspaceResult<{ closedCount: number }>> => ({ ok: true, @@ -46,7 +53,7 @@ describe("WorkspaceCard", () => { it("renders the title, slug, and an Open link", () => { const store = fakeStore() as unknown as WorkspaceStore; render(WorkspaceCard, { - props: { ws: fakeEntry(), store }, + props: { ws: fakeEntry(), store, onNavigate, computers: [] }, }); expect(screen.getByText("My Workspace")).toBeInTheDocument(); expect(screen.getByText("/my-ws")).toBeInTheDocument(); @@ -56,7 +63,9 @@ describe("WorkspaceCard", () => { it("double-clicking the title reveals an edit input", async () => { const user = userEvent.setup(); const store = fakeStore() as unknown as WorkspaceStore; - render(WorkspaceCard, { props: { ws: fakeEntry(), store } }); + render(WorkspaceCard, { + props: { ws: fakeEntry(), store, onNavigate: vi.fn(), computers: [] }, + }); await user.dblClick(screen.getByText("My Workspace")); expect(screen.getByLabelText("Workspace title")).toHaveValue("My Workspace"); @@ -65,7 +74,9 @@ describe("WorkspaceCard", () => { it("renames via the store on Enter", async () => { const user = userEvent.setup(); const store = fakeStore() as unknown as WorkspaceStore; - render(WorkspaceCard, { props: { ws: fakeEntry(), store } }); + render(WorkspaceCard, { + props: { ws: fakeEntry(), store, onNavigate: vi.fn(), computers: [] }, + }); await user.dblClick(screen.getByText("My Workspace")); const input = screen.getByLabelText("Workspace title"); @@ -79,7 +90,7 @@ describe("WorkspaceCard", () => { const user = userEvent.setup(); const store = fakeStore() as unknown as WorkspaceStore; render(WorkspaceCard, { - props: { ws: fakeEntry({ defaultCwd: "/old" }), store }, + props: { ws: fakeEntry({ defaultCwd: "/old" }), store, onNavigate: vi.fn(), computers: [] }, }); const input = screen.getByLabelText("Default working directory"); @@ -98,7 +109,7 @@ describe("WorkspaceCard", () => { const user = userEvent.setup(); const store = fakeStore() as unknown as WorkspaceStore; render(WorkspaceCard, { - props: { ws: fakeEntry({ defaultCwd: "/old" }), store }, + props: { ws: fakeEntry({ defaultCwd: "/old" }), store, onNavigate: vi.fn(), computers: [] }, }); const input = screen.getByLabelText("Default working directory"); @@ -110,7 +121,8 @@ describe("WorkspaceCard", () => { it("the Open link opens the workspace in a new browser tab (no same-tab navigation)", () => { const store = fakeStore() as unknown as WorkspaceStore; - render(WorkspaceCard, { props: { ws: fakeEntry(), store } }); + const onNavigate = vi.fn(); + render(WorkspaceCard, { props: { ws: fakeEntry(), store, onNavigate, computers: [] } }); const open = screen.getByRole("link", { name: "Open" }); // Native new-tab link: href points at the workspace, and target="_blank" |
