From b06951ed3be85d23c8f3557d586d49e1c2a08484 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Sun, 12 Nov 2023 16:03:39 +0100 Subject: [PATCH] fix(cypress): Make new-users test less flaky by using test isolation Signed-off-by: Ferdinand Thiessen --- cypress/e2e/settings/users.cy.ts | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/cypress/e2e/settings/users.cy.ts b/cypress/e2e/settings/users.cy.ts index 7c4b7f9df1e..48d518e58c7 100644 --- a/cypress/e2e/settings/users.cy.ts +++ b/cypress/e2e/settings/users.cy.ts @@ -27,25 +27,18 @@ const admin = new User('admin', 'admin') const john = new User('john', '123456') describe('Settings: Create and delete users', function() { - before(function() { + beforeEach(function() { + cy.listUsers().then((users) => { + if ((users as string[]).includes(john.userId)) { + // ensure created user is deleted + cy.deleteUser(john) + } + }) cy.login(admin) // open the User settings cy.visit('/settings/users') }) - beforeEach(function() { - cy.login(admin) - cy.listUsers().then((users) => { - cy.login(admin) - if ((users as string[]).includes(john.userId)) { - // ensure created user is deleted - cy.deleteUser(john).login(admin) - // ensure deleted user is not present - cy.reload().login(admin) - } - }) - }) - it('Can create a user', function() { // open the New user modal cy.get('button#new-user-button').click() @@ -64,7 +57,7 @@ describe('Settings: Create and delete users', function() { // see that the password is 123456 cy.get('input[type="password"]').should('have.value', john.password) // submit the new user form - cy.get('button[type="submit"]').click() + cy.get('button[type="submit"]').click({ force: true }) }) // Make sure no confirmation modal is shown @@ -98,7 +91,7 @@ describe('Settings: Create and delete users', function() { cy.get('input[type="password"]').type(john.password) cy.get('input[type="password"]').should('have.value', john.password) // submit the new user form - cy.get('button[type="submit"]').click() + cy.get('button[type="submit"]').click({ force: true }) }) // Make sure no confirmation modal is shown