diff options
| author | Luke Parker <[email protected]> | 2026-03-07 17:48:30 +1000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-07 07:48:30 +0000 |
| commit | b7e208b4f1e6641a1cbb1e13f59789c7b7f4c60a (patch) | |
| tree | 44a08ed1524957a5d59bf5a03ce46fe61b53f5b7 /packages/app/e2e/projects/workspaces.spec.ts | |
| parent | be9b4d1bcde39341c7813b66c5c19150a01bb8c2 (diff) | |
| download | opencode-b7e208b4f1e6641a1cbb1e13f59789c7b7f4c60a.tar.gz opencode-b7e208b4f1e6641a1cbb1e13f59789c7b7f4c60a.zip | |
test(app): share workspace slug wait helper across e2e specs (#16446)
Diffstat (limited to 'packages/app/e2e/projects/workspaces.spec.ts')
| -rw-r--r-- | packages/app/e2e/projects/workspaces.spec.ts | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/packages/app/e2e/projects/workspaces.spec.ts b/packages/app/e2e/projects/workspaces.spec.ts index 805b45e98..aeeccb9bb 100644 --- a/packages/app/e2e/projects/workspaces.spec.ts +++ b/packages/app/e2e/projects/workspaces.spec.ts @@ -14,34 +14,12 @@ import { openSidebar, openWorkspaceMenu, setWorkspacesEnabled, + slugFromUrl, + waitSlug, } from "../actions" import { dropdownMenuContentSelector, inlineInputSelector, workspaceItemSelector } from "../selectors" import { createSdk, dirSlug } from "../utils" -function slugFromUrl(url: string) { - return /\/([^/]+)\/session(?:\/|$)/.exec(url)?.[1] ?? "" -} - -async function waitSlug(page: Page, skip: string[] = []) { - let prev = "" - await expect - .poll( - () => { - const slug = slugFromUrl(page.url()) - if (!slug) return "" - if (skip.includes(slug)) return "" - if (slug !== prev) { - prev = slug - return "" - } - return slug - }, - { timeout: 45_000 }, - ) - .not.toBe("") - return slugFromUrl(page.url()) -} - async function setupWorkspaceTest(page: Page, project: { slug: string }) { const rootSlug = project.slug await openSidebar(page) @@ -353,17 +331,7 @@ test("can reorder workspaces by drag and drop", async ({ page, withProject }) => for (const _ of [0, 1]) { const prev = slugFromUrl(page.url()) await page.getByRole("button", { name: "New workspace" }).first().click() - await expect - .poll( - () => { - const slug = slugFromUrl(page.url()) - return slug.length > 0 && slug !== rootSlug && slug !== prev - }, - { timeout: 45_000 }, - ) - .toBe(true) - - const slug = slugFromUrl(page.url()) + const slug = await waitSlug(page, [rootSlug, prev]) const dir = base64Decode(slug) workspaces.push({ slug, directory: dir }) |
