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'); }); });