From 6cd2f374d740c1e8e0c4e740f621ae661af9fc49 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 12 Nov 2026 09:51:34 -0500 Subject: [PATCH] Build/Test Tools: Remove script to run Gutenberg E2E tests in Core. In [48382] a script was added to run the Gutenberg end-to-end tests in `wordpress-develop`. Besides a few small changes related to normal Gutenberg syncs, these files have not been touched since being introduced and the script no longer works. It was never formally added to any GitHub Actions workflows. Removing this script also allows the `chalk` and `uuid` dependencies to be removed. "And another one gone, and another one gone." Merges [65309] and [65417] to the 5.7 branch. See #65845, #50469, #59407. --- package.json | 2 - tests/gutenberg/.wp-env.sample.json | 13 ---- tests/gutenberg/run.js | 98 ----------------------------- 3 files changed, 113 deletions(-) delete mode 100644 tests/gutenberg/.wp-env.sample.json delete mode 100755 tests/gutenberg/run.js diff --git a/package.json b/package.json index 8097cbd73b02c..93863a0d6d9fe 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "@wordpress/library-export-default-webpack-plugin": "2.0.1", "@wordpress/scripts": "13.0.3", "autoprefixer": "^9.8.6", - "chalk": "4.1.0", "check-node-version": "4.1.0", "copy-webpack-plugin": "^5.1.2", "cssnano": "4.1.10", @@ -71,7 +70,6 @@ "source-map-loader": "^1.1.3", "uglify-js": "^3.13.2", "uglifyjs-webpack-plugin": "2.2.0", - "uuid": "8.3.2", "wait-on": "5.3.0", "webpack": "4.43.0", "webpack-dev-server": "3.11.2", diff --git a/tests/gutenberg/.wp-env.sample.json b/tests/gutenberg/.wp-env.sample.json deleted file mode 100644 index f5caea7afc139..0000000000000 --- a/tests/gutenberg/.wp-env.sample.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "core": "{WP_PATH}", - "mappings": { - "wp-content/mu-plugins": "{MU_PlUGINS_PATH}", - "wp-content/plugins/test-plugins": "{TEST_PlUGINS_PATH}" - }, - "config": { - "SCRIPT_DEBUG": false, - "WP_PHP_BINARY": "php", - "WP_TESTS_EMAIL": "admin@example.org", - "WP_TESTS_TITLE": "Test Blog" - } -} diff --git a/tests/gutenberg/run.js b/tests/gutenberg/run.js deleted file mode 100755 index 121014125cbe4..0000000000000 --- a/tests/gutenberg/run.js +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env node -const path = require( 'path' ); -const { v4: uuid } = require( 'uuid' ); -const os = require( 'os' ); -const fs = require( 'fs' ); -const chalk = require( 'chalk' ); -const childProcess = require( 'child_process' ); - -// Config -// This should be updated every time we update the WordPress packages. -const GUTENBERG_VERSION = '@wordpress/block-editor@5.2.10'; - -// Utils -/** - * Utility to run a child script - * - * @param {string} script Script to run. - * @param {string=} cwd Working directory. - */ -function runShellScript( script, cwd ) { - childProcess.execSync( script, { - cwd, - env: { - NO_CHECKS: 'true', - PATH: process.env.PATH, - HOME: process.env.HOME, - }, - stdio: [ 'inherit', 'ignore', 'inherit' ], - } ); -} - -/** - * Small utility used to read an uncached version of a JSON file - * - * @param {string} fileName - */ -function readJSONFile( fileName ) { - const data = fs.readFileSync( fileName, 'utf8' ); - return JSON.parse( data ); -} - -/** - * Generates a random temporary path in the OS's tmp dir. - * - * @return {string} Temporary Path. - */ -function getRandomTemporaryPath() { - return path.join( os.tmpdir(), uuid() ); -} - -// Useful constants -const title = chalk.bold; -const success = chalk.bold.green; -const rootFolder = path.resolve( __dirname, '../../' ); -const testLauncherPath = getRandomTemporaryPath(); -const testEnvironmentPath = getRandomTemporaryPath(); -const sampleEnvConfig = path.resolve( __dirname, '.wp-env.sample.json' ); - -// Welcome -console.log( title( '>> 🏁 Welcome, this command is going to prepare a running WordPress environment and run the Gutenberg e2e tests against it.' ) ); -console.log( title( '>> It uses the current WordPress folder from which it\'s being run and a separate Gutenberg clone performed by the command.' ) ); -console.log( title( '>> Configuration: ' ) ); -console.log( 'Gutenberg Version: ' + success( GUTENBERG_VERSION ) ); -console.log( 'Test Launcher Path (Gutenberg): ' + success( testLauncherPath ) ); -console.log( 'Test Environment Path (wp-env): ' + success( testEnvironmentPath ) ); - -// Steps -// 1- Preparing the WordPress environment -console.log( '>> Preparing the WordPress clone' ); -runShellScript( 'npm install && FORCE_REDUCED_MOTION=true npm run build', rootFolder ); - -// 2- Preparing the Gutenberg clone -// The tests and the launcher comes from the Gutenberg repository e2e tests -console.log( title( '>> Preparing the e2e tests launcher' ) ); -runShellScript( 'git clone https://github.com/WordPress/gutenberg.git ' + testLauncherPath + ' --depth=1 --no-single-branch' ); -runShellScript( 'git checkout ' + GUTENBERG_VERSION, testLauncherPath ); -runShellScript( 'npm install && npm run build', testLauncherPath ); - -// 3- Running the WordPress environment using wp-env -// The environment should include the WordPress install and the e2e tests plugins.s -console.log( title( '>> Preparing the environment' ) ); -runShellScript( 'mkdir -p ' + testEnvironmentPath ); -const envConfig = readJSONFile( sampleEnvConfig ); -envConfig.core = path.resolve( rootFolder, 'build' ); -envConfig.mappings[ 'wp-content/mu-plugins' ] = path.resolve( testLauncherPath, 'packages/e2e-tests/mu-plugins' ); -envConfig.mappings[ 'wp-content/plugins/test-plugins' ] = path.resolve( testLauncherPath, 'packages/e2e-tests/plugins' ); -fs.writeFileSync( - path.resolve( testEnvironmentPath, '.wp-env.json' ), - JSON.stringify( envConfig, null, '\t' ) + '\n' -); - -// 4- Starting the environment -console.log( title( '>> Starting the environment' ) ); -runShellScript( path.resolve( testLauncherPath, 'node_modules/.bin/wp-env' ) + ' start ', testEnvironmentPath ); - -// 5- Running the tests -console.log( title( '>> Running the e2e tests' ) ); -runShellScript( 'npm run test-e2e packages/e2e-tests/specs/editor', testLauncherPath );