| Server IP : 3.93.235.159 / Your IP : 216.73.216.140 Web Server : Apache System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64 User : bitnami ( 1000) PHP Version : 8.2.9 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/hello-plus/tests/playwright/pages/ |
Upload File : |
import { type Page, type TestInfo } from '@playwright/test';
export default class BasePage {
readonly page: Page;
readonly testInfo: TestInfo;
/**
* @param {import('@playwright/test').Page} page
* @param {import('@playwright/test').TestInfo} testInfo
*/
constructor( page: Page, testInfo: TestInfo ) {
if ( ! page || ! testInfo ) {
throw new Error( 'Page and TestInfo must be provided' );
}
/**
* @type {import('@playwright/test').Page}
*/
this.page = page;
/**
* @type {import('@playwright/test').TestInfo}
*/
this.testInfo = testInfo;
const projectConfig = this.testInfo.config?.projects?.[ 0 ]?.use || {};
const { baseURL, proxy } = projectConfig;
// If wordpress is not located on the domain's top-level (e.g: http://local.host/test-wordpress ), playwright's `baseURL` cannot handle it.
if ( proxy ) {
this.page = new Proxy( this.page, {
get: ( target, key ) => {
switch ( key ) {
case 'goto':
return ( path: string ) => page.goto( baseURL + path );
case 'waitForNavigation': {
return ( args: { url?: string } ) => {
args = ( args.url ) ? { url: baseURL + args.url } : args;
return page.waitForNavigation( args );
};
}
}
return target[ key ];
},
} );
}
}
}