diff --git a/packages/e2e-test-utils/README.md b/packages/e2e-test-utils/README.md index c4cca972fc0e37..73bd8548905617 100644 --- a/packages/e2e-test-utils/README.md +++ b/packages/e2e-test-utils/README.md @@ -180,8 +180,14 @@ Create a new user account. _Parameters_ - _username_ `string`: User name. -- _firstName_ `string?`: First name. -- _lastName_ `string?`: Larst name. +- _object_ `Object?`: Optional Settings for the new user account. +- _object.firstName_ `[string]`: First name. +- _object.lastName_ `[string]`: Last name. +- _object.role_ `[string]`: Role. Defaults to Administrator. + +_Returns_ + +- `string`: Password for the newly created user account. # **deactivatePlugin** diff --git a/packages/e2e-test-utils/src/create-user.js b/packages/e2e-test-utils/src/create-user.js index 3d9935eb5467bd..63fdcee42ca578 100644 --- a/packages/e2e-test-utils/src/create-user.js +++ b/packages/e2e-test-utils/src/create-user.js @@ -13,11 +13,18 @@ import { visitAdminPage } from './visit-admin-page'; /** * Create a new user account. * - * @param {string} username User name. - * @param {string?} firstName First name. - * @param {string?} lastName Larst name. + * @param {string} username User name. + * @param {Object?} object Optional Settings for the new user account. + * @param {string} [object.firstName] First name. + * @param {string} [object.lastName] Last name. + * @param {string} [object.role] Role. Defaults to Administrator. + * + * @return {string} Password for the newly created user account. */ -export async function createUser( username, firstName, lastName ) { +export async function createUser( + username, + { firstName, lastName, role } = {} +) { await switchUserToAdmin(); await visitAdminPage( 'user-new.php' ); @@ -29,11 +36,18 @@ export async function createUser( username, firstName, lastName ) { if ( lastName ) { await page.type( '#last_name', lastName ); } + if ( role ) { + await page.select( '#role', role ); + } + await page.click( '#send_user_notification' ); + const password = await page.$eval( `#pass1`, ( element ) => element.value ); + await Promise.all( [ page.click( '#createusersub' ), page.waitForNavigation( { waitUntil: 'networkidle0' } ), ] ); await switchUserToTest(); + return password; } diff --git a/packages/e2e-test-utils/src/delete-user.js b/packages/e2e-test-utils/src/delete-user.js index 499cf9504598ce..5bea271bbfc7a2 100644 --- a/packages/e2e-test-utils/src/delete-user.js +++ b/packages/e2e-test-utils/src/delete-user.js @@ -35,6 +35,14 @@ export async function deleteUser( username ) { page.waitForNavigation( { waitUntil: 'networkidle0' } ), ] ); + // If there's content owned by this user, delete it. + const deleteContentRadioButton = await page.$( + 'input[type="radio"][name="delete_option"][value="delete"]' + ); + if ( deleteContentRadioButton ) { + await deleteContentRadioButton.click(); + } + // Confirm await Promise.all( [ page.click( 'input#submit' ), diff --git a/packages/e2e-tests/specs/editor/various/mentions.test.js b/packages/e2e-tests/specs/editor/various/mentions.test.js index 5787edb8329400..458449a1b30d4e 100644 --- a/packages/e2e-tests/specs/editor/various/mentions.test.js +++ b/packages/e2e-tests/specs/editor/various/mentions.test.js @@ -12,7 +12,7 @@ import { describe( 'autocomplete mentions', () => { beforeAll( async () => { - await createUser( 'testuser', 'Jane', 'Doe' ); + await createUser( 'testuser', { firstName: 'Jane', lastName: 'Doe' } ); } ); beforeEach( async () => {