From 6e9e027886e78bdf08ecf94bc365537576b76b26 Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Sun, 8 Mar 2026 18:20:04 +0530 Subject: fix: trim retained desktop terminal buffers (#16583) --- packages/app/e2e/terminal/terminal-tabs.spec.ts | 33 +++++++++++++++++++------ 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'packages/app/e2e') diff --git a/packages/app/e2e/terminal/terminal-tabs.spec.ts b/packages/app/e2e/terminal/terminal-tabs.spec.ts index f76a86cf7..afa6254cd 100644 --- a/packages/app/e2e/terminal/terminal-tabs.spec.ts +++ b/packages/app/e2e/terminal/terminal-tabs.spec.ts @@ -44,12 +44,14 @@ async function store(page: Page, key: string) { }, key) } -test("terminal tab buffers persist across tab switches", async ({ page, withProject }) => { +test("inactive terminal tab buffers persist across tab switches", async ({ page, withProject }) => { await withProject(async ({ directory, gotoSession }) => { const key = workspacePersistKey(directory, "terminal") const one = `E2E_TERM_ONE_${Date.now()}` const two = `E2E_TERM_TWO_${Date.now()}` const tabs = page.locator('#terminal-panel [data-slot="tabs-trigger"]') + const first = tabs.filter({ hasText: /Terminal 1/ }).first() + const second = tabs.filter({ hasText: /Terminal 2/ }).first() await gotoSession() await open(page) @@ -61,22 +63,39 @@ test("terminal tab buffers persist across tab switches", async ({ page, withProj await run(page, `echo ${two}`) - await tabs - .filter({ hasText: /Terminal 1/ }) - .first() - .click() + await first.click() + await expect(first).toHaveAttribute("aria-selected", "true") + await expect + .poll( + async () => { + const state = await store(page, key) + const first = state?.all.find((item) => item.titleNumber === 1)?.buffer ?? "" + const second = state?.all.find((item) => item.titleNumber === 2)?.buffer ?? "" + return { + first: first.includes(one), + second: second.includes(two), + } + }, + { timeout: 30_000 }, + ) + .toEqual({ first: false, second: true }) + await second.click() + await expect(second).toHaveAttribute("aria-selected", "true") await expect .poll( async () => { const state = await store(page, key) const first = state?.all.find((item) => item.titleNumber === 1)?.buffer ?? "" const second = state?.all.find((item) => item.titleNumber === 2)?.buffer ?? "" - return first.includes(one) && second.includes(two) + return { + first: first.includes(one), + second: second.includes(two), + } }, { timeout: 30_000 }, ) - .toBe(true) + .toEqual({ first: true, second: false }) }) }) -- cgit v1.2.3