import { expect } from "e2e";
import { test, WEB } from "./t3.ts";

test("Scheduled task deletion requires confirmation and supports Cancel", WEB, async ({ t3, app, screen, browser }) => {
  await t3.project("Scheduled tasks demo");
  await t3.open("/settings/scheduled-tasks");
  await screen.getByRole("button", "New task").tap();
  await screen.getByLabel("Name").fill("Repro delete task");
  await screen.getByLabel("Prompt").fill("Say hello");
  await screen.getByRole("switch", "Enabled").tap();
  await screen.getByRole("button", "Create task").tap();
  await screen.getByRole("button", "Actions for Repro delete task").tap();
  await screen.getByRole("menuitem", "Delete").tap();
  await app.screenshot("delete-requested");
  const confirmation = screen.getByRole("alertdialog");
  await expect(confirmation).toBeVisible();
  await expect(confirmation).toContainText('Delete "Repro delete task"?');
  await expect(confirmation).toContainText("This cannot be undone.");
  await screen.getByRole("button", "Cancel").tap();
  await browser.reload();
  await expect(screen.getByRole("button", "Actions for Repro delete task")).toBeVisible();
  await app.screenshot("cancel-preserves-task");
  await screen.getByRole("button", "Actions for Repro delete task").tap();
  await screen.getByRole("menuitem", "Delete").tap();
  await screen.getByRole("button", "Confirm").tap();
  await expect(screen.getByText("No scheduled tasks", { exact: true })).toBeVisible();
  await browser.reload();
  await expect(screen.getByText("No scheduled tasks", { exact: true })).toBeVisible();
  await app.screenshot("confirmed-deletion-persists");
});
