@wordpress/e2e-test-utils
Version:
End-To-End (E2E) test utils for WordPress.
59 lines (56 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createUser = createUser;
var _changeCase = require("change-case");
var _switchUserToAdmin = require("./switch-user-to-admin");
var _switchUserToTest = require("./switch-user-to-test");
var _visitAdminPage = require("./visit-admin-page");
/**
* External dependencies
*/
/**
* Internal dependencies
*/
/**
* Create a new user account.
*
* @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.
*/
async function createUser(username, {
firstName,
lastName,
role
} = {}) {
await (0, _switchUserToAdmin.switchUserToAdmin)();
await (0, _visitAdminPage.visitAdminPage)('user-new.php');
await page.waitForSelector('#user_login', {
visible: true
});
await page.$eval('#user_login', (el, value) => el.value = value, username);
await page.$eval('#email', (el, value) => el.value = value, (0, _changeCase.snakeCase)(username) + '@example.com');
if (firstName) {
await page.$eval('#first_name', (el, value) => el.value = value, firstName);
}
if (lastName) {
await page.$eval('#last_name', (el, value) => el.value = value, 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 (0, _switchUserToTest.switchUserToTest)();
return password;
}
//# sourceMappingURL=create-user.js.map