|
1 | 1 | import { base64Decode } from "@opencode-ai/util/encode" |
2 | 2 | import type { Page } from "@playwright/test" |
3 | 3 | import { test, expect } from "../fixtures" |
4 | | -import { cleanupTestProject, openSidebar, sessionIDFromUrl, setWorkspacesEnabled } from "../actions" |
| 4 | +import { openSidebar, sessionIDFromUrl, setWorkspacesEnabled } from "../actions" |
5 | 5 | import { promptSelector, workspaceItemSelector, workspaceNewSessionSelector } from "../selectors" |
6 | 6 | import { createSdk } from "../utils" |
7 | 7 |
|
@@ -105,48 +105,29 @@ async function sessionDirectory(directory: string, sessionID: string) { |
105 | 105 | test("new sessions from sidebar workspace actions stay in selected workspace", async ({ page, withProject }) => { |
106 | 106 | await page.setViewportSize({ width: 1400, height: 800 }) |
107 | 107 |
|
108 | | - await withProject(async ({ directory, slug: root }) => { |
109 | | - const workspaces = [] as { slug: string; directory: string }[] |
110 | | - const sessions = [] as string[] |
111 | | - |
112 | | - try { |
113 | | - await openSidebar(page) |
114 | | - await setWorkspacesEnabled(page, root, true) |
115 | | - |
116 | | - const first = await createWorkspace(page, root, []) |
117 | | - workspaces.push(first) |
118 | | - await waitWorkspaceReady(page, first.slug) |
119 | | - |
120 | | - const second = await createWorkspace(page, root, [first.slug]) |
121 | | - workspaces.push(second) |
122 | | - await waitWorkspaceReady(page, second.slug) |
123 | | - |
124 | | - const firstSession = await createSessionFromWorkspace(page, first.slug, `workspace one ${Date.now()}`) |
125 | | - sessions.push(firstSession.sessionID) |
126 | | - |
127 | | - const secondSession = await createSessionFromWorkspace(page, second.slug, `workspace two ${Date.now()}`) |
128 | | - sessions.push(secondSession.sessionID) |
129 | | - |
130 | | - const thirdSession = await createSessionFromWorkspace(page, first.slug, `workspace one again ${Date.now()}`) |
131 | | - sessions.push(thirdSession.sessionID) |
132 | | - |
133 | | - await expect.poll(() => sessionDirectory(first.directory, firstSession.sessionID)).toBe(first.directory) |
134 | | - await expect.poll(() => sessionDirectory(second.directory, secondSession.sessionID)).toBe(second.directory) |
135 | | - await expect.poll(() => sessionDirectory(first.directory, thirdSession.sessionID)).toBe(first.directory) |
136 | | - } finally { |
137 | | - const dirs = [directory, ...workspaces.map((workspace) => workspace.directory)] |
138 | | - await Promise.all( |
139 | | - sessions.map((sessionID) => |
140 | | - Promise.all( |
141 | | - dirs.map((dir) => |
142 | | - createSdk(dir) |
143 | | - .session.delete({ sessionID }) |
144 | | - .catch(() => undefined), |
145 | | - ), |
146 | | - ), |
147 | | - ), |
148 | | - ) |
149 | | - await Promise.all(workspaces.map((workspace) => cleanupTestProject(workspace.directory))) |
150 | | - } |
| 108 | + await withProject(async ({ directory, slug: root, trackSession, trackDirectory }) => { |
| 109 | + await openSidebar(page) |
| 110 | + await setWorkspacesEnabled(page, root, true) |
| 111 | + |
| 112 | + const first = await createWorkspace(page, root, []) |
| 113 | + trackDirectory(first.directory) |
| 114 | + await waitWorkspaceReady(page, first.slug) |
| 115 | + |
| 116 | + const second = await createWorkspace(page, root, [first.slug]) |
| 117 | + trackDirectory(second.directory) |
| 118 | + await waitWorkspaceReady(page, second.slug) |
| 119 | + |
| 120 | + const firstSession = await createSessionFromWorkspace(page, first.slug, `workspace one ${Date.now()}`) |
| 121 | + trackSession(firstSession.sessionID, first.directory) |
| 122 | + |
| 123 | + const secondSession = await createSessionFromWorkspace(page, second.slug, `workspace two ${Date.now()}`) |
| 124 | + trackSession(secondSession.sessionID, second.directory) |
| 125 | + |
| 126 | + const thirdSession = await createSessionFromWorkspace(page, first.slug, `workspace one again ${Date.now()}`) |
| 127 | + trackSession(thirdSession.sessionID, first.directory) |
| 128 | + |
| 129 | + await expect.poll(() => sessionDirectory(first.directory, firstSession.sessionID)).toBe(first.directory) |
| 130 | + await expect.poll(() => sessionDirectory(second.directory, secondSession.sessionID)).toBe(second.directory) |
| 131 | + await expect.poll(() => sessionDirectory(first.directory, thirdSession.sessionID)).toBe(first.directory) |
151 | 132 | }) |
152 | 133 | }) |
0 commit comments