summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e
diff options
context:
space:
mode:
authorShoubhit Dash <[email protected]>2026-03-08 18:20:04 +0530
committerGitHub <[email protected]>2026-03-08 07:50:04 -0500
commit6e9e027886e78bdf08ecf94bc365537576b76b26 (patch)
tree3c1e23fdc9b2f29b2a863deb3f7e3c22b076f758 /packages/app/e2e
parentf9a3d129a4a852558a1cfdf6949839834d8a4438 (diff)
downloadopencode-6e9e027886e78bdf08ecf94bc365537576b76b26.tar.gz
opencode-6e9e027886e78bdf08ecf94bc365537576b76b26.zip
fix: trim retained desktop terminal buffers (#16583)
Diffstat (limited to 'packages/app/e2e')
-rw-r--r--packages/app/e2e/terminal/terminal-tabs.spec.ts33
1 files changed, 26 insertions, 7 deletions
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 })
})
})