From 19ac69bba33e809e5c91c0f330554df02525746f Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 8 May 2026 16:25:19 +0100 Subject: [PATCH] test: require session view controls --- ui/src/ui/views/sessions.test.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/ui/src/ui/views/sessions.test.ts b/ui/src/ui/views/sessions.test.ts index d2a9140db7a..ac401c45790 100644 --- a/ui/src/ui/views/sessions.test.ts +++ b/ui/src/ui/views/sessions.test.ts @@ -191,7 +191,8 @@ describe("sessions view", () => { expect(toggle?.getAttribute("aria-expanded")).toBe("false"); expect(container.querySelector(".sessions-filter-bar")).toBeNull(); - toggle?.click(); + expect(toggle).toBeInstanceOf(HTMLButtonElement); + toggle!.click(); expect(onToggleFiltersCollapsed).toHaveBeenCalledTimes(1); }); @@ -492,8 +493,9 @@ describe("sessions view", () => { ); await Promise.resolve(); - const row = container.querySelector("tbody tr.session-data-row"); - row?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + const row = container.querySelector("tbody tr.session-data-row"); + expect(row).toBeInstanceOf(HTMLTableRowElement); + row!.dispatchEvent(new MouseEvent("click", { bubbles: true })); expect(onToggleCheckpointDetails).toHaveBeenCalledWith("agent:main:main"); const tokenCell = container.querySelector(".session-token-cell"); @@ -531,7 +533,8 @@ describe("sessions view", () => { expect(trigger?.getAttribute("aria-expanded")).toBe("false"); expect(container.querySelector(".session-checkpoint-toggle")).toBeNull(); - trigger?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + expect(trigger).toBeInstanceOf(HTMLButtonElement); + trigger!.dispatchEvent(new MouseEvent("click", { bubbles: true })); expect(onToggleCheckpointDetails).toHaveBeenCalledWith("agent:main:main"); }); @@ -623,9 +626,11 @@ describe("sessions view", () => { await Promise.resolve(); const rows = container.querySelectorAll("tbody tr.session-data-row"); - const checkbox = rows[0]?.querySelector("input[type=checkbox]"); - checkbox?.dispatchEvent(new MouseEvent("click", { bubbles: true })); - rows[1]?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + const checkbox = rows[0]?.querySelector("input[type=checkbox]"); + expect(checkbox).toBeInstanceOf(HTMLInputElement); + expect(rows[1]).toBeInstanceOf(HTMLTableRowElement); + checkbox!.dispatchEvent(new MouseEvent("click", { bubbles: true })); + rows[1]!.dispatchEvent(new MouseEvent("click", { bubbles: true })); expect(onToggleCheckpointDetails).not.toHaveBeenCalled(); }); @@ -727,8 +732,9 @@ describe("sessions view", () => { ); await Promise.resolve(); - const headerCheckbox = container.querySelector("thead input[type=checkbox]"); - headerCheckbox?.dispatchEvent(new Event("change", { bubbles: true })); + const headerCheckbox = container.querySelector("thead input[type=checkbox]"); + expect(headerCheckbox).toBeInstanceOf(HTMLInputElement); + headerCheckbox!.dispatchEvent(new Event("change", { bubbles: true })); expect(onDeselectPage).toHaveBeenCalledWith(["page-0"]); expect(onDeselectAll).not.toHaveBeenCalled();