listmonk/frontend/cypress/integration/bounces.js

77 lines
2.3 KiB
JavaScript

const apiUrl = Cypress.env('apiUrl');
describe('Bounces', () => {
let subs = [];
it('Enable bounces', () => {
cy.resetDB();
cy.loginAndVisit('/settings');
cy.get('.b-tabs nav a').eq(5).click();
cy.get('[data-cy=btn-enable-bounce] .switch').click();
cy.get('[data-cy=btn-enable-bounce-webhook] .switch').click();
cy.get('[data-cy=btn-bounce-count] .plus').click();
cy.get('[data-cy=btn-save]').click();
cy.wait(1000);
});
it('Post bounces', () => {
// Get campaign.
let camp = {};
cy.request(`${apiUrl}/api/campaigns`).then((resp) => {
camp = resp.body.data.results[0];
})
cy.then(() => {
console.log("campaign is ", camp.uuid);
})
// Get subscribers.
cy.request(`${apiUrl}/api/subscribers`).then((resp) => {
subs = resp.body.data.results;
console.log(subs)
});
cy.then(() => {
console.log(`got ${subs.length} subscribers`);
// Post bounces. Blocklist the 1st sub.
cy.request('POST', `${apiUrl}/webhooks/bounce`, { source: "api", type: "hard", email: subs[0].email });
cy.request('POST', `${apiUrl}/webhooks/bounce`, { source: "api", type: "hard", campaign_uuid: camp.uuid, email: subs[0].email });
cy.request('POST', `${apiUrl}/webhooks/bounce`, { source: "api", type: "hard", campaign_uuid: camp.uuid, subscriber_uuid: subs[0].uuid });
for (let i = 0; i < 2; i++) {
cy.request('POST', `${apiUrl}/webhooks/bounce`, { source: "api", type: "soft", campaign_uuid: camp.uuid, subscriber_uuid: subs[1].uuid });
}
});
cy.wait(250);
});
it('Opens bounces page', () => {
cy.loginAndVisit('/subscribers/bounces');
cy.wait(250);
cy.get('tbody tr').its('length').should('eq', 5);
});
it('Delete bounce', () => {
cy.get('tbody tr:last-child [data-cy="btn-delete"]').click();
cy.get('.modal button.is-primary').click();
cy.wait(250);
cy.get('tbody tr').its('length').should('eq', 4);
});
it('Check subscriber statuses', () => {
cy.loginAndVisit(`/subscribers/${subs[0].id}`);
cy.wait(250);
cy.get('.modal-card-head .tag').should('have.class', 'blocklisted');
cy.get('.modal-card-foot button[type="button"]').click();
cy.loginAndVisit(`/subscribers/${subs[1].id}`);
cy.wait(250);
cy.get('.modal-card-head .tag').should('have.class', 'enabled');
});
});