Jaribu Mitiririko ya Mabadiliko ya Barua Pepe Bila Kupoteza Viungo
Kubadilisha barua pepe ya akaunti kunaonekana ni jambo dogo. Ni mtego wa kawaida kwa timu za QA. Mtester mmoja anasasisha anwani. Mtu mwingine anafungua barua pepe kwanza. Sasa timu inabishana kuhusu ikiwa ukurasa wa React umeharibika au ikiwa kiungo kilikuwa cha mtumiaji asiyefaa.
Mkanganyiko huu hutokea unapotumia sanduku la barua pepe (inbox) kama chombo cha pamoja badala ya sehemu ya kipengele (feature) chenyewe.
Mchakato wa mabadiliko ya barua pepe ni dhaifu. Unabadilisha akaunti zinazotumika. Unashughulika na watumiaji walioingia (authenticated users) na hali zinazosubiri (pending states).
Matatizo ya kawaida ni pamoja na:
- Ujumbe unaingia kwenye inbox ya pamoja bila mmiliki aliye wazi.
- Kiungo kinafanya kazi, lakini UI inaonyesha data ya zamani.
- Backend inasasishwa, lakini cache ya frontend inabaki kuwa ya zamani.
- Watestari wanabonyeza viungo vilivyokusudiwa kwa watestari wengine.
Ili kurekebisha hili, tumia barua pepe ya muda (burner email) kwa kila mchakato wa majaribio. Usitumie alias moja ya staging.
Fuata mfuatano huu:
- Tengeneza mtumiaji wa majaribio kupitia programu.
- Omba mabadiliko ya barua pepe kwenye mipangilio ya React.
- Tuma barua pepe kupitia backend halisi.
- Elekeza ujumbe kwenye inbox ya matumizi ya mara moja.
- Fungua kiungo na uhakikishe kuwa skrini ya mipangilio inaonyesha anwani mpya.
Kutengwa (Isolation) kunaweka umiliki wazi. Hutahitaji maelezo yaliyochafuka kwenye Slack ili kukumbuka uliitumia inbox gani.
Kanuni kwa programu za React: kila mara kagua skrini baada ya kusoma data mpya. Usiamini hali ya mteja inayotabiri matokeo (optimistic client state). Mabadiliko (mutation) yanaweza kurudisha mafanikio, lakini kuongeza upya ukurasa (page reload) kunaweza kurudisha thamani ya zamani. Hili hutokea zaidi kuliko watu wanavyokubali.
Jaribio lako la mwisho-hadi-mwisho (end-to-end test) lazima uhakikishe:
- Barua pepe inaenda kwenye anwani mpya inayosubiri.
- Kiungo kinaelekeza kwenye host sahihi.
- Kiungo kinasasisha rekodi ya akaunti.
- Anwani ya zamani inatoweka baada ya refetch.
- Kutumia tena kiungo kunafeli kwa usalama.
Uhakiki wa frontend (Frontend assertions) ndio sehemu muhimu zaidi. Log ya backend inayosema mafanikio haina maana ikiwa mtumiaji anaona anwani isiyo sahihi. Ikiwa cache au store yako ni ya zamani, kipengele kimeharibika.
Uwezo wa kufuatilia (Traceability) pia husaidia. Tumia correlation ID kwenye log zako na metadata ya barua pepe. Hii inaunganisha ombi na uwasilishaji pamoja na uthibitisho.
Mambo ya kuzingatia (Tradeoffs):
- Inbox polling ni polepole kuliko mocks.
- Anwani za kutupwa (disposable addresses) lazima ziwe na data zisizo za uzalishaji (non-production data) pekee.
- Mazingira ya utangulizi (preview environments) yanahitaji sheria za usafishaji.
Usipuuze hili. Mitiririko ya barua pepe hukatika katika mapengo kati ya mifumo. Hapo ndipo mocks huwa dhaifu zaidi.
