summaryrefslogtreecommitdiffhomepage
path: root/src/features/views/ui/ViewSidebar.test.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-27 01:13:28 +0900
committerAdam Malczewski <[email protected]>2026-06-27 01:13:31 +0900
commit2fa03f8d7410c2b8d6be8e10ad088863e83d7177 (patch)
tree94e1923180ae38d571d34b578afecb0a18913c24 /src/features/views/ui/ViewSidebar.test.ts
parent80f99665034a0e510300793205c162fc7a46769f (diff)
parent08b12478636f4a5c86a1f3c40a843f2906b7c82f (diff)
downloaddispatch-web-2fa03f8d7410c2b8d6be8e10ad088863e83d7177.tar.gz
dispatch-web-2fa03f8d7410c2b8d6be8e10ad088863e83d7177.zip
Merge branch 'dev' into feature/heartbeat
# Conflicts: # src/app/App.svelte # src/app/store.svelte.ts # src/app/store.test.ts # src/features/workspaces/ui/WorkspaceCard.test.ts
Diffstat (limited to 'src/features/views/ui/ViewSidebar.test.ts')
-rw-r--r--src/features/views/ui/ViewSidebar.test.ts76
1 files changed, 38 insertions, 38 deletions
diff --git a/src/features/views/ui/ViewSidebar.test.ts b/src/features/views/ui/ViewSidebar.test.ts
index 8a0049c..0618506 100644
--- a/src/features/views/ui/ViewSidebar.test.ts
+++ b/src/features/views/ui/ViewSidebar.test.ts
@@ -5,54 +5,54 @@ import { describe, expect, it } from "vitest";
import ViewSidebar from "./ViewSidebar.svelte";
const kinds = [
- { id: "surfaces", label: "Surfaces" },
- { id: "tasks", label: "Tasks" },
+ { id: "surfaces", label: "Surfaces" },
+ { id: "tasks", label: "Tasks" },
];
// A raw snippet that echoes the kind it was rendered for, so tests can assert
// which view-kind content each panel shows.
const content = createRawSnippet<[string]>((kind) => ({
- render: () => `<div data-testid="view-content">kind:${kind()}</div>`,
+ render: () => `<div data-testid="view-content">kind:${kind()}</div>`,
}));
describe("ViewSidebar", () => {
- it("opens one panel seeded with the first kind and renders its content", () => {
- render(ViewSidebar, { props: { kinds, content } });
- expect(screen.getAllByRole("combobox")).toHaveLength(1);
- expect(screen.getByTestId("view-content")).toHaveTextContent("kind:surfaces");
- });
+ it("opens one panel seeded with the first kind and renders its content", () => {
+ render(ViewSidebar, { props: { kinds, content } });
+ expect(screen.getAllByRole("combobox")).toHaveLength(1);
+ expect(screen.getByTestId("view-content")).toHaveTextContent("kind:surfaces");
+ });
- it("the first panel has no remove button", () => {
- render(ViewSidebar, { props: { kinds, content } });
- expect(screen.queryByRole("button", { name: "Remove view" })).toBeNull();
- });
+ it("the first panel has no remove button", () => {
+ render(ViewSidebar, { props: { kinds, content } });
+ expect(screen.queryByRole("button", { name: "Remove view" })).toBeNull();
+ });
- it("the add button appends a new empty panel", async () => {
- const user = userEvent.setup();
- render(ViewSidebar, { props: { kinds, content } });
- await user.click(screen.getByRole("button", { name: "Add view" }));
- expect(screen.getAllByRole("combobox")).toHaveLength(2);
- // the new panel is empty → only the first panel renders content
- expect(screen.getAllByTestId("view-content")).toHaveLength(1);
- });
+ it("the add button appends a new empty panel", async () => {
+ const user = userEvent.setup();
+ render(ViewSidebar, { props: { kinds, content } });
+ await user.click(screen.getByRole("button", { name: "Add view" }));
+ expect(screen.getAllByRole("combobox")).toHaveLength(2);
+ // the new panel is empty → only the first panel renders content
+ expect(screen.getAllByTestId("view-content")).toHaveLength(1);
+ });
- it("non-first panels can be removed", async () => {
- const user = userEvent.setup();
- render(ViewSidebar, { props: { kinds, content } });
- await user.click(screen.getByRole("button", { name: "Add view" }));
- const removeButtons = screen.getAllByRole("button", { name: "Remove view" });
- expect(removeButtons).toHaveLength(1);
- const target = removeButtons[0];
- if (target === undefined) throw new Error("expected a remove button");
- await user.click(target);
- expect(screen.getAllByRole("combobox")).toHaveLength(1);
- });
+ it("non-first panels can be removed", async () => {
+ const user = userEvent.setup();
+ render(ViewSidebar, { props: { kinds, content } });
+ await user.click(screen.getByRole("button", { name: "Add view" }));
+ const removeButtons = screen.getAllByRole("button", { name: "Remove view" });
+ expect(removeButtons).toHaveLength(1);
+ const target = removeButtons[0];
+ if (target === undefined) throw new Error("expected a remove button");
+ await user.click(target);
+ expect(screen.getAllByRole("combobox")).toHaveLength(1);
+ });
- it("selecting a kind renders that kind's content", async () => {
- const user = userEvent.setup();
- render(ViewSidebar, { props: { kinds, content, initial: [null] } });
- expect(screen.queryByTestId("view-content")).toBeNull();
- await user.selectOptions(screen.getByRole("combobox"), "tasks");
- expect(screen.getByTestId("view-content")).toHaveTextContent("kind:tasks");
- });
+ it("selecting a kind renders that kind's content", async () => {
+ const user = userEvent.setup();
+ render(ViewSidebar, { props: { kinds, content, initial: [null] } });
+ expect(screen.queryByTestId("view-content")).toBeNull();
+ await user.selectOptions(screen.getByRole("combobox"), "tasks");
+ expect(screen.getByTestId("view-content")).toHaveTextContent("kind:tasks");
+ });
});