Testing Plan
This plan is designed for the current repo state and should be executed in layers so regressions are easier to isolate.
1. Pre-Flight
Run these first:
bash
npm run test:unit --workspace=pdf-esigner
npm run build --workspace=pdf-esigner
npm run build:docsIf Supabase-backed flows are configured, also run:
bash
npm run smoke:create-request --workspace=pdf-esigner
npm run smoke:bulk-create --workspace=pdf-esigner
npm run smoke:detect-fields --workspace=pdf-esigner
npm run smoke:sequential --workspace=pdf-esigner2. Core Viewer Regression
Use /demo with Merchant.pdf.
Check:
- document opens without horizontal overflow
- zoom in and zoom out work repeatedly
Moredropdown appears above the page content- sub-toolbar does not flash from full row into
More - thumbnails open/close correctly
- field borders look subtle rather than overpowering
3. Mobile Browser Validation
Run on:
- iPhone Safari
- Android Chrome
Check:
- first open fits the screen cleanly
- zoom steps feel usable
- no desktop-style page overflow
- scrolling does not blank pages unexpectedly
- signature drawing works
PagesandFieldscontrols open as expected in signer mode- keyboard entry in text fields keeps text contained inside the field
4. Signer Flow Validation
Use a real signing link and validate:
- signer page loads with the correct document
- required fields are visible
Next Fieldmoves correctly- signature/initials capture saves correctly
- completion succeeds
- signed PDF downloads
- completion certificate is available when expected
5. Email Request Flow
If Resend is configured:
- create signing request
- confirm email arrives
- open the link from the email
- resend request
- cancel request
- duplicate request
- verify reopened/duplicated request still generates a valid link
6. Multi-Signer Flow
Test both routing modes.
Parallel
- create a 2-signer request
- confirm both links are active
- sign in either order
- confirm both completion records are consistent
- if contact masking is enabled, confirm signer 1 sees signer progress but not signer 2's real name/email
Sequential
- create a 2-signer request
- confirm only signer 1 is active
- complete signer 1
- confirm signer 2 becomes active
- confirm next-signer email triggers when configured
- confirm signer 2 sees signer 1 as completed
- if contact masking is enabled, confirm non-self signer details stay masked throughout the flow
7. Templates
- create template from a real uploaded PDF
- enter Prepare directly
- place fields
- save template
- reopen template
- confirm fields/signer metadata persist
8. Bulk Send
- upload/select source document
- import multiple recipients
- send in batch
- confirm fallback behavior still works if edge batching fails
- confirm each recipient gets a unique signing URL
8A. India Route
Use /india-desk.
- confirm the route opens independently of the standard
/sendpage - confirm the current active document is shown
- confirm signer recipients are inherited from the active document
- test each verification mode:
- standard
- verification-first
- aadhaar-first scaffold
- confirm contact masking can be enabled from this route without changing the standard send route
- confirm witness/stamp paper toggles affect only the India route summary/message
- send a document from India Desk and confirm the audit trail records India-route usage
9. Webhooks And Storage
If license/webhook settings are configured:
- complete a signing session
- confirm webhook fires
- inspect delivery logs
- verify HMAC signature is present when secret is set
- confirm signed PDF upload path exists
- confirm signed URL expiry metadata looks correct
10. AI Detection
Using real PDFs:
- run field detection
- inspect placement quality on dense forms
- inspect sparse/simple agreements
- compare AI-assisted vs fallback behavior
11. Docs Site
- run
npm run docs:dev - open the docs site
- confirm sidebar/nav work
- confirm
npm run build:docspasses - once pushed, confirm GitHub Pages deployment completes
12. Recommended Bug Log Format
For each issue, capture:
- environment/device
- route used
- exact steps
- expected result
- actual result
- screenshot or recording
- whether it reproduces consistently
Highest-Value Manual Checks Tomorrow
If time is limited, do these first:
- mobile signer link on iPhone Safari
- mobile signer link on Android Chrome
- sequential 2-signer request
- email delivery + open-from-email
- complete signing + webhook/storage verification
- masked-contact multi-signer flow in both parallel and sequential modes