---
id: w5/m14/t003
title: "Acceptance: create → delete → gone from list, redirect + toast"
worker: worker5
status: done
estimate: 25m
depends_on: [w5/m14/t002]
---

## Objective

Verify the end-to-end delete flow in a real browser: create a service, delete it via the danger zone, confirm it disappears from the services list, and confirm the user is redirected with a success toast.

## Context

- Run against the local mock cluster (`scripts/mock-cluster.sh`) or the trustworthy dev stub (w5/m10) if a live backend isn't available — the stub path only counts once t001's `deleteService` resolver is added to `dashboard/scripts/local-bex.mjs` (the stub has no such resolver today).
- w2/m4's backend `deleteService` verb shipped 2026-07-09 (`lego/backend/internal/apps/graphql.go`); it must be deployed to the target cluster for this to be a real (not stubbed) acceptance pass.
- If verifying against prod instead: fetch the app-cluster kubeconfig via `scripts/fetch-app-kubeconfig.sh` (the mgmt-cluster/clusterctl path is dead), and create the throwaway service from a **prebuilt public image** (`examples/whoami-app.yaml` style) — build-from-git does not work on prod; app images are node-local `ctr` imports. _(2026-07-11 board review.)_

## Steps

1. Create a throwaway service via the dashboard or `scripts/app-apply.sh`.
2. Delete it through the Settings danger zone (t002).
3. Confirm: service row is gone from `/` (services list) after the redirect; a success toast appears; no dangling App CR (`kubectl get apps.app.bex.co`).

## Files

- No new files expected; this is a verification pass (add a Playwright/e2e test if one doesn't already exist for the flow).

## Acceptance criteria

- [ ] Service is confirmed gone from both the dashboard list and `kubectl get apps.app.bex.co`.
- [ ] Redirect to the services list + success toast observed.

## Out of scope

- i18n copy (t004) — English-only pass here.
