summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e/projects/project-edit.spec.ts
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-02 14:17:28 -0400
committerGitHub <[email protected]>2026-04-02 18:17:28 +0000
commitc3ef69c8664ab84464d720f75eb9bf35289c1847 (patch)
treed7b1aa78355c39472804bdfbbd9db87722d0587b /packages/app/e2e/projects/project-edit.spec.ts
parent363891126c9b2a909db0e724eb6377bd3d12b38b (diff)
downloadopencode-c3ef69c8664ab84464d720f75eb9bf35289c1847.tar.gz
opencode-c3ef69c8664ab84464d720f75eb9bf35289c1847.zip
test(app): add a golden path for mocked e2e prompts (#20593)
Diffstat (limited to 'packages/app/e2e/projects/project-edit.spec.ts')
-rw-r--r--packages/app/e2e/projects/project-edit.spec.ts80
1 files changed, 43 insertions, 37 deletions
diff --git a/packages/app/e2e/projects/project-edit.spec.ts b/packages/app/e2e/projects/project-edit.spec.ts
index 7c20f29ec..1ffe4219d 100644
--- a/packages/app/e2e/projects/project-edit.spec.ts
+++ b/packages/app/e2e/projects/project-edit.spec.ts
@@ -1,43 +1,49 @@
import { test, expect } from "../fixtures"
import { clickMenuItem, openProjectMenu, openSidebar } from "../actions"
-test("dialog edit project updates name and startup script", async ({ page, withProject }) => {
+test("dialog edit project updates name and startup script", async ({ page, project }) => {
await page.setViewportSize({ width: 1400, height: 800 })
- await withProject(async ({ slug }) => {
- await openSidebar(page)
-
- const open = async () => {
- const menu = await openProjectMenu(page, slug)
- await clickMenuItem(menu, /^Edit$/i, { force: true })
-
- const dialog = page.getByRole("dialog")
- await expect(dialog).toBeVisible()
- await expect(dialog.getByRole("heading", { level: 2 })).toHaveText("Edit project")
- return dialog
- }
-
- const name = `e2e project ${Date.now()}`
- const startup = `echo e2e_${Date.now()}`
-
- const dialog = await open()
-
- const nameInput = dialog.getByLabel("Name")
- await nameInput.fill(name)
-
- const startupInput = dialog.getByLabel("Workspace startup script")
- await startupInput.fill(startup)
-
- await dialog.getByRole("button", { name: "Save" }).click()
- await expect(dialog).toHaveCount(0)
-
- const header = page.locator(".group\\/project").first()
- await expect(header).toContainText(name)
-
- const reopened = await open()
- await expect(reopened.getByLabel("Name")).toHaveValue(name)
- await expect(reopened.getByLabel("Workspace startup script")).toHaveValue(startup)
- await reopened.getByRole("button", { name: "Cancel" }).click()
- await expect(reopened).toHaveCount(0)
- })
+ await project.open()
+ await openSidebar(page)
+
+ const open = async () => {
+ const menu = await openProjectMenu(page, project.slug)
+ await clickMenuItem(menu, /^Edit$/i, { force: true })
+
+ const dialog = page.getByRole("dialog")
+ await expect(dialog).toBeVisible()
+ await expect(dialog.getByRole("heading", { level: 2 })).toHaveText("Edit project")
+ return dialog
+ }
+
+ const name = `e2e project ${Date.now()}`
+ const startup = `echo e2e_${Date.now()}`
+
+ const dialog = await open()
+
+ const nameInput = dialog.getByLabel("Name")
+ await nameInput.fill(name)
+
+ const startupInput = dialog.getByLabel("Workspace startup script")
+ await startupInput.fill(startup)
+
+ await dialog.getByRole("button", { name: "Save" }).click()
+ await expect(dialog).toHaveCount(0)
+
+ await expect
+ .poll(
+ async () => {
+ await page.reload()
+ await openSidebar(page)
+ const reopened = await open()
+ const value = await reopened.getByLabel("Name").inputValue()
+ const next = await reopened.getByLabel("Workspace startup script").inputValue()
+ await reopened.getByRole("button", { name: "Cancel" }).click()
+ await expect(reopened).toHaveCount(0)
+ return `${value}\n${next}`
+ },
+ { timeout: 30_000 },
+ )
+ .toBe(`${name}\n${startup}`)
})