ఇన్బాక్స్లో గందరగోళం లేకుండా Nodejs డైజెస్ట్ ఈమెయిల్స్ను పరీక్షించడం
ప్రివ్యూ ఎన్విరాన్మెంట్లు (preview environments) సమ్మరీలను ఒకే షేర్డ్ మెయిల్బాక్స్కు పంపినప్పుడు డైజెస్ట్ ఈమెయిల్స్ సమస్యలను కలిగిస్తాయి.
ఏ సందేశం ఏ బిల్డ్కు సంబంధించిందో మీరు గుర్తించలేరు. అన్సబ్స్క్రైబ్ లింక్ (unsubscribe link) ప్రస్తుతమైనదా కాదా అని మీరు చెప్పలేరు. టెంప్లేట్ యూజర్ సెగ్మెంట్కు సరిపోతుందో లేదో మీరు గమనించలేకపోవచ్చు.
నేను డైజెస్ట్ ఈమెయిల్ QAను ఒక ప్రొడక్ట్ పాత్గా పరిగణిస్తాను. JavaScript యాప్ ఈవెంట్ను షెడ్యూల్ చేస్తుంది. Node.js కంటెంట్ను రెండర్ చేస్తుంది. ఇన్బాక్స్ను తనిఖీ చేయడం ద్వారా తుది అనుభవాన్ని (final experience) నిర్ధారిస్తారు.
చాలా టీమ్లు ఈ తప్పులు చేస్తాయి:
- వారు అనేక రన్ల కోసం ఒకే మెయిల్బాక్స్ను మళ్లీ ఉపయోగిస్తారు. సోమవారం డైజెస్ట్, మంగళవారం బిల్డ్ పక్కనే ఉంటుంది.
- వారు తాత్కాలిక ఈమెయిల్ స్ట్రింగ్స్తో ఉన్న పాత స్టేజింగ్ డేటాపై ఆధారపడతారు.
- వారు రెండర్ చేసిన HTMLను ముగింపు దశగా భావిస్తారు. లైవ్ డేటా తప్పుగా ఉన్నప్పటికీ HTML స్నాప్షాట్లు పాస్ అవుతాయి.
ఒక మంచి పరీక్ష అనేది పాఠకుడు పొందే అసలు సందేశాన్ని నిరూపించాలి. దానికి బదులుగా ఈ సరళమైన లూప్ను ఉపయోగించండి:
- ఒక టెస్ట్ ట్రిగ్గర్ నిర్దిష్ట యూజర్ సెగ్మెంట్ కోసం డైజెస్ట్ను సృష్టిస్తుంది.
- Node.js వాస్తవ స్టేజింగ్ డేటాను ఉపయోగించి డైజెస్ట్ను రూపొందిస్తుంది.
- ఆ నిర్దిష్ట రన్ కోసం పరీక్ష ఒక ఐసోలేటెడ్ (isolated) ఇన్బాక్స్ను ఉపయోగిస్తుంది.
- రన్నర్ డైజెస్ట్ను తెరిచి సమ్మరీ బ్లాక్లను తనిఖీ చేస్తుంది.
- లింక్లు సరైన హోస్ట్ మరియు క్యాంపెయిన్ పారామీటర్లను సూచిస్తున్నాయో లేదో పరీక్ష నిర్ధారిస్తుంది.
ఈమెయిల్ అడ్రస్లను డిస్పోజబుల్ ఇన్ఫ్రాస్ట్రక్చర్గా పరిగణించండి. ప్రతి సినారియో కోసం ఒక తాత్కాలిక మెయిల్ అకౌంట్ను సృష్టించండి. ఇది ఒక ఫ్లేకీ జాబ్ (flaky job) తదుపరి జాబ్ను దెబ్బతీయకుండా నిరోధిస్తుంది.
ఒక ఉపయోగకరమైన డైజెస్ట్ పరీక్ష ఈ వివరాలను తనిఖీ చేస్తుంది:
- షెడ్యూల్ చేసిన జాబ్ సరైన సెగ్మెంట్ కోసం ఒక డైజెస్ట్ను ఎన్క్యూ (enqueue) చేస్తుంది.
- సబ్జెక్ట్ లైన్ సరైన తేదీని చూపుతుంది.
- ప్రీహెడర్ (preheader) ప్రస్తుత ఫీచర్ ఫ్లాగ్లతో సరిపోలుతుంది.
- లింక్లు సరైన హోస్ట్, UTM ట్యాగ్లు మరియు లోకేల్ను ఉపయోగిస్తాయి.
- అన్సబ్స్క్రైబ్ లింక్లు సరైన ఎన్విరాన్మెంట్కు చేరుతాయి.
- ఒకే యూజర్కు డూప్లికేట్ డైజెస్ట్లు కనిపించవు.
CI, ప్రివ్యూ బిల్డ్లు మరియు మాన్యువల్ QA మధ్య ఒకే మెయిల్బాక్స్ను పంచుకోవడాన్ని ఆపండి. ఇది మొదట్లో సమర్థవంతంగా అనిపించవచ్చు, కానీ తర్వాత ఫాల్స్ పాజిటివ్స్ను (false positives) సృష్టిస్తుంది.
ఐసోలేషన్ వల్ల ఫిక్స్లు వేగంగా జరుగుతాయి. డైజెస్ట్ విఫలమైనప్పుడు, సమస్య షెడ్యూలర్లో ఉందా, రెండరర్లో ఉందా లేదా సందేశంలో ఉందా అనేది మీకు తెలుస్తుంది.
Source: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh
