Fix race conditions in Cypress tests (sigh).

This commit is contained in:
Kailash Nadh 2023-08-06 21:25:19 +05:30
parent 1164afac5e
commit acca61f2ca

View file

@ -27,8 +27,9 @@ describe('Campaigns', () => {
cy.get('a[data-cy=btn-attach]').click(); cy.get('a[data-cy=btn-attach]').click();
cy.get('input[type=file]').attachFile('example.json'); cy.get('input[type=file]').attachFile('example.json');
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.get('.modal .thumb a.link').click(); cy.wait(500);
cy.get('.modal td[data-label=Name] a.link').click();
cy.get('button[data-cy=btn-save]').click(); cy.get('button[data-cy=btn-save]').click();
cy.wait(500); cy.wait(500);
@ -40,7 +41,7 @@ describe('Campaigns', () => {
// Start. // Start.
cy.get('button[data-cy=btn-start]').click(); cy.get('button[data-cy=btn-start]').click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.wait(500); cy.wait(500);
cy.get('tbody tr').eq(0).get('td[data-label=Status] .tag.running'); cy.get('tbody tr').eq(0).get('td[data-label=Status] .tag.running');
}); });
@ -81,7 +82,7 @@ describe('Campaigns', () => {
// Switch format to plain text. // Switch format to plain text.
cy.get('label[data-cy=check-plain]').click(); cy.get('label[data-cy=check-plain]').click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
// Enter body value. // Enter body value.
cy.get('textarea[name=content]').clear().type('new-content'); cy.get('textarea[name=content]').clear().type('new-content');
@ -89,7 +90,7 @@ describe('Campaigns', () => {
// Schedule. // Schedule.
cy.get('button[data-cy=btn-schedule]').click(); cy.get('button[data-cy=btn-schedule]').click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.wait(250); cy.wait(250);
@ -141,11 +142,11 @@ describe('Campaigns', () => {
// Switch format. // Switch format.
cy.get(`label[data-cy=check-${c}]`).click(); cy.get(`label[data-cy=check-${c}]`).click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
// Check content. // Check content.
cy.get('button[data-cy=btn-preview]').click(); cy.get('button[data-cy=btn-preview]').click();
cy.wait(200); cy.wait(500);
cy.get("#iframe").then(($f) => { cy.get("#iframe").then(($f) => {
if (c === 'plain') { if (c === 'plain') {
return; return;
@ -164,7 +165,7 @@ describe('Campaigns', () => {
// Clone the campaign. // Clone the campaign.
cy.get('[data-cy=btn-clone]').first().click(); cy.get('[data-cy=btn-clone]').first().click();
cy.get('.modal input').clear().type(`clone${n}`).click(); cy.get('.modal input').clear().type(`clone${n}`).click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.wait(250); cy.wait(250);
cy.clickMenu('all-campaigns'); cy.clickMenu('all-campaigns');
cy.wait(100); cy.wait(100);
@ -187,7 +188,7 @@ describe('Campaigns', () => {
// Delete all visible lists. // Delete all visible lists.
cy.get('tbody tr').each(() => { cy.get('tbody tr').each(() => {
cy.get('tbody a[data-cy=btn-delete]').first().click(); cy.get('tbody a[data-cy=btn-delete]').first().click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
}); });
// Confirm deletion. // Confirm deletion.
@ -253,12 +254,13 @@ describe('Campaigns', () => {
const plainBody = `hello${n} Demo Subscriber from Bengaluru`; const plainBody = `hello${n} Demo Subscriber from Bengaluru`;
const markdownBody = `**hello${n}** Demo Subscriber from Bengaluru`; const markdownBody = `**hello${n}** Demo Subscriber from Bengaluru`;
cy.log(`format = ${c}`)
if (c === 'richtext') { if (c === 'richtext') {
cy.window().then((win) => { cy.window().then((win) => {
win.tinymce.editors[0].setContent(htmlBody); win.tinymce.editors[0].setContent(htmlBody);
win.tinymce.editors[0].save(); win.tinymce.editors[0].save();
}); });
cy.wait(200); cy.wait(500);
} else if (c === 'html') { } else if (c === 'html') {
cy.get('code-flask').shadow().find('.codeflask textarea').invoke('val', htmlBody).trigger('input'); cy.get('code-flask').shadow().find('.codeflask textarea').invoke('val', htmlBody).trigger('input');
} else if (c === 'markdown') { } else if (c === 'markdown') {
@ -272,7 +274,7 @@ describe('Campaigns', () => {
// Preview and match the body. // Preview and match the body.
cy.get('button[data-cy=btn-preview]').click(); cy.get('button[data-cy=btn-preview]').click();
cy.wait(200); cy.wait(1000);
cy.get("#iframe").then(($f) => { cy.get("#iframe").then(($f) => {
if (c === 'plain') { if (c === 'plain') {
return; return;
@ -284,7 +286,7 @@ describe('Campaigns', () => {
cy.get('.modal-card-foot button').click(); cy.get('.modal-card-foot button').click();
cy.clickMenu('all-campaigns'); cy.clickMenu('all-campaigns');
cy.wait(250); cy.wait(500);
// Verify the newly created campaign in the table. // Verify the newly created campaign in the table.
cy.get('tbody td[data-label="Name"]').first().contains(`name${n}`); cy.get('tbody td[data-label="Name"]').first().contains(`name${n}`);
@ -316,13 +318,13 @@ describe('Campaigns', () => {
it('Starts and cancels campaigns', () => { it('Starts and cancels campaigns', () => {
for (let n = 1; n <= 2; n++) { for (let n = 1; n <= 2; n++) {
cy.get(`tbody tr:nth-child(${n}) [data-cy=btn-start]`).click(); cy.get(`tbody tr:nth-child(${n}) [data-cy=btn-start]`).click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.wait(250); cy.wait(250);
cy.get(`tbody tr:nth-child(${n}) td[data-label=Status] .tag.running`); cy.get(`tbody tr:nth-child(${n}) td[data-label=Status] .tag.running`);
if (n > 1) { if (n > 1) {
cy.get(`tbody tr:nth-child(${n}) [data-cy=btn-cancel]`).click(); cy.get(`tbody tr:nth-child(${n}) [data-cy=btn-cancel]`).click();
cy.get('.modal button.is-primary').click(); cy.get('.modal button.is-primary:eq(0)').click();
cy.wait(250); cy.wait(250);
cy.get(`tbody tr:nth-child(${n}) td[data-label=Status] .tag.cancelled`); cy.get(`tbody tr:nth-child(${n}) td[data-label=Status] .tag.cancelled`);
} }