Test Passwordless Login Without Inbox Chaos
Passwordless login looks easy in a demo. A user enters an email. A magic link arrives. The session starts.
In staging, this flow gets messy. Links land in shared inboxes or old aliases. This creates noise.
You must treat passwordless auth as one full system. You need to test the JavaScript client, the Node.js backend, the email delivery, and the session. If you skip the inbox, you might ship a broken flow even if your API tests pass.
Common failures include:
- రీట్రై చేసిన తర్వాత బ్యాకెండ్ రెండు లింక్లను పంపుతుంది.
- ఈమెయిల్ తప్పు హోస్ట్కు పాయింట్ చేస్తుంది.
- పాత లింక్ ఉండాల్సిన దానికంటే ఎక్కువ కాలం పనిచేస్తుంది.
- కుక్కీ సెట్ కావడానికి ముందే ఫ్రంటెండ్ వినియోగదారుడిని సైన్డ్-ఇన్ చేసినట్లుగా గుర్తిస్తుంది.
ప్రతి టెస్ట్ రన్ కోసం ఒక ఐసోలేటెడ్ ఇన్బాక్స్ను ఉపయోగించండి. ఇది టెస్టింగ్ డేటా టీమ్ మెయిల్ బాక్స్లలోకి లీక్ అవ్వకుండా నిరోధిస్తుంది. టెస్ట్ రన్లను విడిగా ఉంచడానికి స్టేజింగ్ కోసం డిస్పోజబుల్ ఈమెయిల్ సర్వీసులను ఉపయోగించండి.
ఐసోలేషన్ వల్ల డీబగ్గింగ్ సులభమవుతుంది. ఒకవేళ టెస్ట్ విఫలమైతే, మీరు ఒకే ఇన్బాక్స్ మరియు ఒకే యూజర్ జర్నీని చూడగలగాలి. ఏ మెసేజ్ ఏ బిల్డ్కు చెందినదో మీకు ఖచ్చితంగా తెలియాలి.
ఒక మంచి టెస్ట్ ఈ క్రింది దశలను వరుస క్రమంలో తనిఖీ చేస్తుంది:
- అకౌంట్ ఉందో లేదో తెలియజేయకుండానే లాగిన్ రిక్వెస్ట్ విజయవంతమవుతుంది.
- ఖచ్చితంగా ఒకే ఒక కొత్త మ్యాజిక్-లింక్ వస్తుంది.
- లింక్ హోస్ట్ మీ స్టేజింగ్ డొమైన్తో సరిపోలుతుంది.
- లింక్ ఒక చెల్లుబాటు అయ్యే సెషన్ను ప్రారంభిస్తుంది.
- అదే లింక్ను మళ్ళీ ఉపయోగించడం విఫలమవుతుంది.
- మాన్యువల్ రిఫ్రెష్ లేకుండానే యాప్ నావిగేషన్ను అప్డేట్ చేస్తుంది.
Node.js వైపున, మీ లాగ్స్కు ఒక కోరిలేషన్ IDని జోడించండి. రిక్వెస్ట్ నుండి ఈమెయిల్ పంపడం మరియు చివరి సెషన్ వరకు దానిని ఉపయోగించండి. ఈమెయిల్స్ ఆలస్యమైనా లేదా డూప్లికేట్ అయినా బగ్లను కనుగొనడంలో ఇది మీకు సహాయపడుతుంది.
మీ అన్ని పరీక్షలను ఈమెయిల్ పరీక్షలతో భర్తీ చేయకండి. టోకెన్ లాజిక్ మరియు సెషన్ రూల్స్ కోసం వేగవంతమైన యూనిట్ టెస్ట్లను ఉపయోగించండి. అసలైన యూజర్ ఎక్స్పీరియన్స్ పనిచేస్తుందని నిరూపించడానికి ఈమెయిల్ పాత్ను ఉపయోగించండి.
Checklist before you ship:
- ఒక లాగిన్ రిక్వెస్ట్ కేవలం ఒకే ఒక యాక్టివ్ లింక్ను సృష్టిస్తుంది.
- స్టేజింగ్లో కొత్త ఈమెయిల్ను సులభంగా పార్స్ చేయవచ్చు.
- లింక్ సరైన హోస్ట్పై పనిచేస్తుంది.
- లింక్ను మళ్ళీ ఉపయోగించలేము.
- లాగౌట్ మరియు రీ-లాగిన్ ఒక కొత్త క్లీన్ టోకెన్ను సృష్టిస్తాయి.
