wordpress/tests/e2e/specs/gutenberg-plugin.test.js
Pascal Birchler 5a838d1bb7 Build/Test Tools: Migrate Puppeteer tests to Playwright.
As per the migration plan shared last year, this migrates all browser-based tests in WordPress core to use Playwright.
This includes end-to-end, performance, and visual regression tests.

Props swissspidy, mamaduka, kevin940726, bartkalisz, desrosj, adamsilverstein.
Fixes #59517.

git-svn-id: https://develop.svn.wordpress.org/trunk@56926 602fd350-edb4-49c9-b593-d223f7449a82
2023-10-13 08:11:41 +00:00

49 lines
1.3 KiB
JavaScript

/**
* WordPress dependencies
*/
import { test, expect } from '@wordpress/e2e-test-utils-playwright';
test.describe( 'Gutenberg plugin', () => {
// Increasing timeout to 5 minutes because potential plugin install could take longer.
test.setTimeout( 300_000 );
test.beforeAll( async ( { requestUtils } ) => {
// Install Gutenberg plugin if it's not yet installed.
const pluginsMap = await requestUtils.getPluginsMap();
if ( ! pluginsMap.gutenberg ) {
await requestUtils.rest( {
method: 'POST',
path: 'wp/v2/plugins?slug=gutenberg',
} );
}
// Refetch installed plugin details. It avoids stale values when the test installs the plugin.
await requestUtils.getPluginsMap( /* forceRefetch */ true );
await requestUtils.deactivatePlugin( 'gutenberg' );
} );
test( 'should activate', async ( { requestUtils }) => {
let plugin = await requestUtils.rest( {
path: 'wp/v2/plugins/gutenberg/gutenberg',
} );
expect( plugin.status ).toBe( 'inactive' );
await requestUtils.activatePlugin( 'gutenberg' );
plugin = await requestUtils.rest( {
path: 'wp/v2/plugins/gutenberg/gutenberg',
} );
expect( plugin.status ).toBe( 'active' );
await requestUtils.deactivatePlugin( 'gutenberg' );
plugin = await requestUtils.rest( {
path: 'wp/v2/plugins/gutenberg/gutenberg',
} );
expect( plugin.status ).toBe( 'inactive' );
} );
} );