இன்பாக்ஸ் இரைச்சல் இல்லாமல் Nodejs Digest மின்னஞ்சல்களைச் சோதனை செய்தல்
முன்னோக்கு சூழல்கள் (preview environments) ஒரு பொதுவான மின்னஞ்சல் பெட்டிக்கு (shared mailbox) சுருக்கங்களை அனுப்பும்போது, Digest மின்னஞ்சல்கள் சிக்கல்களை ஏற்படுத்துகின்றன.
எந்தச் செய்தி எந்தப் பதிவுக்கு (build) உரியது என்பதைக் கண்டறிய முடியாமல் போகலாம். 'Unsubscribe' இணைப்பு தற்போதையதா என்பதை உங்களால் சொல்ல முடியாது. டெம்ப்ளேட் (template) பயனர் பிரிவிற்கு (user segment) சரியாகப் பொருந்துகிறதா என்பதையும் நீங்கள் கவனிக்கத் தவறலாம்.
நான் Digest மின்னஞ்சல் QA-வை ஒரு தயாரிப்புப் பாதையாக (product path) கருதுகிறேன். JavaScript செயலி நிகழ்வைத் திட்டமிடுகிறது (schedules). Node.js உள்ளடக்கத்தை உருவாக்குகிறது (renders). இன்பாக்ஸ் சரிபார்ப்பு இறுதி அனுபவத்தை உறுதிப்படுத்துகிறது.
பல குழுக்கள் இந்தத் தவறுகளைச் செய்கின்றன:
- அவர்கள் பல முறை இயக்குவதற்கு ஒரே மின்னஞ்சல் பெட்டியையே மீண்டும் பயன்படுத்துகிறார்கள். திங்கட்கிழமை Digest, செவ்வாய்க்கிழமை build-க்கு அருகிலேயே அமர்ந்திருக்கும்.
- அவர்கள் தற்காலிக மின்னஞ்சல் சரங்களுடன் (email strings) பழைய staging தரவுகளைச் சார்ந்திருக்கிறார்கள்.
- அவர்கள் உருவாக்கப்பட்ட HTML-ஐ இறுதி இலக்காகக் கருதுகிறார்கள். நேரடித் தரவு (live data) தவறாக இருந்தாலும் HTML ஸ்னாப்ஷாட்டுகள் (snapshots) தேர்ச்சி பெற்றுவிடும்.
ஒரு சிறந்த சோதனை, வாசகர் பெறும் உண்மையான செய்தியை நிரூபிக்க வேண்டும். அதற்குப் பதிலாக இந்த எளிய சுழற்சியைப் (loop) பயன்படுத்தவும்:
- ஒரு சோதனைத் தூண்டுதல் (test trigger) ஒரு குறிப்பிட்ட பயனர் பிரிவிற்கான Digest-ஐ உருவாக்குகிறது.
- Node.js உண்மையான staging தரவைப் பயன்படுத்தி Digest-ஐ உருவாக்குகிறது.
- அந்த குறிப்பிட்ட முறைக்காக (run) சோதனை ஒரு தனிமைப்படுத்தப்பட்ட (isolated) இன்பாக்ஸைப் பயன்படுத்துகிறது.
- Runner அந்த Digest-ஐத் திறந்து சுருக்கப் பகுதிகளைச் (summary blocks) சரிபார்க்கிறது.
- இணைப்புகள் சரியான host மற்றும் பிரச்சார அளவுருக்களைக் (campaign parameters) குறிக்கின்றனவா என்பதைச் சோதனை சரிபார்க்கிறது.
மின்னஞ்சல் முகவரிகளைத் தற்காலிகக் கட்டமைப்பாக (disposable infrastructure) கருதுங்கள். ஒவ்வொரு சூழலுக்கும் (scenario) ஒரு தற்காலிக மின்னஞ்சல் கணக்கை உருவாக்குங்கள். இது ஒரு நிலையற்ற பணி (flaky job) அடுத்த பணியைச் சிதைப்பதைத் தடுக்கும்.
ஒரு பயனுள்ள Digest சோதனை இந்த விவரங்களைச் சரிபார்க்கிறது:
- திட்டமிடப்பட்ட பணி சரியான பிரிவிற்கான ஒரு Digest-ஐ வரிசையில் சேர்க்கிறது (enqueues).
- தலைப்பு வரிசை (subject line) சரியான தேதியைக் காட்டுகிறது.
- Preheader தற்போதைய feature flags-உடன் பொருந்துகிறது.
- இணைப்புகள் சரியான host, UTM tags மற்றும் locale ஆகியவற்றைப் பயன்படுத்துகின்றன.
- Unsubscribe இணைப்புகள் சரியான சூழலுக்கு (environment) அழைத்துச் செல்கின்றன.
- ஒரே பயனருக்குத் திரும்பத் திரும்ப (duplicate) Digest வரவில்லை என்பதை உறுதி செய்கிறது.
CI, preview builds மற்றும் manual QA ஆகியவற்றிற்கு இடையே ஒரே மின்னஞ்சல் பெட்டியைப் பகிர்வதை நிறுத்துங்கள். இது ஆரம்பத்தில் திறமையானதாகத் தோன்றலாம், ஆனால் பின்னர் தவறான நேர்மறை முடிவுகளை (false positives) உருவாக்கும்.
தனிமைப்படுத்துதல் (Isolation) சரிசெய்தல்களை விரைவுபடுத்துகிறது. ஒரு Digest தோல்வியடையும் போது, சிக்கல் scheduler-ல் உள்ளதா, renderer-ல் உள்ளதா அல்லது செய்தியிலேயே உள்ளதா என்பதை நீங்கள் அறியலாம்.
ஆதாரம்: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh
