Skip to content

feat: newsletter GDPR deletion, rate-limit UX, e2e lifecycle tests, and global ErrorBoundary - #1431

Open
Mystery-CLI wants to merge 4 commits into
solutions-plug:mainfrom
Mystery-CLI:feat/newsletter-and-resilience
Open

feat: newsletter GDPR deletion, rate-limit UX, e2e lifecycle tests, and global ErrorBoundary#1431
Mystery-CLI wants to merge 4 commits into
solutions-plug:mainfrom
Mystery-CLI:feat/newsletter-and-resilience

Conversation

@Mystery-CLI

Copy link
Copy Markdown
Contributor

Summary of Changes

This PR resolves four backlog tasks across the Newsletter and Resilience areas:

1. #1404 — GDPR Data Deletion Request Page

  • Created /account/privacy/delete page (frontend/src/app/account/privacy/delete/page.tsx).
  • Implemented double-confirmation modal requiring the user to explicitly type the confirmation phrase DELETE MY DATA PERMANENTLY.
  • Added anti-autofill attributes (data-lpignore, data-1p-ignore, autoComplete="off", spellCheck={false}) to ensure deliberate manual confirmation.
  • Integrated with api.newsletterGdprDelete with accessible alert handling for error/success states.

2. #1405 — Rate-Limit-Aware UX for Newsletter Subscribe

  • Created frontend/src/components/NewsletterSignup.tsx and refactored LandingPage.tsx to use it.
  • Added client-side rapid resubmission cooldown to prevent spamming before triggering server 429s.
  • Implemented automatic countdown timer UX for HTTP 429 rate limit responses.
  • Allows immediate retry when the user edits or fixes a typo in their email address.

3. #1406 — E2E Coverage for Newsletter Lifecycle & GDPR Flows

  • Created frontend/e2e/newsletter.spec.ts covering the full end-to-end lifecycle:
    • subscribeconfirmGDPR exportGDPR delete (modal & phrase confirmation) → unsubscribe.
    • Uses unique disposable test email addresses per run.
    • Guaranteed teardown/cleanup in afterEach even on assertion failure to prevent staging list pollution.
  • Added e2e/newsletter.spec.ts to MOCKED_SPECS in frontend/playwright.config.ts.

4. #1407 — Recreate Global ErrorBoundary

  • Enhanced frontend/src/components/ErrorBoundary.tsx with reload page action, report issue link/action, and resilient fallback UI.
  • Expanded frontend/src/components/__tests__/LandingPage.error-boundary.test.tsx with unit tests for global error catching, fallback rendering, report action, and onError callback dispatch.

Closes #1404
Closes #1405
Closes #1406
Closes #1407

@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@Mystery-CLI Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant