diff --git a/cypress/integration/seededFlows/adminFlows/users/manageCredits.spec.js b/cypress/integration/seededFlows/adminFlows/users/manageCredits.spec.js index 99f9c145c..8e8006741 100644 --- a/cypress/integration/seededFlows/adminFlows/users/manageCredits.spec.js +++ b/cypress/integration/seededFlows/adminFlows/users/manageCredits.spec.js @@ -1,3 +1,5 @@ +import { verifyAndDismissUserUpdatedMessage } from './userAdminUtilitites'; + // More on roles, https://admin.forem.com/docs/forem-basics/user-roles function openCreditsModal() { cy.getModal().should('not.exist'); @@ -6,14 +8,6 @@ function openCreditsModal() { return cy.getModal(); } -function verifyAndDismissUserUpdatedMessage(message) { - cy.findByText(message).should('exist'); - cy.findByRole('button', { name: 'Dismiss message' }) - .should('have.focus') - .click(); - cy.findByText(message).should('not.exist'); -} - describe('Manage User Credits', () => { describe('As an admin', () => { beforeEach(() => { diff --git a/cypress/integration/seededFlows/adminFlows/users/manageOrganizations.spec.js b/cypress/integration/seededFlows/adminFlows/users/manageOrganizations.spec.js index 7511a0ce2..e428c8ca4 100644 --- a/cypress/integration/seededFlows/adminFlows/users/manageOrganizations.spec.js +++ b/cypress/integration/seededFlows/adminFlows/users/manageOrganizations.spec.js @@ -1,3 +1,5 @@ +import { verifyAndDismissUserUpdatedMessage } from './userAdminUtilitites'; + // More on roles, https://admin.forem.com/docs/forem-basics/user-roles function openOrgModal(ctaText = 'Add organization') { cy.getModal().should('not.exist'); @@ -6,14 +8,6 @@ function openOrgModal(ctaText = 'Add organization') { return cy.getModal(); } -function verifyAndDismissUserUpdatedMessage(message) { - cy.findByText(message).should('exist'); - cy.findByRole('button', { name: 'Dismiss message' }) - .should('have.focus') - .click(); - cy.findByText(message).should('not.exist'); -} - describe('Manage User Organziations', () => { describe('As an admin', () => { beforeEach(() => { diff --git a/cypress/integration/seededFlows/adminFlows/users/manageRoles.spec.js b/cypress/integration/seededFlows/adminFlows/users/manageRoles.spec.js index 387719017..4d5706f5c 100644 --- a/cypress/integration/seededFlows/adminFlows/users/manageRoles.spec.js +++ b/cypress/integration/seededFlows/adminFlows/users/manageRoles.spec.js @@ -1,3 +1,5 @@ +import { verifyAndDismissUserUpdatedMessage } from './userAdminUtilitites'; + // More on roles, https://admin.forem.com/docs/forem-basics/user-roles function openRolesModal() { cy.getModal().should('not.exist'); @@ -6,14 +8,6 @@ function openRolesModal() { return cy.getModal(); } -function verifyAndDismissUserUpdatedMessage() { - cy.findByText('User has been updated').should('exist'); - cy.findByRole('button', { name: 'Dismiss message' }) - .should('have.focus') - .click(); - cy.findByText('User has been updated').should('not.exist'); -} - function checkUserStatus(status) { cy.findByTestId('user-status').should('have.text', status); } diff --git a/cypress/integration/seededFlows/adminFlows/users/manageUserOptions.spec.js b/cypress/integration/seededFlows/adminFlows/users/manageUserOptions.spec.js index ee059cf94..e509443f7 100644 --- a/cypress/integration/seededFlows/adminFlows/users/manageUserOptions.spec.js +++ b/cypress/integration/seededFlows/adminFlows/users/manageUserOptions.spec.js @@ -1,3 +1,5 @@ +import { verifyAndDismissUserUpdatedMessage } from './userAdminUtilitites'; + function openUserOptions(callback) { cy.findByRole('button', { name: 'Options' }) .should('have.attr', 'aria-haspopup', 'true') @@ -11,22 +13,6 @@ function openUserOptions(callback) { }); } -function verifyAndDismissUserUpdatedMessage(message) { - cy.findByTestId('flash-success') - .as('success') - .then((element) => { - expect(element.text().trim()).equal(message); - }); - - cy.get('@success').within(() => { - cy.findByRole('button', { name: 'Dismiss message' }) - .should('have.focus') - .click(); - }); - - cy.findByTestId('flash-success').should('not.exist'); -} - describe('Manage User Options', () => { describe('As an admin', () => { beforeEach(() => { diff --git a/cypress/integration/seededFlows/adminFlows/users/userAdminUtilitites.js b/cypress/integration/seededFlows/adminFlows/users/userAdminUtilitites.js new file mode 100644 index 000000000..85a17bb1f --- /dev/null +++ b/cypress/integration/seededFlows/adminFlows/users/userAdminUtilitites.js @@ -0,0 +1,22 @@ +/** + * E2E helper function for user admin tests that validates the correct flash success message appears + * + * @param {string} [message="User has been updated"] The expected flash message text + */ +export function verifyAndDismissUserUpdatedMessage( + message = 'User has been updated', +) { + cy.findByTestId('flash-success') + .as('success') + .then((element) => { + expect(element.text().trim()).equal(message); + }); + + cy.get('@success').within(() => { + cy.findByRole('button', { name: 'Dismiss message' }) + .should('have.focus') + .click(); + }); + + cy.findByTestId('flash-success').should('not.exist'); +}