ઇનબોક્સના ઘોંઘાટ વગર Nodejs ડાયજેસ્ટ ઇમેઇલ્સનું ટેસ્ટિંગ કરવું
ડાયજેસ્ટ ઇમેઇલ્સ ત્યારે સમસ્યાઓ ઊભી કરે છે જ્યારે પ્રિવ્યૂ એન્વાયરમેન્ટ્સ (preview environments) એક જ શેર કરેલા મેઇલબોક્સમાં સારાંશ મોકલે છે.
તમે કયો મેસેજ કયા બિલ્ડનો છે તેનો ટ્રેક ગુમાવી દો છો. તમે જાણી શકતા નથી કે અનસબ્સ્ક્રાઇબ લિંક (unsubscribe link) હાલની છે કે નહીં. ટેમ્પલેટ યુઝર સેગમેન્ટ સાથે મેળ ખાય છે કે નહીં તે પણ તમે ચૂકી શકો છો.
હું ડાયજેસ્ટ ઇમેઇલ QA ને પ્રોડક્ટ પાથ તરીકે ગણું છું. JavaScript એપ ઇવેન્ટ શેડ્યૂલ કરે છે. Node.js કન્ટેન્ટ રેન્ડર કરે છે. ઇનબોક્સ ચેક અંતિમ અનુભવની પુષ્ટિ કરે છે.
ઘણી ટીમો આ ભૂલો કરે છે:
- તેઓ ઘણા રન માટે એક જ મેઇલબોક્સનો ફરીથી ઉપયોગ કરે છે. સોમવારનો ડાયજેસ્ટ મંગળવારના બિલ્ડની બાજુમાં આવી જાય છે.
- તેઓ કામચલાઉ ઇમેઇલ સ્ટ્રિંગ્સ સાથેના જૂના સ્ટેજિંગ ડેટા પર આધાર રાખે છે.
- તેઓ રેન્ડર થયેલ HTML ને અંતિમ લક્ષ્ય માને છે. જ્યારે લાઇવ ડેટા ખોટો હોય ત્યારે પણ HTML સ્નેપશોટ્સ પાસ થઈ જાય છે.
એક સારા ટેસ્ટ દ્વારા વાચકને મળતા વાસ્તવિક મેસેજની સાબિતી મળવી જોઈએ. તેના બદલે આ સરળ લૂપનો ઉપયોગ કરો:
- ટેસ્ટ ટ્રિગર ચોક્કસ યુઝર સેગમેન્ટ માટે ડાયજેસ્ટ બનાવે છે.
- Node.js વાસ્તવિક સ્ટેજિંગ ડેટાનો ઉપયોગ કરીને ડાયજેસ્ટ જનરેટ કરે છે.
- ટેસ્ટ તે ચોક્કસ રન માટે એક અલગ (isolated) ઇનબોક્સનો ઉપયોગ કરે છે.
- રનર ડાયજેસ્ટ ખોલે છે અને સમરી બ્લોક્સ તપાસે છે.
- ટેસ્ટ ચકાસે છે કે લિંક્સ સાચા હોસ્ટ અને કેમ્પેઈન પેરામીટર્સ તરફ નિર્દેશ કરે છે.
ઇમેઇલ એડ્રેસને ડિસ્પોઝેબલ ઇન્ફ્રાસ્ટ્રક્ચર તરીકે ગણો. દરેક સિનારિયો માટે એક કામચલાઉ મેઇલ એકાઉન્ટ બનાવો. આ એક ફ્લેકી (flaky) જોબને બીજી જોબ બગાડતી અટકાવશે.
એક ઉપયોગી ડાયજેસ્ટ ટેસ્ટ આ વિગતો તપાસે છે:
- શેડ્યૂલ કરેલી જોબ સાચા સેગમેન્ટ માટે એક ડાયજેસ્ટ એન્ક્યુ (enqueue) કરે છે.
- સબ્જેક્ટ લાઇન સાચી તારીખ દર્શાવે છે.
- પ્રીહેડર (preheader) હાલના ફીચર ફ્લેગ્સ સાથે મેળ ખાય છે.
- લિંક્સ સાચા હોસ્ટ, UTM ટેગ્સ અને લોકેલનો ઉપયોગ કરે છે.
- અનસબ્સ્ક્રાઇબ લિંક્સ સાચા એન્વાયરમેન્ટ પર જાય છે.
- એક જ યુઝર માટે કોઈ ડુપ્લીકેટ ડાયજેસ્ટ દેખાતા નથી.
CI, પ્રિવ્યૂ બિલ્ડ્સ અને મેન્યુઅલ QA વચ્ચે એક જ મેઇલબોક્સ શેર કરવાનું બંધ કરો. તે શરૂઆતમાં કાર્યક્ષમ લાગે છે, પરંતુ પછીથી તે ખોટા પોઝિટિવ્સ (false positives) પેદા કરે છે.
આઇસોલેશન (Isolation) ફિક્સને ઝડપી બનાવે છે. જ્યારે ડાયજેસ્ટ નિષ્ફળ જાય છે, ત્યારે તમને ખબર પડે છે કે સમસ્યા શેડ્યૂલરની છે, રેન્ડરરની છે, કે મેસેજની પોતે છે.
સ્ત્રોત: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh
