diff --git a/src/features/performance-hints.feature b/src/features/performance-hints.feature index 392e779..1699617 100644 --- a/src/features/performance-hints.feature +++ b/src/features/performance-hints.feature @@ -20,7 +20,6 @@ Feature: Clear lcp/performance hints data tests Given performance hints data added to DB And switching the theme Then data is removed from the performance hints tables - Then theme 'Twenty Twenty' is activated Scenario: Should clear performance hints of the current URL Given I log out diff --git a/src/support/hooks.ts b/src/support/hooks.ts index 8e12671..c4b0afb 100644 --- a/src/support/hooks.ts +++ b/src/support/hooks.ts @@ -72,7 +72,7 @@ BeforeAll(async function (this: ICustomWorld) { const utils = new PageUtils(page, sections); await utils.auth(); - await utils.switchTheme(theme); + await utils.switchThemeViaUi(theme); await page?.close(); await context?.close(); diff --git a/src/support/steps/general.ts b/src/support/steps/general.ts index 8f20ee8..7a98d73 100644 --- a/src/support/steps/general.ts +++ b/src/support/steps/general.ts @@ -180,7 +180,7 @@ When('I create reference', async function (this:ICustomWorld) { * Executes the step to activate a theme. */ When('theme {string} is activated', async function (this:ICustomWorld, theme) { - await this.utils.switchTheme(theme); + await this.utils.switchThemeViaUi(theme); }); /** @@ -193,7 +193,7 @@ When('theme is activated', async function (this:ICustomWorld) { return; } - await this.utils.switchTheme(theme); + await this.utils.switchThemeViaUi(theme); }); /** diff --git a/utils/commands.ts b/utils/commands.ts index bc977ee..f19f0d0 100644 --- a/utils/commands.ts +++ b/utils/commands.ts @@ -293,6 +293,19 @@ export async function updatePermalinkStructure(structure: string): Promise await wp(`option update permalink_structure ${structure}`); } +/** + * Switch Theme. + * + * @function + * @name switchTheme + * @async + * @param {string} theme - The theme to activate. + * @returns {Promise} - A Promise that resolves when the theme is activated. + */ +export async function switchTheme(theme: string): Promise { + await wp(`theme activate ${theme}`); +} + /** * Executes a SQL query on the WordPress database using WP-CLI. * diff --git a/utils/page-utils.ts b/utils/page-utils.ts index 86a3889..e1f1524 100644 --- a/utils/page-utils.ts +++ b/utils/page-utils.ts @@ -16,7 +16,7 @@ import { ICustomWorld } from '../src/common/custom-world'; import fs from "fs/promises"; import {WP_BASE_URL, WP_PASSWORD, WP_USERNAME} from '../config/wp.config'; -import { uninstallPlugin, updatePermalinkStructure, deactivatePlugin } from "./commands"; +import { uninstallPlugin, updatePermalinkStructure, deactivatePlugin, switchTheme } from "./commands"; /** * Utility class for interacting with a Playwright Page instance in WordPress testing. @@ -583,6 +583,9 @@ export class PageUtils { // Reset permalink structure. await updatePermalinkStructure('/%postname%/'); + // Switch to "Twenty Twenty" theme. + await switchTheme('twentytwenty'); + // Remove WP Rocket from UI if on local run is explicitly parsed. if ( process.env.npm_config_env !== undefined && process.env.npm_config_env === 'local' ) { // Start the process to remove wp-rocket. @@ -667,7 +670,7 @@ export class PageUtils { * * @return {Promise} */ - public async switchTheme(theme: string): Promise { + public async switchThemeViaUi(theme: string): Promise { await this.visitPage('wp-admin/themes.php'); await this.page.locator('#wp-filter-search-input').fill(theme); // Wait for filtered theme to be displayed.