This package provides shared E2E testing utilities for Polylang projects.
npm install --save-dev polylang/e2e-test-utilsCreate a playwright.config.js file in your project's root:
import { getPlaywrightConfig } from '@wpsyntex/e2e-test-utils';
export default getPlaywrightConfig( {
// Override any default configuration here
use: {
// Custom use options
globalSetup: require.resolve( 'path-to-your/global.setup.js' ), // Falls back to the packaged one.
},
webServer: {
// Custom webServer options
}
} );The getPlaywrightConfig function accepts an options object that can override any of the default configuration:
use: Override default Playwright use optionswebServer: Override default webServer configuration- Any other Playwright configuration options
The default configuration includes:
- Chrome browser setup
- HTML reporter
- CI-specific settings
- Default storage state path
- Local development server configuration
Retrieves a list of all configured languages in Polylang.
- Parameters:
requestUtils: Gutenberg request utils object
- Returns: Promise resolving to the list of languages
Retrieves a specific language by its slug.
- Parameters:
requestUtils: Gutenberg request utils objectslug: Language slug to retrieve
- Returns: Promise resolving to the language data
Creates a new language in Polylang.
- Parameters:
requestUtils: Gutenberg request utils objectlocale: Language locale to create (e.g., 'fr_FR')
- Returns: Promise resolving to the created language
Deletes a specific language by its slug.
- Parameters:
requestUtils: Gutenberg request utils objectslug: Language slug to delete
- Returns: Promise resolving to the deletion result
Deletes all configured languages except the default one.
- Parameters:
requestUtils: Gutenberg request utils object
- Returns: Promise resolving to the deletion results
Retrieves all Polylang plugin settings.
- Parameters:
requestUtils: Gutenberg request utils object
- Returns: Promise resolving to the settings object
Updates a specific plugin setting.
- Parameters:
requestUtils: Gutenberg request utils objectsettingKey: The key of the setting to updatesettingValue: The new value for the setting
- Returns: Promise resolving to the updated setting
Resets all plugin settings to their default values.
- Parameters:
requestUtils: Gutenberg request utils object
- Returns: Promise resolving to the reset operation result
- Note: Preserves the default language setting
Retrieves all terms for a specific taxonomy.
- Parameters:
requestUtils: Gutenberg request utils objecttaxonomy: Taxonomy slug
- Returns: Promise resolving to the list of terms
Retrieves a specific term by its slug within a taxonomy.
- Parameters:
requestUtils: Gutenberg request utils objecttaxonomy: Taxonomy slugslug: Term slug to retrieve
- Returns: Promise resolving to the term data
Deletes all terms within a specific taxonomy.
- Parameters:
requestUtils: Gutenberg request utils objecttaxonomy: Taxonomy slug
- Returns: Promise resolving to the deletion results
Fills in the XLIFF export form for bulk translation export.
- Parameters:
page: Playwright page objectoptions: Configuration objectpostId: Post ID to exportpostTitle: Post title to selectlanguageName: Target language name
- Returns: Promise that resolves when the export form is submitted
- Note: Page should be on the post list table
Returns a regex pattern to match XLIFF file names with the specified locales and timestamp.
- Parameters:
sourceLocale: Source language locale (e.g., 'en_US')targetLocale: Target language locale (e.g., 'fr_FR')
- Returns: RegExp object to match XLIFF file names
- Note: Converts underscores to hyphens in locales and matches timestamp pattern
Returns a download promise by clicking a submit button and waiting for the download to start.
- Parameters:
page: Playwright page objectsubmitButtonOptions: Submit button options (default:{ name: 'Submit' })
- Returns: Promise resolving to the download object
Reads a file and returns its contents as a string.
- Parameters:
filePath: The file path to read
- Returns: String content of the file
Global setup function for Playwright tests. Ensures fixtures are deleted and global context is set up properly.
import {
createLanguage,
setSetting,
getAllTerms
} from '@wpsyntex/e2e-test-utils';
// Create a new language
await createLanguage( requestUtils, 'fr_FR' );
// Update a setting
await setSetting( requestUtils, 'hide_default', true );
// Get all terms from a taxonomy
const terms = await getAllTerms( requestUtils, 'category' );All these functions are designed to work with the Gutenberg request utils object and follow REST API patterns for interacting with Polylang's functionality. They provide a comprehensive set of tools for managing languages, settings, and taxonomies in E2E tests.