Testing Nodejs Digest Emails Without Inbox Noise

প্রিভিউ এনভায়রনমেন্টগুলো যখন একটি শেয়ার্ড মেইলবক্সে সামারি পাঠায়, তখন ডাইজেস্ট ইমেলগুলো সমস্যা তৈরি করে।

কোন মেসেজটি কোন বিল্ডের তা আপনি ট্র্যাক করতে পারবেন না। আনসাবস্ক্রাইব লিঙ্কটি বর্তমান কি না তা আপনি বুঝতে পারবেন না। টেমপ্লেটটি সঠিক ইউজার সেগমেন্টের সাথে মিলছে কি না তাও আপনি যাচাই করতে পারবেন না।

ডাইজেস্ট ইমেল QA-কে একটি প্রোডাক্ট পাথ হিসেবে বিবেচনা করুন। JavaScript অ্যাপ ইভেন্টটি শিডিউল করে। Node.js কন্টেন্ট রেন্ডার করে। ইনবক্স চেক সেই অভিজ্ঞতা নিশ্চিত করে। আপনি যদি কোনো অংশ বাদ দেন, তবে আপনার টেস্ট দ্রুত পাস হতে পারে কিন্তু তা আপনাকে কোনো কার্যকর তথ্য দেবে না।

অনেক টিম লোকালি টেমপ্লেট রেন্ডার করে এবং HTML স্ন্যাপশট নেয়। এটি পাঠক আসলে কী মেসেজ পাচ্ছেন তা প্রমাণ করে না।

এই নয়েজ বা গোলমাল তৈরি হয় একটি মেইলবক্স বারবার ব্যবহার করার ফলে। সোমবারের ডাইজেস্ট মঙ্গলবার করা রিট্রাই-এর ঠিক পাশেই বসে থাকে। একজন টিম মেম্বার ভুল মেসেজের লিঙ্ক ক্লিক করে ফেলতে পারেন। আপনার টেস্ট 'গ্রিন' দেখালেও আপনার রিভিউ ট্রেইলটি এলোমেলো হয়ে যাবে।

এই সহজ লুপটি ব্যবহার করুন:

  • একটি ব্রাউজার টেস্ট একটি পরিচিত ইউজার সেগমেন্টের জন্য একটি ডাইজেস্ট সিনারিও ট্রিগার করে।
  • Node.js রিয়েল স্টেজিং ডেটা ব্যবহার করে ডাইজেস্ট তৈরি করে।
  • টেস্টটি সেই নির্দিষ্ট রানের জন্য একটি আইসোলেটেড ইনবক্স ব্যবহার করে।
  • রানার ডাইজেস্টটি ওপেন করে এবং সামারি ব্লকগুলো চেক করে।
  • টেস্টটি যাচাই করে যে লিঙ্কগুলো প্রত্যাশিত হোস্ট এবং ক্যাম্পেইন প্যারামিটারে নির্দেশ করছে কি না।

ইমেল অ্যাড্রেসগুলোকে ডিসপোজেবল ইনফ্রাস্ট্রাকচার হিসেবে বিবেচনা করুন। প্রতিটি সিনারিওর জন্য অস্থায়ী মেইল তৈরি করুন। এটি একটি ফ্ল্যাকি জব যেন পরবর্তী জবটিকে নষ্ট না করে তা নিশ্চিত করে।

শুধু "মেসেজ এসেছে" দেখে থেমে যাবেন না। একটি ভালো টেস্ট এই বিষয়গুলো যাচাই করে:

  • জবটি সঠিক সেগমেন্টের জন্য একটি ডাইজেস্ট এনকিউ (enqueue) করে।
  • সাবজেক্ট লাইনে সঠিক তারিখ দেখায়।
  • প্রিহেডার বর্তমান ফিচার ফ্ল্যাগগুলোর সাথে মিলে যায়।
  • লিঙ্কগুলোতে প্রত্যাশিত হোস্ট এবং UTM ট্যাগ ব্যবহার করা হয়।
  • আনসাবস্ক্রাইব লিঙ্কগুলো সঠিক এনভায়রনমেন্টে নিয়ে যায়।
  • একই ইউজারের জন্য কোনো ডুপ্লিকেট ডাইজেস্ট আসে না।

এই তিনটি ভুল এড়িয়ে চলুন:

  1. CI, প্রিভিউ বিল্ড এবং ম্যানুয়াল QA-এর মধ্যে একটি মেইলবক্স শেয়ার করা।
  2. রেন্ডার করা HTML-কে চূড়ান্ত লক্ষ্য হিসেবে বিবেচনা করা।
  3. পুরনো বা অব্যবহৃত টেস্ট অ্যাকাউন্টগুলো ক্লিনআপ করতে ভুলে যাওয়া।

আপনার চেকলিস্ট ছোট রাখুন যাতে আপনি এটি প্রায়ই চালাতে পারেন। আইসোলেশন আপনার রেজাল্টগুলোকে পাঠযোগ্য রাখে এবং ফিক্স দ্রুত করতে সাহায্য করে।

Source: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh