diff --git a/apps/web/e2e/spaces.spec.ts b/apps/web/e2e/spaces.spec.ts index e3b7ec6..06b560a 100644 --- a/apps/web/e2e/spaces.spec.ts +++ b/apps/web/e2e/spaces.spec.ts @@ -8,12 +8,25 @@ test("Projekte + opens new project dialog instead of group form", async ({ page await page.goto("/app"); await page.waitForURL(/\/app\/[^/]+$/); + const sidebar = page.locator("aside").first(); const projekte = page.locator(".sidebar-projekte"); await projekte.getByRole("button", { name: "Create a project" }).click(); await expect(page.getByRole("dialog", { name: "New project" })).toBeVisible(); await expect(page.getByRole("button", { name: "Create project", exact: true })).toBeVisible(); await expect(page.getByTestId("side-panel")).not.toHaveAttribute("data-panel", "create-group"); await expect(page.getByText("New group", { exact: true })).toHaveCount(0); + + const dialog = page.getByRole("dialog", { name: "New project" }); + await dialog.getByLabel("Name").fill("Customer project"); + await dialog.getByRole("button", { name: "Create project", exact: true }).click(); + await expect(page).not.toHaveURL(/\/onboarding/); + await page.waitForURL(/\/app/); + await expect(sidebar.getByText("Customer project", { exact: true })).toBeVisible({ + timeout: 15_000, + }); + await expect( + page.locator("main").getByRole("button", { name: "Create new Bot", exact: true }), + ).toBeVisible(); }); test("spaces stay invisible by default and chat creation requires approval", async ({ diff --git a/apps/web/src/pages/Shell.tsx b/apps/web/src/pages/Shell.tsx index 052f545..3703d92 100644 --- a/apps/web/src/pages/Shell.tsx +++ b/apps/web/src/pages/Shell.tsx @@ -4793,12 +4793,14 @@ export function ShellPage() { onCancel={() => setNewSpaceOpen(false)} onConfirm={async (name) => { const space = await rpc.spaces.create({ name }); + setNewSpaceOpen(false); if (!selectSpace(space.id)) { - setNewSpaceOpen(false); await refreshBots(); return; } - window.location.assign("/onboarding"); + window.location.assign( + newSpaceDialogVariant === "project" ? "/app" : "/onboarding", + ); }} /> ) : null}