Aim to mention 20-40 concrete checks. This expanded list helps you turn a short answer into a structured senior-style response.
POST create user with valid minimal payload returns 201 Created.
Valid full payload handles optional fields, defaults, generated id, default role, default status, and createdAt.
Response schema, content type, field types, required fields, nullable fields, enum values, and safe response body are correct.
Created user is persisted and can be fetched by GET user API.
Default onboarding, verification, inactive status, or welcome flow follows business rules.
Missing email, missing password, missing required fields, empty values, and whitespace-only values are rejected.
Invalid email, weak password, password rules, long values, Unicode values, wrong data types, and malformed JSON are handled.
Duplicate email, case-insensitive duplicate, unsupported content type, unknown fields, and extra fields return correct errors.
Error response format is consistent, safe, localized if needed, and useful for API clients.
Correct 400, 401, 403, 409, 422, and 500 status behavior is verified.
Missing token, invalid token, expired token, and insufficient permission are rejected if auth is required.
Users cannot set admin role, status, tenant id, owner id, password hash, emailVerified, or protected fields.
Mass assignment, role escalation, tenant isolation, request tampering, and permission boundaries are blocked.
Password is hashed, not returned, not logged, and not exposed in analytics.
Rate limiting, abuse prevention, user enumeration, safe error messages, and audit logging are checked.
Database transaction, rollback on failure, unique constraints, and data consistency are verified.
Concurrent create requests, duplicate submits, idempotency keys, and retry behavior do not create duplicate users.
Verification email, welcome email, user-created event, audit log, and downstream event behavior are correct.
Database error, dependency failure, queue failure, timeout, and partial failure states are handled.
SLA, diagnostic logs, metrics, alerts, correlation ids, and contract tests support production debugging.
Structure your answer: Start with POST create user happy path: valid payload, 201 Created, generated id, schema, default role/status, and persisted user.
Structure your answer: Add validation: required fields, invalid email, password rules, duplicate email, malformed JSON, and status codes.
Structure your answer: Add security: auth, permissions, tenant isolation, protected fields, mass assignment, password hashing, and safe errors.
Structure your answer: Close with database transactions, idempotency, concurrency, rate limiting, audit logs, downstream events, and observability.
Do not miss: Protected fields and mass assignment.
Do not miss: Password hashing and sensitive response data.
Do not miss: Fetch-after-create persistence verification.
Do not miss: Concurrent duplicate requests, idempotency, and rollback.