From bcc4517d991aab92fb8d082a87d99c3a27366965 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 9 Jul 2026 11:37:09 +0100 Subject: [PATCH] test(ui): align sidebar ordering coverage (#102660) --- ui/src/e2e/chat-flow.e2e.test.ts | 27 +++++++++----------------- ui/src/lib/sessions/navigation.test.ts | 2 +- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/ui/src/e2e/chat-flow.e2e.test.ts b/ui/src/e2e/chat-flow.e2e.test.ts index 6db78ada9c1..8fc6bdda445 100644 --- a/ui/src/e2e/chat-flow.e2e.test.ts +++ b/ui/src/e2e/chat-flow.e2e.test.ts @@ -2074,7 +2074,7 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { } }); - it("keeps sidebar session order stable while selecting sessions and supports sort modes", async () => { + it("keeps every sidebar session stable while selecting sessions and supports sort modes", async () => { const context = await newBrowserContext({ locale: "en-US", serviceWorkers: "block", @@ -2085,6 +2085,9 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { { length: 11 }, (_, index) => `agent:main:session-${String.fromCharCode(97 + index)}`, ); + const pinnedSessionKey = "agent:main:session-pinned"; + const createdOrder = [pinnedSessionKey, ...createdSessionKeys]; + const updatedOrder = [pinnedSessionKey, ...createdSessionKeys.toReversed()]; const sessions = { count: createdSessionKeys.length + 1, defaults: { @@ -2095,7 +2098,7 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { path: "", sessions: [ { - key: "agent:main:session-pinned", + key: pinnedSessionKey, kind: "direct", label: "Pinned Session", pinned: true, @@ -2123,9 +2126,7 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { .waitFor({ timeout: 10_000, }); - await expect - .poll(() => sidebarSessionOrder(page)) - .toEqual(["agent:main:session-pinned", ...createdSessionKeys.slice(0, 9)]); + await expect.poll(() => sidebarSessionOrder(page)).toEqual(createdOrder); await page .locator( @@ -2135,9 +2136,7 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { await page.locator(".sidebar-recent-session--active").getByText("Session B").waitFor({ timeout: 10_000, }); - await expect - .poll(() => sidebarSessionOrder(page)) - .toEqual(["agent:main:session-pinned", ...createdSessionKeys.slice(0, 9)]); + await expect.poll(() => sidebarSessionOrder(page)).toEqual(createdOrder); const activeWeight = await page .locator('.sidebar-recent-session[data-session-key="agent:main:session-b"]') @@ -2151,19 +2150,11 @@ describeControlUiE2e("Control UI mocked Gateway E2E", () => { await page.getByRole("button", { name: "Sort sessions" }).click(); await page.getByRole("menuitemradio", { name: "Last updated" }).click(); - await expect - .poll(() => sidebarSessionOrder(page)) - .toEqual([ - "agent:main:session-pinned", - "agent:main:session-b", - ...createdSessionKeys.slice(2).toReversed(), - ]); + await expect.poll(() => sidebarSessionOrder(page)).toEqual(updatedOrder); await page.getByRole("button", { name: "Sort sessions" }).click(); await page.getByRole("menuitemradio", { name: "Created" }).click(); - await expect - .poll(() => sidebarSessionOrder(page)) - .toEqual(["agent:main:session-pinned", ...createdSessionKeys.slice(0, 9)]); + await expect.poll(() => sidebarSessionOrder(page)).toEqual(createdOrder); await page.getByRole("button", { name: "Sort sessions" }).click(); await page.getByRole("main").click(); diff --git a/ui/src/lib/sessions/navigation.test.ts b/ui/src/lib/sessions/navigation.test.ts index 18b01e719c9..c75471de293 100644 --- a/ui/src/lib/sessions/navigation.test.ts +++ b/ui/src/lib/sessions/navigation.test.ts @@ -91,7 +91,7 @@ describe("resolveSessionNavigation", () => { expect(navigation.activeRowKey).toBe("agent:main:recent-11"); }); - it("keeps every pinned session when pins exceed the recent-session cap", () => { + it("keeps every pinned session when many sessions are pinned", () => { const pinnedSessions = Array.from({ length: 10 }, (_, index) => ({ key: `agent:main:pinned-${index}`, kind: "direct" as const,