Testarea email-urilor folosind Cypress

Testarea email-urilor nu e cel mai simplu lucru dar exista solutii relativ accesibile. In acest articol vreau sa iti arat cum poti sa folosesti serviciul Mailosaur si CypressIO pentru face teste legate de client emails. Totul porneste de la instalarea CypressIO care se face destul de usor urmarind acest tutorial de pe website-ul oficial. Odata instalat va fi nevoie sa ne ocupam si de pluginul cypress-mailosaur urmand pasii de mai jos.

  1. Instalam pluginul Mailosaur folosind comanda: npm i -D cypress-mailosaur
  2. Adaugam in fisierul support/e2e.js aceasta linie: import ‘cypress-mailosaur’;
  3. Ne facem un cont pe Mailosaur.com si generam un API
  4. Adaugam in cypress.config.js linia (exemplu): env: {MAILOSAUR_API_KEY: “your-key-here”,},
  5. Cautam ServerID si adresa de email a contului in dashboard

Scriem testul automat

Incepem prin a creea o suita noua si un test.

describe('Storia website', () => {
  it('should send a reset password email', () => {
  })
})

Deschide pagina de resetare a parolei de pe website-ul Storia.ro.

cy.visit('https://www.storia.ro/ro/login/reset');

Inchidem popup-ul de cookies, scriem adresa noastra de email si apasam butonul de confirmare.

cy.get('#onetrust-accept-btn-handler').click();
cy.get('#reset-email').type('[email protected]');
cy.get('.css-u8gy83').click();

Verificam inboxul Mailosaur pentru a cauta emailul de resetare a parolei dupa subiect (asta dupa o pauza de 7 secunde pentru a ne asigura ca emailul a ajuns in inbox).

cy.wait(10000);
cy.mailosaurListMessages("ihl97m9d")
    .then((result) => {

      const email = result.items[0];
      expect(email.subject).to.equal("Codul pentru schimbarea parolei");
      return cy.mailosaurGetMessageById(email.id);
    })

Verificam daca in corpul emai-lului de resetare a parolei exista un anumit text.

.then((email) => {
      cy.log(email.html.body);
      expect(email.html.body).to.contain("<title>Am primit o solicitare de     
      resetare a parolei contului tau</title>");
});

Testul complet

describe('Storia website', () => {
  it('should send a reset password email', () => {
    cy.visit('https://www.storia.ro/ro/login/reset');

    cy.get('#onetrust-accept-btn-handler').click();
    cy.get('#reset-email').type('[email protected]');
    cy.get('.css-u8gy83').click();

    cy.wait(10000);

    cy.mailosaurListMessages("ihl97m9d")
    .then((result) => {
      const email = result.items[0];
      expect(email.subject).to.equal("Codul pentru schimbarea parolei");
      return cy.mailosaurGetMessageById(email.id);
    })
    .then((email) => {
      cy.log(email.html.body);
      expect(email.html.body).to.contain("<title>Am primit o solicitare de resetare a parolei contului tau</title>");
    });
  })
})

Radu Popescu

https://RaduPopescu.ro

Fondatorul comunitatii VlogDeIT. IT-ist generalist pasionat de zona de marketing/business. Ajut tinerii sa inteleaga domeniul IT din Romania si sa se angajeze mai usor.

Related post