இன்பாக்ஸ் குழப்பங்கள் இன்றி பாஸ்வேர்ட்லெஸ் லாகினைச் (Passwordless login) சோதிக்கவும்

ஒரு டெமோவில் கடவுச்சொல் இல்லா லாகின் (Passwordless login) எளிதாகத் தோன்றலாம். ஒரு பயனர் மின்னஞ்சலை உள்ளிடுகிறார், ஒரு மேஜிக் லிங்க் (magic link) பெறுகிறார், மற்றும் லாகின் செய்கிறார்.

ஸ்டேஜிங்கில் (staging), இந்த முறை தோல்வியடைகிறது. லிங்க்குகள் பகிரப்பட்ட இன்பாக்ஸ்களிலோ அல்லது பழைய மின்னஞ்சல் ஏலியாஸ்களிலோ (email aliases) போய்விடுகின்றன. இதனால் சோதனை செய்தல் குழப்பமாகிவிடுகிறது.

நீங்கள் கடவுச்சொல் இல்லா அங்கீகாரத்தை (passwordless auth) ஒரு ஒற்றை அமைப்பாகக் கருத வேண்டும். நீங்கள் JavaScript கிளையண்ட், Node.js பேக்எண்ட், மின்னஞ்சல் விநியோகம் மற்றும் இறுதி செஷன் (session) ஆகியவற்றைச் சோதிக்க வேண்டும்.

நீங்கள் இன்பாக்ஸைத் தவிர்த்தால், உங்கள் API சோதனைகள் வெற்றிபெறலாம், ஆனால் பயனர் அனுபவம் (user experience) தோல்வியடையக்கூடும்.

பொதுவான தோல்விகள்:

  • மறுமுயற்சிக்குப் பிறகு பேக்எண்ட் இரண்டு லிங்க்குகளை அனுப்புகிறது.
  • மின்னஞ்சல் தவறான என்விரான்மென்ட் ஹோஸ்டிற்கு (environment host) வழிநடத்துகிறது.
  • ஒரு பழைய லிங்க் இருக்க வேண்டிய காலத்தை விட அதிக நேரம் செயல்படுகிறது.
  • குக்கீ (cookie) அமைவதற்கு முன்பே பிரண்ட்எண்ட் பயனரை லாகின் செய்தவராகக் குறிக்கிறது.

ஒவ்வொரு சோதனை ஓட்டத்திற்கும் (test run) ஒரு தனிமைப்படுத்தப்பட்ட இன்பாக்ஸைப் (isolated inbox) பயன்படுத்தவும். இது உங்கள் தரவைச் சுத்தமாகவும், பிழைத்திருத்தத்தை (debugging) வேகமாகவும் வைத்திருக்க உதவும். மூன்று சோதனைகள் ஒரே இன்பாக்ஸைப் பயன்படுத்தினால், உங்களால் பிழையைக் கண்டறிய முடியாது.

இந்த பணிப்பாய்வைப் (workflow) பின்பற்றவும்:

  • உங்கள் UI அல்லது ஒரு end-to-end சோதனையிலிருந்து லாகினைத் தூண்டவும் (trigger).
  • உங்கள் ஸ்டேஜிங் பாதையின் மூலம் Node.js லிங்க்கை அனுப்பட்டும்.
  • ஒரு புதிய, தனிமைப்படுத்தப்பட்ட இன்பாக்ஸில் செய்தியைப் பிடிக்கவும்.
  • அதே பிரவுசர் செஷனில் புதிய லிங்க்கைத் திறக்கவும்.
  • அங்கீகரிக்கப்பட்ட நிலையை (authenticated state) சரிபார்க்கவும்.

ஒரு சிறந்த சோதனை என்பது மின்னஞ்சல் வந்ததா என்பதை மட்டும் சரிபார்ப்பதற்கும் மேலானது. இந்த நிலைகளை வரிசையாகச் சரிபார்க்கவும்:

  • லாகின் கோரிக்கை ஒரு நடுநிலையான வெற்றிகரமான பதிலை (neutral success response) வழங்குகிறது.
  • சரியாக ஒரு புதிய மேஜிக் லிங்க் மட்டுமே உள்ளது.
  • லிங்க் ஹோஸ்ட் உங்கள் ஸ்டேஜிங் டொமைனுடன் (staging domain) ஒத்துப்போகிறது.
  • டோக்கன் ஒரு செல்லுபடியாகும் செஷனைத் தொடங்குகிறது.
  • அதே லிங்க்கை மீண்டும் பயன்படுத்த முயலும்போது தோல்வியடைகிறது.
  • மேனுவல் ரீப்ரெஷ் (manual refresh) இல்லாமலேயே ஆப் UI-ஐப் புதுப்பிக்கிறது.

பேக்எண்டில், உங்கள் லாக்ஸ்களுடன் (logs) ஒரு correlation ID-ஐ இணைக்கவும். இது ஒரு கோரிக்கையை அதன் உருவாக்கம் முதல் இறுதி செஷன் வரை கண்காணிக்க உதவும்.

உங்கள் அனைத்து சோதனைகளையும் மின்னஞ்சல் சார்ந்த சோதனைகளால் (email-driven tests) மாற்ற வேண்டாம். லாஜிக்கிற்கு வேகமான யூனிட் சோதனைகளையும் (unit tests), உங்கள் ஸ்டேஜிங் தொகுப்பிற்கு (staging suite) இந்த இன்பாக்ஸ் முறையையும் பயன்படுத்தவும்.

தயாரிப்பை வெளியிடுவதற்கு முன் இந்தச் சரிபார்ப்புப் பட்டியலைப் (checklist) பயன்படுத்தவும்:

  • ஒரு லாகின் கோரிக்கை ஒரு செயல்பாட்டு லிங்க்கை மட்டுமே உருவாக்குகிறது.
  • புதிய மின்னஞ்சலை ஸ்டேஜிங்கில் எளிதாகப் பகுப்பாய்வு (parse) செய்ய முடியும்.
  • லிங்க் சரியான ஹோஸ்டில் பயனரை லாகின் செய்கிறது.
  • லிங்க்கை இரண்டு முறை பயன்படுத்த முடியாது.
  • லாக்அவுட் செய்து மீண்டும் லாகின் செய்யும்போது ஒரு புதிய டோக்கன் கிடைக்கிறது.

ஆதாரம்: https://dev.to/ryanlee91/how-to-test-passwordless-login-emails-in-javascript-without-inbox-chaos-56d0