From 2d124b68dad298eb9e494df20779da970fe3d71f Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 5 Nov 2026 23:10:28 -0500 Subject: [PATCH] Build/Test Tools: Remove the unused Gutenberg e2e test script. The `tests/gutenberg/run.js` script was introduced in [48382] to run the Gutenberg end-to-end tests against a WordPress Core checkout. It was never added to any npm script or CI workflow, and it no longer works: - It clones and checks out Gutenberg's `wp/trunk` branch, which no longer exists. - It runs `npm run test-e2e packages/e2e-tests/specs/editor`, but Gutenberg no longer has a `test-e2e` script, and the Puppeteer specs in `packages/e2e-tests/specs` were removed when its tests moved to Playwright. - It fails before reaching any of those steps, because `chalk` v5+ is ESM-only and `require( 'chalk' ).bold` is `undefined`. This removes the script and its `.wp-env.sample.json` file, along with the `chalk` and `uuid` dev dependencies, which were only added for and used by this script. The other change in [48382], the `FORCE_REDUCED_MOTION` webpack definition, was already removed in [56699]. --- package-lock.json | 29 --------- package.json | 2 - tests/gutenberg/.wp-env.sample.json | 13 ---- tests/gutenberg/run.js | 97 ----------------------------- 4 files changed, 141 deletions(-) delete mode 100644 tests/gutenberg/.wp-env.sample.json delete mode 100755 tests/gutenberg/run.js diff --git a/package-lock.json b/package-lock.json index 104144e86e833..fd5807b735a8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,6 @@ "@wordpress/prettier-config": "4.51.0", "@wordpress/scripts": "33.0.0", "autoprefixer": "10.5.3", - "chalk": "5.6.2", "cssnano": "7.1.9", "dotenv": "17.4.2", "dotenv-expand": "13.0.0", @@ -92,7 +91,6 @@ "source-map-loader": "5.0.0", "typescript": "6.0.3", "update-browserslist-db": "1.3.1", - "uuid": "14.0.1", "wait-on": "9.0.10", "webpack": "5.108.4" }, @@ -10399,19 +10397,6 @@ "node": ">= 10" } }, - "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/change-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", @@ -28630,20 +28615,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz", - "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", diff --git a/package.json b/package.json index e209ae46d2058..b260b675af0ba 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "@wordpress/prettier-config": "4.51.0", "@wordpress/scripts": "33.0.0", "autoprefixer": "10.5.3", - "chalk": "5.6.2", "cssnano": "7.1.9", "dotenv": "17.4.2", "dotenv-expand": "13.0.0", @@ -90,7 +89,6 @@ "source-map-loader": "5.0.0", "typescript": "6.0.3", "update-browserslist-db": "1.3.1", - "uuid": "14.0.1", "wait-on": "9.0.10", "webpack": "5.108.4" }, 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 c463bfde0bc8e..0000000000000 --- a/tests/gutenberg/run.js +++ /dev/null @@ -1,97 +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 -const GUTENBERG_VERSION = 'wp/trunk'; - -// 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 );