QA Checklist

Delete Account Test Checklist

Use this checklist to verify both the free-account deletion flow and the paid Stripe-backed deletion flow.

Updated

April 1, 2026

Use Case

Account deletion verification

1. Free Account Smoke Test

Before deleting

  1. Create a brand-new free test account.
  2. Open the Account page.
  3. Copy the User ID from the profile card and save it in a note.
  4. Generate and save at least one plan.
  5. Confirm the plan appears in My Plans.

Delete flow

  1. Open Account.
  2. Click Delete My Account.
  3. Confirm the warning dialog.
  4. Re-authenticate with Google or password when prompted.
  5. Wait for the app to sign you out and redirect you.

Pass criteria in the app

  1. No Failed to fetch error.
  2. User is signed out after deletion.
  3. Returning to Account shows the signed-out state.

Firebase Console verification

Use the saved UID from the profile card.

  1. Authentication → Users: the throwaway email is gone.
  2. Firestore → Data → users: users/{uid} is gone.
  3. Firestore → Data → rate_limits: rate_limits/{uid} is gone.

Because users/{uid} should be removed entirely, these should also be gone:

  • users/{uid}/plans/*
  • users/{uid}/profile/main
  • users/{uid}/usage/ai

2. Paid Stripe Test

Use Stripe test mode or a low-risk paid test scenario only.

Before deleting

  1. Create a dedicated paid test account.
  2. Save the Firebase uid from the Account page.
  3. Upgrade the account through Stripe Checkout.
  4. Confirm the account shows Pro.
  5. Confirm a Stripe customer exists for that account.
  6. Confirm there is an active Stripe subscription tied to that customer.

Delete flow

  1. Open Account.
  2. Click Delete My Account.
  3. Complete re-authentication.
  4. Wait for the deletion flow to finish.

Pass criteria

  1. Account deletion completes without a Stripe-related error.
  2. User is signed out and redirected.
  3. The Authentication user is gone.
  4. users/{uid} is gone.
  5. rate_limits/{uid} is gone.
  6. The Stripe customer no longer has an active subscription.

Webhook follow-up verification

  1. After the webhook has had time to run, re-check Firestore.
  2. Confirm a deleted user’s profile/main document was not recreated by a late Stripe webhook.

3. TTL Reminder

These are not expected to disappear immediately during account deletion:

  • generated_plans
  • blocked_prompts

Those are governed by Firestore TTL policies and are deleted asynchronously after their ttl expiration.