Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #173 Adds to clean-up the switch theme via WP CLI #178

Merged
merged 4 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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