Skip to content

Commit e0fd696

Browse files
authored
E2E Test Utils: Add some functionality to createUser and deleteUser (#33067)
- `deleteUser`: Delete content owned by the user, if any. - `createUser`: - Return password. - Allow setting role. - Use an object for optional function arguments.
1 parent bdb8410 commit e0fd696

File tree

4 files changed

+35
-7
lines changed

4 files changed

+35
-7
lines changed

packages/e2e-test-utils/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,14 @@ Create a new user account.
180180
_Parameters_
181181

182182
- _username_ `string`: User name.
183-
- _firstName_ `string?`: First name.
184-
- _lastName_ `string?`: Larst name.
183+
- _object_ `Object?`: Optional Settings for the new user account.
184+
- _object.firstName_ `[string]`: First name.
185+
- _object.lastName_ `[string]`: Last name.
186+
- _object.role_ `[string]`: Role. Defaults to Administrator.
187+
188+
_Returns_
189+
190+
- `string`: Password for the newly created user account.
185191

186192
<a name="deactivatePlugin" href="#deactivatePlugin">#</a> **deactivatePlugin**
187193

packages/e2e-test-utils/src/create-user.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@ import { visitAdminPage } from './visit-admin-page';
1313
/**
1414
* Create a new user account.
1515
*
16-
* @param {string} username User name.
17-
* @param {string?} firstName First name.
18-
* @param {string?} lastName Larst name.
16+
* @param {string} username User name.
17+
* @param {Object?} object Optional Settings for the new user account.
18+
* @param {string} [object.firstName] First name.
19+
* @param {string} [object.lastName] Last name.
20+
* @param {string} [object.role] Role. Defaults to Administrator.
21+
*
22+
* @return {string} Password for the newly created user account.
1923
*/
20-
export async function createUser( username, firstName, lastName ) {
24+
export async function createUser(
25+
username,
26+
{ firstName, lastName, role } = {}
27+
) {
2128
await switchUserToAdmin();
2229
await visitAdminPage( 'user-new.php' );
2330

@@ -29,11 +36,18 @@ export async function createUser( username, firstName, lastName ) {
2936
if ( lastName ) {
3037
await page.type( '#last_name', lastName );
3138
}
39+
if ( role ) {
40+
await page.select( '#role', role );
41+
}
42+
3243
await page.click( '#send_user_notification' );
3344

45+
const password = await page.$eval( `#pass1`, ( element ) => element.value );
46+
3447
await Promise.all( [
3548
page.click( '#createusersub' ),
3649
page.waitForNavigation( { waitUntil: 'networkidle0' } ),
3750
] );
3851
await switchUserToTest();
52+
return password;
3953
}

packages/e2e-test-utils/src/delete-user.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ export async function deleteUser( username ) {
3535
page.waitForNavigation( { waitUntil: 'networkidle0' } ),
3636
] );
3737

38+
// If there's content owned by this user, delete it.
39+
const deleteContentRadioButton = await page.$(
40+
'input[type="radio"][name="delete_option"][value="delete"]'
41+
);
42+
if ( deleteContentRadioButton ) {
43+
await deleteContentRadioButton.click();
44+
}
45+
3846
// Confirm
3947
await Promise.all( [
4048
page.click( 'input#submit' ),

packages/e2e-tests/specs/editor/various/mentions.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212

1313
describe( 'autocomplete mentions', () => {
1414
beforeAll( async () => {
15-
await createUser( 'testuser', 'Jane', 'Doe' );
15+
await createUser( 'testuser', { firstName: 'Jane', lastName: 'Doe' } );
1616
} );
1717

1818
beforeEach( async () => {

0 commit comments

Comments
 (0)