ఇన్‌బాక్స్ గందరగోళం లేకుండా పాస్‌వర్డ్‌లెస్ లాగిన్‌ను పరీక్షించండి

డెమోలో పాస్‌వర్డ్‌లెస్ లాగిన్ చాలా సులభంగా కనిపిస్తుంది. ఒక వినియోగదారు ఈమెయిల్ నమోదు చేస్తారు, ఒక మ్యాజిక్ లింక్ పొందుతారు మరియు లాగిన్ అవుతారు.

స్టేజింగ్‌లో, ఈ ప్రక్రియ విఫలమవుతుంది. లింక్‌లు షేర్డ్ ఇన్‌బాక్స్‌లలో లేదా పాత ఈమెయిల్ ఏలియాస్‌లలోకి చేరుతాయి. దీనివల్ల టెస్టింగ్ గందరగోళంగా మారుతుంది.

మీరు పాస్‌వర్డ్‌లెస్ అథెంటికేషన్‌ను ఒకే ఒక వ్యవస్థగా పరిగణించాలి. మీరు JavaScript క్లయింట్, Node.js బ్యాకెండ్, ఈమెయిల్ డెలివరీ మరియు చివరి సెషన్‌ను పరీక్షించాల్సి ఉంటుంది.

మీరు ఇన్‌బాక్స్‌ను విస్మరిస్తే, మీ API టెస్ట్‌లు విజయవంతమైనట్లు చూపించినప్పటికీ, వినియోగదారు అనుభవం (user experience) దెబ్బతినవచ్చు.

సాధారణ వైఫల్యాలలో ఇవి ఉన్నాయి:

  • రీట్రై చేసిన తర్వాత బ్యాకెండ్ రెండు లింక్‌లను పంపుతుంది.
  • ఈమెయిల్ తప్పు ఎన్విరాన్మెంట్ హోస్ట్‌కు (environment host) పాయింట్ చేస్తుంది.
  • పాత లింక్ ఉండాల్సిన దానికంటే ఎక్కువ కాలం పనిచేస్తుంది.
  • కుక్కీ (cookie) సెట్ కావడానికి ముందే ఫ్రంటెండ్ వినియోగదారుని లాగిన్ అయినట్లుగా గుర్తిస్తుంది.

ప్రతి టెస్ట్ రన్ కోసం ఒక ఐసోలేటెడ్ (isolated) ఇన్‌బాక్స్‌ను ఉపయోగించండి. ఇది మీ డేటాను శుభ్రంగా ఉంచుతుంది మరియు డీబగ్గింగ్‌ను వేగవంతం చేస్తుంది. ఒకే ఇన్‌బాక్స్‌ను మూడు టెస్ట్‌లు ఉపయోగిస్తే, మీరు లోపాన్ని కనుగొనలేరు.

ఈ వర్క్‌ఫ్లోను అనుసరించండి:

  • మీ UI నుండి లేదా ఎండ్-టు-ఎండ్ (end-to-end) టెస్ట్ ద్వారా లాగిన్‌ను ప్రారంభించండి.
  • మీ స్టేజింగ్ పాత్ ద్వారా Node.js లింక్‌ను పంపనివ్వండి.
  • కొత్త, ఐసోలేటెడ్ ఇన్‌బాక్స్‌లో సందేశాన్ని క్యాప్చర్ చేయండి.
  • అదే బ్రౌజర్ సెషన్‌లో అత్యంత కొత్త లింక్‌ను తెరవండి.
  • అథెంటికేటెడ్ స్టేట్‌ను (authenticated state) ధృవీకరించండి.

ఒక మంచి టెస్ట్ కేవలం ఈమెయిల్ వచ్చిందో లేదో చూడటమే కాకుండా, ఈ క్రింది దశలను క్రమ పద్ధతిలో తనిఖీ చేయాలి:

  • లాగిన్ రిక్వెస్ట్ ఒక న్యూట్రల్ సక్సెస్ రెస్పాన్స్‌ను తిరిగి ఇస్తుంది.
  • ఖచ్చితంగా ఒకే ఒక కొత్త మ్యాజిక్ లింక్ ఉంటుంది.
  • లింక్ హోస్ట్ మీ స్టేజింగ్ డొమైన్‌తో సరిపోలుతుంది.
  • టోకెన్ ఒక చెల్లుబాటు అయ్యే సెషన్‌ను ప్రారంభిస్తుంది.
  • అదే లింక్‌ను మళ్ళీ ఉపయోగించడానికి ప్రయత్నిస్తే విఫలమవుతుంది.
  • మాన్యువల్ రిఫ్రెష్ లేకుండా యాప్ UIని అప్‌డేట్ చేస్తుంది.

బ్యాకెండ్‌లో, మీ లాగ్స్‌కు ఒక కోరిలేషన్ ఐడి (correlation ID)ని జోడించండి. ఇది రిక్వెస్ట్ సృష్టించబడినప్పటి నుండి చివరి సెషన్ వరకు దానిని ట్రాక్ చేయడానికి మీకు సహాయపడుతుంది.

మీ అన్ని టెస్ట్‌లను ఈమెయిల్ ఆధారిత టెస్ట్‌లతో భర్తీ చేయకండి. లాజిక్ కోసం వేగవంతమైన యూనిట్ టెస్ట్‌లను