UNPKG

@wordpress/e2e-test-utils

Version:
44 lines (42 loc) 1.54 kB
"use strict"; 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