Skip to content

Commit

Permalink
Add setGutenbergExperiments to requestUtils (#56663)
Browse files Browse the repository at this point in the history
* Add setGutenbergExperiments util

* Use it in one of the tests

* Fix test
  • Loading branch information
kevin940726 authored Jan 16, 2024
1 parent 464961e commit 46daa6e
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* Internal dependencies
*/
import type { RequestUtils } from './index';

/**
* Sets the Gutenberg experiments.
*
* @param this
* @param experiments Array of experimental flags to enable. Pass in an empty array to disable all experiments.
*/
async function setGutenbergExperiments(
this: RequestUtils,
experiments: string[]
) {
const response = await this.request.get(
'/wp-admin/admin.php?page=gutenberg-experiments'
);
const html = await response.text();
const nonce = html.match( /name="_wpnonce" value="([^"]+)"/ )![ 1 ];

await this.request.post( '/wp-admin/options.php', {
form: {
option_page: 'gutenberg-experiments',
action: 'update',
_wpnonce: nonce,
_wp_http_referer: '/wp-admin/admin.php?page=gutenberg-experiments',
...Object.fromEntries(
experiments.map( ( experiment ) => [
`gutenberg-experiments[${ experiment }]`,
1,
] )
),
submit: 'Save Changes',
},
failOnStatusCode: true,
} );
}

export { setGutenbergExperiments };
4 changes: 4 additions & 0 deletions packages/e2e-test-utils-playwright/src/request-utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import { resetPreferences } from './preferences';
import { getSiteSettings, updateSiteSettings } from './site-settings';
import { deleteAllWidgets, addWidgetBlock } from './widgets';
import { deleteAllPatternCategories } from './patterns';
import { setGutenbergExperiments } from './gutenberg-experiments';

interface StorageState {
cookies: Cookie[];
Expand Down Expand Up @@ -205,6 +206,9 @@ class RequestUtils {
getThemeGlobalStylesRevisions.bind( this );
/** @borrows deleteAllPatternCategories as this.deleteAllPatternCategories */
deleteAllPatternCategories = deleteAllPatternCategories.bind( this );
/** @borrows setGutenbergExperiments as this.setGutenbergExperiments */
setGutenbergExperiments: typeof setGutenbergExperiments =
setGutenbergExperiments.bind( this );
}

export type { StorageState };
Expand Down
25 changes: 0 additions & 25 deletions packages/e2e-tests/plugins/dataviews.php

This file was deleted.

4 changes: 2 additions & 2 deletions test/e2e/specs/site-editor/new-templates-list.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ test.describe( 'Templates', () => {
test.beforeAll( async ( { requestUtils } ) => {
await Promise.all( [
requestUtils.activateTheme( 'emptytheme' ),
requestUtils.activatePlugin( 'gutenberg-test-dataviews' ),
requestUtils.setGutenbergExperiments( [ 'gutenberg-dataviews' ] ),
] );
} );
test.afterAll( async ( { requestUtils } ) => {
await Promise.all( [
requestUtils.activateTheme( 'twentytwentyone' ),
requestUtils.deactivatePlugin( 'gutenberg-test-dataviews' ),
requestUtils.deleteAllTemplates( 'wp_template' ),
requestUtils.setGutenbergExperiments( [] ),
] );
} );
test( 'Sorting', async ( { admin, page } ) => {
Expand Down

1 comment on commit 46daa6e

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Flaky tests detected in 46daa6e.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/7537962161
📝 Reported issues:

Please sign in to comment.