@wordpress/e2e-test-utils
Version:
End-To-End (E2E) test utils for WordPress.
44 lines (42 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.installTheme = installTheme;
var _switchUserToAdmin = require("./switch-user-to-admin");
var _switchUserToTest = require("./switch-user-to-test");
var _visitAdminPage = require("./visit-admin-page");
var _themeInstalled = require("./theme-installed");
/**
* Internal dependencies
*/
/**
* Installs a theme from the WP.org repository.
*
* @param {string} slug Theme slug.
* @param {?Object} settings Optional settings object.
* @param {?string} settings.searchTerm Search term to use if the theme is not findable by its slug.
*/
async function installTheme(slug, {
searchTerm
} = {}) {
await (0, _switchUserToAdmin.switchUserToAdmin)();
const installed = await (0, _themeInstalled.isThemeInstalled)(slug);
if (installed) {
return;
}
await (0, _visitAdminPage.visitAdminPage)('theme-install.php', `search=${encodeURIComponent(searchTerm || slug)}`);
await page.waitForSelector(`div[data-slug="${slug}"]`);
const activateLink = await page.$(`div[data-slug="${slug}"] .button.activate`);
if (activateLink) {
await (0, _switchUserToTest.switchUserToTest)();
return;
}
await page.waitForSelector(`.theme-install[data-slug="${slug}"]`);
await page.click(`.theme-install[data-slug="${slug}"]`);
await page.waitForSelector(`.theme[data-slug="${slug}"] .activate`, {
timeout: 60000
});
await (0, _switchUserToTest.switchUserToTest)();
}
//# sourceMappingURL=install-theme.js.map