Commit ff295b7e301 for woocommerce

commit ff295b7e301fe3a266edb891b7bf7a943d3f1f5f
Author: Vlad Olaru <vlad.olaru@automattic.com>
Date:   Wed Sep 2 17:21:17 2026 +0300

    [tests] Keep Blocks snapshot setup out of the specialized E2E environment configs (#68240)

    fix(e2e): isolate Blocks setup project

    Specialized E2E environments share the install, authentication, and site
    setup chain.

    The shared project list also included Blocks snapshot setup, so unfiltered
    Core variants could mutate a Core-profile database and now fail correctly
    when the Blocks-only request lock is absent.

    Export only the Core setup chain to specialized configs and keep Blocks
    setup private to the default Blocks project graph.

    Refs TESTOPS-234

diff --git a/plugins/woocommerce/tests/e2e/envs/default-hpos-disabled/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/default-hpos-disabled/playwright.config.ts
index 63afae57544..95a251d5a37 100644
--- a/plugins/woocommerce/tests/e2e/envs/default-hpos-disabled/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/default-hpos-disabled/playwright.config.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import defaultConfig, { setupProjects } from '../../playwright.config';
+import defaultConfig, { coreSetupProjects } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';

 process.env.USE_WP_ENV = 'true';
@@ -10,7 +10,7 @@ process.env.DISABLE_HPOS = '1';
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'e2e-hpos-disabled',
 			grep: new RegExp( tags.HPOS ),
diff --git a/plugins/woocommerce/tests/e2e/envs/default-pressable/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/default-pressable/playwright.config.ts
index 92a53571d5d..a613cdcbfb8 100644
--- a/plugins/woocommerce/tests/e2e/envs/default-pressable/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/default-pressable/playwright.config.ts
@@ -2,7 +2,7 @@
  * Internal dependencies
  */
 import defaultConfig, {
-	setupProjects,
+	coreSetupProjects,
 	TESTS_ROOT_PATH,
 } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';
@@ -17,7 +17,7 @@ const grepInvert = new RegExp(
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'reset',
 			testDir: `${ TESTS_ROOT_PATH }/fixtures`,
diff --git a/plugins/woocommerce/tests/e2e/envs/default-wpcom/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/default-wpcom/playwright.config.ts
index 5c12cc89c5e..2cdea2c0eff 100644
--- a/plugins/woocommerce/tests/e2e/envs/default-wpcom/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/default-wpcom/playwright.config.ts
@@ -2,7 +2,7 @@
  * Internal dependencies
  */
 import defaultConfig, {
-	setupProjects,
+	coreSetupProjects,
 	TESTS_ROOT_PATH,
 } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';
@@ -17,7 +17,7 @@ const grepInvert = new RegExp(
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'reset',
 			testDir: `${ TESTS_ROOT_PATH }/fixtures`,
diff --git a/plugins/woocommerce/tests/e2e/envs/gutenberg-stable/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/gutenberg-stable/playwright.config.ts
index de1858b8177..7ff350d01fe 100644
--- a/plugins/woocommerce/tests/e2e/envs/gutenberg-stable/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/gutenberg-stable/playwright.config.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import defaultConfig, { setupProjects } from '../../playwright.config';
+import defaultConfig, { coreSetupProjects } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';

 process.env.USE_WP_ENV = 'true';
@@ -9,7 +9,7 @@ process.env.USE_WP_ENV = 'true';
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'Gutenberg',
 			grep: new RegExp( tags.GUTENBERG ),
diff --git a/plugins/woocommerce/tests/e2e/envs/woocommerce-payments/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/woocommerce-payments/playwright.config.ts
index 6e1db9fb134..c6b3ddb1e70 100644
--- a/plugins/woocommerce/tests/e2e/envs/woocommerce-payments/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/woocommerce-payments/playwright.config.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import defaultConfig, { setupProjects } from '../../playwright.config';
+import defaultConfig, { coreSetupProjects } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';

 process.env.USE_WP_ENV = 'true';
@@ -9,7 +9,7 @@ process.env.USE_WP_ENV = 'true';
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'WooPayments',
 			grep: new RegExp( tags.PAYMENTS ),
diff --git a/plugins/woocommerce/tests/e2e/envs/woocommerce-paypal-payments/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/woocommerce-paypal-payments/playwright.config.ts
index 7a8f720dfae..5dc5e3c607f 100644
--- a/plugins/woocommerce/tests/e2e/envs/woocommerce-paypal-payments/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/woocommerce-paypal-payments/playwright.config.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import defaultConfig, { setupProjects } from '../../playwright.config';
+import defaultConfig, { coreSetupProjects } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';

 process.env.USE_WP_ENV = 'true';
@@ -9,7 +9,7 @@ process.env.USE_WP_ENV = 'true';
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'WooCommerce PayPal Payments',
 			grep: new RegExp( tags.PAYMENTS ),
diff --git a/plugins/woocommerce/tests/e2e/envs/woocommerce-services/playwright.config.ts b/plugins/woocommerce/tests/e2e/envs/woocommerce-services/playwright.config.ts
index 29a1b2ab7ba..8b602832f8a 100644
--- a/plugins/woocommerce/tests/e2e/envs/woocommerce-services/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/envs/woocommerce-services/playwright.config.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import defaultConfig, { setupProjects } from '../../playwright.config';
+import defaultConfig, { coreSetupProjects } from '../../playwright.config';
 import { tags } from '../../fixtures/fixtures';

 process.env.USE_WP_ENV = 'true';
@@ -9,7 +9,7 @@ process.env.USE_WP_ENV = 'true';
 const config = {
 	...defaultConfig,
 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
 		{
 			name: 'WooCommerce Shipping & Tax',
 			grep: new RegExp( tags.SERVICES ),
diff --git a/plugins/woocommerce/tests/e2e/playwright.config.ts b/plugins/woocommerce/tests/e2e/playwright.config.ts
index 8a6c966bd74..dd88e435cbe 100644
--- a/plugins/woocommerce/tests/e2e/playwright.config.ts
+++ b/plugins/woocommerce/tests/e2e/playwright.config.ts
@@ -89,7 +89,7 @@ if ( process.env.CI ) {
 	] );
 }

-export const setupProjects = [
+export const coreSetupProjects = [
 	{
 		name: 'install wc',
 		testDir: `${ TESTS_ROOT_PATH }/fixtures`,
@@ -107,13 +107,14 @@ export const setupProjects = [
 		testMatch: `site.setup.ts`,
 		dependencies: [ 'global authentication' ],
 	},
-	{
-		name: 'blocks setup',
-		testDir: `${ TESTS_ROOT_PATH }/fixtures`,
-		testMatch: 'blocks-setup.ts',
-	},
 ];

+const blocksSetupProject = {
+	name: 'blocks setup',
+	testDir: `${ TESTS_ROOT_PATH }/fixtures`,
+	testMatch: 'blocks-setup.ts',
+};
+
 /**
  * Spec folders that must run serially in `core-serial` (they mutate global
  * state or share fixtures). Every other folder under `tests/` runs in
@@ -234,7 +235,8 @@ export default defineConfig( {
 	snapshotPathTemplate: '{testDir}/{testFilePath}-snapshots/{arg}',

 	projects: [
-		...setupProjects,
+		...coreSetupProjects,
+		blocksSetupProject,
 		{
 			name: 'core-serial',
 			testMatch: serialRunSpecs,