diff options
| author | Adam Malczewski <[email protected]> | 2026-10-19 13:38:57 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-10-19 13:38:57 +0900 |
| commit | c4397f633415a46852f0e3b49c78ab7b2d87d4c1 (patch) | |
| tree | 047a5687565059422cbb38aeda8988502a66b78d /src/features/workspaces/adapter/http.test.ts | |
| parent | f6d96289470ac888670050ff64c54bbe69b973cb (diff) | |
| download | dispatch-web-c4397f633415a46852f0e3b49c78ab7b2d87d4c1.tar.gz dispatch-web-c4397f633415a46852f0e3b49c78ab7b2d87d4c1.zip | |
feat(workspaces): block creating a workspace whose slug is archived
Diffstat (limited to 'src/features/workspaces/adapter/http.test.ts')
| -rw-r--r-- | src/features/workspaces/adapter/http.test.ts | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/features/workspaces/adapter/http.test.ts b/src/features/workspaces/adapter/http.test.ts index 2e34822..d6409ca 100644 --- a/src/features/workspaces/adapter/http.test.ts +++ b/src/features/workspaces/adapter/http.test.ts @@ -79,15 +79,37 @@ describe("createWorkspaceHttp", () => { expect(result).toEqual({ ok: false, error: "invalid slug" }); }); - it("get returns null on 404", async () => { + it("get reports a missing lookup on 404", async () => { const http = createWorkspaceHttp(BASE, fakeFetch([{ status: 404 }])); - expect(await http.get("nope")).toBeNull(); + expect(await http.get("nope")).toEqual({ kind: "missing" }); }); it("get returns the workspace on 200", async () => { - const ws = { id: "x", title: "X", defaultCwd: "/home", createdAt: 1, lastActivityAt: 2 }; + const ws = { + id: "x", + title: "X", + defaultCwd: "/home", + defaultComputerId: null, + starred: false, + archived: false, + createdAt: 1, + lastActivityAt: 2, + }; const http = createWorkspaceHttp(BASE, fakeFetch([{ body: ws }])); - expect(await http.get("x")).toEqual(ws); + expect(await http.get("x")).toEqual({ kind: "found", workspace: ws }); + }); + + it("get distinguishes a failed response from 404 (not 'missing')", async () => { + const http = createWorkspaceHttp( + BASE, + fakeFetch([{ status: 500, body: { error: "db down" } }]), + ); + expect(await http.get("x")).toEqual({ kind: "failed", error: "db down" }); + }); + + it("get reports a network error as failed (not 'missing')", async () => { + const http = createWorkspaceHttp(BASE, fakeFetch([new Error("network")])); + expect(await http.get("x")).toEqual({ kind: "failed", error: "network" }); }); it("setTitle PUTs the title", async () => { |
