---
title: "Review a simple sign-up form: email, password, done · Proxy Mail QA"
description: "12 checks for a short sign-up form with an email and a password, by hand, through an AI agent or in an automated test."
url: https://proxymail.qa/solve/review-a-simple-sign-up-form
---

1. [Home](https://proxymail.qa/)
2. [What we solve](https://proxymail.qa/solve)

# Review a simple sign-up form: email, password, done

A simple form has fewer places to go wrong, but the ones it has are the ones every user hits. 12 checks cover it.

Updated 5 November 2026

> **Our recommendation, up front.** We make Proxy Mail QA, so we’re not neutral. For a short sign-up form (an email, a password, perhaps a name) we recommend it for one thing: a fresh test address for each try and the verification email that follows, whether you check by hand with Proxy Mail QA for Chrome, through an AI agent, or in an automated test. Most of the checklist below needs no product at all. Proxy Mail QA doesn’t review layout or wording, and doesn’t fill in or submit the form for an agent or a test: they do that themselves.

## The checklist

**The email field**

1. It’s `type="email"` with `autocomplete="email"`, so phones show the @ keyboard and browsers offer the right address.
2. It accepts valid but unusual addresses: capitals, a plus tag (`jane+acme@mailclub.dev`), an apostrophe (`o'brien@mailclub.dev`). It refuses ones with no @ or two.
3. An address that’s already registered gets a sensible answer: either “You already have an account” with a link to sign in, or “Check your email” either way, if you don’t want to reveal who has an account.

**The password field**

1. The rules are shown before someone types, and they’re the same rules the server enforces.
2. It’s `type="password"` with `autocomplete="new-password"`, allows paste and has a way to show what was typed.
3. A password that’s too short gets an error at the field, saying the rule. (If it doesn’t, see [Why is my registration form not showing password errors?](https://proxymail.qa/solve/why-is-my-registration-form-not-showing-password-errors))
4. A long password, 64 characters, is accepted and signs in afterwards.

**Submitting**

1. One click makes one account and sends one email, even if the button is pressed twice.
2. The button shows it’s working, and errors from the server appear on the page rather than vanishing.

**The email**

1. It arrives within a minute.
2. Its link goes to the site you’re testing, not `localhost` or production, and any expiry it states is true.
3. The code or link finishes the sign-up, and works only once.

## By hand, in about ten minutes

1. Install [Proxy Mail QA for Chrome](https://proxymail.qa/chrome-extension), open your sign-up page and choose **Turn on for this site** in its popup.
2. Click the Proxy Mail QA button in the email field to fill the form with a new test account: email, name if there is one, and a password that fits the field’s rules.
3. For checks 6 and 7, click the key button in the password field and open its card’s **Edge-case password** list (“Should be accepted”, “Should be rejected”), then try a few. For check 2, add a plus tag to the address in the field before you submit: mail to `+anything` still reaches the same test inbox, and shows in the app rather than in the page.
4. Submit. When the email lands, the code shows in the page with **Fill** and **Copy**, or the link with **Open**.
5. Read the whole email once in [the app](https://app.proxymail.qa/?mode=signup), where a link to `localhost` is flagged on the address’s row.

## With an AI agent

With Proxy Mail QA connected to your agent (in Qoder, from the [Marketplace](https://qoder.com/en/marketplace/connector?id=proxymail-qa)), ask:

Prompt

```text
Review the sign-up form at https://staging.acme.dev/signup with Proxy Mail QA.
Sign up with a new address and finish the verification. Check the email with
check_email (expect_host: staging.acme.dev) and count_emails: exactly one should come.
Try get_address_variants and get_password_variants (min_length 8, max_length 64) in
the fields, using a plus tag on the address for each new account.
Give me the twelve-point checklist below with pass or fail for each.

```

Paste the checklist above under the prompt, so the agent reports against it.

## In an automated test

With the [proxymail-qa](https://proxymail.qa/docs/node) npm package and Playwright, checks 8 to 12 run on every change:

TypeScript

```ts
import { expect, test } from '@playwright/test';
import { ProxyMailQA } from 'proxymail-qa';

const qa = new ProxyMailQA(); // reads PROXYMAIL_QA_API_KEY

test('sign-up sends one working verification link', async ({ page }) => {
  const { address, password } = await qa.createAddress({ password: true });
  const submitted = new Date();

  await page.goto('/signup');
  await page.getByLabel('Email').fill(address);
  await page.getByLabel('Password').fill(password);
  await page.getByRole('button', { name: 'Sign up' }).click();

  const { value: link } = await qa.waitForLink(address, { type: 'verify', since: submitted });
  const check = await qa.checkEmail(address, { since: submitted, type: 'link', expectHost: 'staging.acme.dev' });
  expect(check.failed).toEqual([]);

  await page.goto(link);
  await expect(page).toHaveURL(/welcome/);

  await new Promise((resolve) => setTimeout(resolve, 10_000)); // time for a duplicate
  expect((await qa.countEmails(address, { since: submitted, type: 'link' })).count).toBe(1);

  await qa.deleteAddress(address);
});

```

`since` makes the wait ignore anything sent before the form was submitted, so a retry never picks up an old link.

## What this doesn’t cover

- How the form looks and reads. Look at it yourself, on a phone too.
- Accessibility and speed: run Lighthouse and axe DevTools, and fill the form with the keyboard alone.
- SMS codes and social sign-in: Proxy Mail QA receives email only.
- An email provider in sandbox or test mode only sends to addresses you’ve verified, so nothing reaches a test inbox until it’s set up for production.

For a form that asks for more (date of birth, country, a second screen), see [Review a multi-page sign-up form](https://proxymail.qa/solve/review-a-multi-page-sign-up-form).

## Try it on your next sign-up test

Free plan, no credit card. Create an address and watch the code or link arrive.

[Create a free account](https://app.proxymail.qa/?mode=signup&from=site-solve-review-a-simple-sign-up-form)

## Related guides

- [Test sign-up and email verificationA fresh, private address for every sign-up test, with the verification link or code ready the moment it lands.](https://proxymail.qa/solve/email-verification-testing)
- [Test OTP and one-time login codesCodes pulled out of the email with a Copy button and a countdown when the email says how long they last.](https://proxymail.qa/solve/otp-code-testing)
- [Test magic links and passwordless sign-inSingle-use links that are never opened or prefetched on our side, so they still work when you click them.](https://proxymail.qa/solve/magic-link-testing)
- [Test password reset emailsRequest, receive and use reset links, and keep the new password saved next to the test account.](https://proxymail.qa/solve/password-reset-testing)
- [Stop sharing one Gmail inbox for QAPrivate, disposable addresses for every tester instead of one shared mailbox and a pile of plus-addresses.](https://proxymail.qa/solve/shared-test-inbox)
- [Take QA notes by voice with Wispr FlowDictate what each test account is for, its state and what you found, straight into its notes, in seconds.](https://proxymail.qa/solve/voice-notes-wispr-flow)
- [Verification link points to localhost:3000Why emails from staging link to localhost, how to fix it in Supabase, Firebase and other stacks, and how we flag it.](https://proxymail.qa/solve/localhost-links)
- [Common Supabase sign-up and login problemsEmails that never arrive, links that expire or sign nobody in, and sign-ups that fail, with the fix for each.](https://proxymail.qa/solve/supabase-auth-problems)
- [Common Firebase sign-up and login problemsMissing verification and reset emails, verified users who still look unverified, failing links and sign-up limits, with the fix for each.](https://proxymail.qa/solve/firebase-auth-problems)
- [Sign-up and login problems in vibe-coded appsThe login bugs AI-built apps usually ship with: emails only you receive, links to the preview, missing pages, and what to ask the builder.](https://proxymail.qa/solve/vibe-coded-login-problems)
- [Test sign-up emails in PlaywrightA complete Playwright test for sign-up codes and links, from a fresh inbox to the report on the pull request.](https://proxymail.qa/solve/playwright-email-tests)
- [Test sign-up emails in CypressA complete Cypress test for sign-up links and codes, with the email waits running as Cypress tasks.](https://proxymail.qa/solve/cypress-email-tests)
- [Test sign-up emails with pytestA complete pytest test for sign-up codes and links, with Playwright for Python or Selenium and a one-file helper.](https://proxymail.qa/solve/pytest-email-tests)
- [Test coupon codes and welcome offersThe coupon with its discount, end date and arrival time, what checkout did with it, and a failure when an expired or reused one is accepted.](https://proxymail.qa/solve/coupon-code-testing)
- [Test unsubscribe links and one-click unsubscribeThe unsubscribe headers and link checked on every marketing email, and a watch that flags any marketing after unsubscribing, with no time limit.](https://proxymail.qa/solve/unsubscribe-testing)
- [Test that a welcome offer can't be claimed twiceVersions of one address that reach the same inbox, and a check that fails when the same person got the offer more than once.](https://proxymail.qa/solve/welcome-offer-abuse)
- [AI sign-up page reviewLet an agent check the sign-up through to the email: delivery, the link, how it was sent, and that only one arrives.](https://proxymail.qa/solve/ai-sign-up-page-review)
- [AI registration page reviewAn agent tries every field with values made for it, then finishes the registration through the email.](https://proxymail.qa/solve/ai-registration-page-review)
- [Review a sign-up page by handA checklist for your browser and phone, in the order that finds the most problems.](https://proxymail.qa/solve/how-to-review-my-sign-up-page)
- [Review a multi-page sign-up formOne test account across every screen, and the verification email wherever it comes.](https://proxymail.qa/solve/review-a-multi-page-sign-up-form)
- [Review a financial sign-up formThe emails, age and country rules and awkward values in a financial sign-up, and what needs other tools.](https://proxymail.qa/solve/review-a-financial-website-sign-up-form)
- [An email address for testing registrationA new, real address for every registration try, with the code or link ready to use.](https://proxymail.qa/solve/email-for-checking-my-registration-form)
- [An email address for testing sign-inTest accounts with saved passwords and an inbox for codes, magic links and resets.](https://proxymail.qa/solve/email-for-checking-my-sign-in-form)
- [How long should a password be?NIST's numbers for password length and rules, and test passwords to check yours.](https://proxymail.qa/solve/how-long-should-my-registration-form-password-be)
- [No error for a password that breaks the rulesThe eight usual causes of a silent password field, and how to tell which one it is.](https://proxymail.qa/solve/why-is-my-registration-form-not-showing-password-errors)
- [Help me check my websiteA whole-site check in an afternoon, in the order that finds the costliest problems first.](https://proxymail.qa/solve/help-me-check-my-website)
- [Tools to build and check a websiteA toolkit by area, most of it free and none of it ours, except for account emails.](https://proxymail.qa/solve/tools-to-help-build-and-check-my-website)
- [What tools do I need for a website?The full list, then which parts a simple site can skip.](https://proxymail.qa/solve/what-tools-do-i-need-when-building-a-website)

[Built your app with an AI tool? Pick yours](https://proxymail.qa/built-with)
