Skip to content

Commit

Permalink
Merge pull request #178 from wp-media/fix-clean-up-to-include-switch-…
Browse files Browse the repository at this point in the history
…to-default-theme

Fixes #173 Adds to clean-up the switch theme via WP CLI
  • Loading branch information
hanna-meda authored Nov 27, 2024
2 parents f1157ad + 5ade51a commit 22bc560
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 6 deletions.
1 change: 0 additions & 1 deletion src/features/performance-hints.feature
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/support/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions src/support/steps/general.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});

/**
Expand All @@ -193,7 +193,7 @@ When('theme is activated', async function (this:ICustomWorld) {
return;
}

await this.utils.switchTheme(theme);
await this.utils.switchThemeViaUi(theme);
});

/**
Expand Down
13 changes: 13 additions & 0 deletions utils/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,19 @@ export async function updatePermalinkStructure(structure: string): Promise<void>
await wp(`option update permalink_structure ${structure}`);
}

/**
* Switch Theme.
*
* @function
* @name switchTheme
* @async
* @param {string} theme - The theme to activate.
* @returns {Promise<void>} - A Promise that resolves when the theme is activated.
*/
export async function switchTheme(theme: string): Promise<void> {
await wp(`theme activate ${theme}`);
}

/**
* Executes a SQL query on the WordPress database using WP-CLI.
*
Expand Down
7 changes: 5 additions & 2 deletions utils/page-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -667,7 +670,7 @@ export class PageUtils {
*
* @return {Promise<void>}
*/
public async switchTheme(theme: string): Promise<void> {
public async switchThemeViaUi(theme: string): Promise<void> {
await this.visitPage('wp-admin/themes.php');
await this.page.locator('#wp-filter-search-input').fill(theme);
// Wait for filtered theme to be displayed.
Expand Down

0 comments on commit 22bc560

Please sign in to comment.