From 339a3083658c99847adfe460ccb1fc3fd4aad906 Mon Sep 17 00:00:00 2001 From: "paseo-bot[bot]" <266920839+paseo-bot[bot]@users.noreply.github.com> Date: Mon, 9 Nov 2026 09:38:54 +0000 Subject: [PATCH] test(app): combine schedule edit and pristine creation checks (#9186) Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com> --- .../schedules-edit-model-hydration.spec.ts | 84 ++++++++----------- 1 file changed, 37 insertions(+), 47 deletions(-) diff --git a/packages/app/e2e/browser/schedules-edit-model-hydration.spec.ts b/packages/app/e2e/browser/schedules-edit-model-hydration.spec.ts index de91c88569..4ca5f3378e 100644 --- a/packages/app/e2e/browser/schedules-edit-model-hydration.spec.ts +++ b/packages/app/e2e/browser/schedules-edit-model-hydration.spec.ts @@ -79,7 +79,9 @@ test.describe("Schedules", () => { cleanupTasks.length = 0; }); - test("edit form hydrates the scheduled model selection", async ({ page }) => { + test("hydrates schedule editing and opens a pristine creation form afterward", async ({ + page, + }) => { const workspace = await seedWorkspace({ repoPrefix: "schedule-model-hydration-" }); cleanupTasks.push(() => workspace.cleanup()); const scheduleName = `Hydrate model ${Date.now()}`; @@ -93,29 +95,45 @@ test.describe("Schedules", () => { await row.click(); const formSheet = page.getByTestId("schedule-form-sheet"); - await expect(formSheet).toBeVisible({ timeout: 10_000 }); - await expectStableHeight(formSheet); const hostTrigger = page.getByTestId("schedule-host-trigger"); const projectTrigger = page.getByTestId("schedule-project-trigger"); const modelTrigger = page.getByTestId("schedule-model-trigger"); const thinkingTrigger = page.getByTestId("schedule-thinking-trigger"); const modeTrigger = page.getByTestId("schedule-mode-trigger"); - await expect(hostTrigger).toBeVisible({ timeout: 30_000 }); - await expect(hostTrigger).toBeDisabled(); - await expectSettled(hostTrigger); - await expect(projectTrigger).toContainText(workspace.projectDisplayName, { timeout: 30_000 }); - await expectSettled(projectTrigger); - await expect(modelTrigger).toContainText("Ten second stream", { timeout: 30_000 }); - await expectSettled(modelTrigger); - await expect(thinkingTrigger).toContainText("Low"); - await expectSettled(thinkingTrigger); - await expect(modeTrigger).toBeVisible({ timeout: 30_000 }); - await expectSettled(modeTrigger); - await expect(page.getByTestId("cadence-mode")).toHaveCount(0); - await expect(page.getByTestId("cadence-interval-value")).toHaveCount(0); - await expect(page.getByTestId("schedule-cadence-preset-trigger")).toContainText("Daily 9:00"); - await expect(page.getByText(/Times are in/)).toHaveCount(0); - await expect(formSheet.getByText("Cron", { exact: true })).toHaveCount(0); + await test.step("edit form hydrates the saved model and controls", async () => { + await expect(formSheet).toBeVisible({ timeout: 10_000 }); + await expectStableHeight(formSheet); + await expect(hostTrigger).toBeVisible({ timeout: 30_000 }); + await expect(hostTrigger).toBeDisabled(); + await expectSettled(hostTrigger); + await expect(projectTrigger).toContainText(workspace.projectDisplayName, { timeout: 30_000 }); + await expectSettled(projectTrigger); + await expect(modelTrigger).toContainText("Ten second stream", { timeout: 30_000 }); + await expectSettled(modelTrigger); + await expect(thinkingTrigger).toContainText("Low"); + await expectSettled(thinkingTrigger); + await expect(modeTrigger).toBeVisible({ timeout: 30_000 }); + await expectSettled(modeTrigger); + await expect(page.getByTestId("cadence-mode")).toHaveCount(0); + await expect(page.getByTestId("cadence-interval-value")).toHaveCount(0); + await expect(page.getByTestId("schedule-cadence-preset-trigger")).toContainText("Daily 9:00"); + await expect(page.getByText(/Times are in/)).toHaveCount(0); + await expect(formSheet.getByText("Cron", { exact: true })).toHaveCount(0); + }); + + await test.step("closing edit leaves the new schedule form pristine", async () => { + await page.getByRole("button", { name: "Cancel" }).click(); + await expect(formSheet).toHaveCount(0, { timeout: 30_000 }); + + await page.getByTestId("schedules-new").click(); + await expect(formSheet).toBeVisible({ timeout: 10_000 }); + await expect(projectTrigger).toContainText(/select project/i); + await expectSettled(projectTrigger); + await expect(page.getByTestId("schedule-model-trigger")).toHaveCount(0); + await expect(page.getByTestId("schedule-thinking-trigger")).toHaveCount(0); + await expect(page.getByTestId("schedule-mode-trigger")).toHaveCount(0); + await expect(page.getByTestId("cadence-interval-value")).toHaveCount(0); + }); }); test("edit form hydrates a non-default host schedule after reload", async ({ page }) => { @@ -165,32 +183,4 @@ test.describe("Schedules", () => { await expect(page.getByTestId("cadence-mode")).toHaveCount(0); await expect(page.getByTestId("schedule-cadence-preset-trigger")).toContainText("Daily 9:00"); }); - - test("create opens pristine after closing an edit form", async ({ page }) => { - const workspace = await seedWorkspace({ repoPrefix: "schedule-pristine-create-" }); - cleanupTasks.push(() => workspace.cleanup()); - const scheduleName = `Pristine create ${Date.now()}`; - const scheduleId = await seedMockSchedule(workspace, scheduleName); - cleanupTasks.push(() => deleteSeededSchedule(workspace, scheduleId)); - - await page.goto(buildSchedulesRoute()); - const row = page.getByTestId(`schedule-row-${scheduleId}`); - await expect(row).toBeVisible({ timeout: 30_000 }); - await row.click(); - const formSheet = page.getByTestId("schedule-form-sheet"); - await expect(formSheet).toBeVisible({ timeout: 10_000 }); - await expectStableHeight(formSheet); - await page.getByRole("button", { name: "Cancel" }).click(); - await expect(formSheet).toHaveCount(0, { timeout: 30_000 }); - - await page.getByTestId("schedules-new").click(); - await expect(formSheet).toBeVisible({ timeout: 10_000 }); - const projectTrigger = page.getByTestId("schedule-project-trigger"); - await expect(projectTrigger).toContainText(/select project/i); - await expectSettled(projectTrigger); - await expect(page.getByTestId("schedule-model-trigger")).toHaveCount(0); - await expect(page.getByTestId("schedule-thinking-trigger")).toHaveCount(0); - await expect(page.getByTestId("schedule-mode-trigger")).toHaveCount(0); - await expect(page.getByTestId("cadence-interval-value")).toHaveCount(0); - }); });