Commit fa8442a6343 for woocommerce

commit fa8442a63431939affee59033f94bd9f909980db
Author: theAverageDev (Luca Tumedei) <luca.tumedei@automattic.com>
Date:   Sun Jun 7 10:06:56 2026 +0200

    Migrate Blocks e2e non-module assets into Core e2e suite (#65442)

    * QAO-405 Move blocks e2e non-module assets (pure rename)

    git mv themes, test plugins, test-data, and rules from
    client/blocks/tests/e2e into tests/e2e-pw under a blocks/ namespace.
    Pure rename only; edits follow in a separate commit.

    * QAO-405 Repoint blocks e2e non-module assets after move

    Repoint wp-env mounts, the blocks eslint RULES_DIR, and the docs links
    to the moved themes/plugins. Add a CommonJS data.ts shim so the in-tree
    translation generator and the still-live blocks specs keep resolving.

    Establish the shared blocks tsconfig/eslint scope that PRs #3-#5 build on:
    tsconfig.blocks.json (ESLint type-aware parser + IDE, not a tsc gate),
    exclude the four blocks globs from the core e2e tsconfig, and add a blocks
    overrides block to the core e2e eslintrc.

    * QAO-405 Add changelog entry

    * QAO-405 Exclude moved blocks e2e test fixtures from phpcs

    The branch PHP lint (phpcs-changed) flagged the relocated blocks test
    plugins and theme template/functions files. They are e2e test fixtures,
    not shipped code, and were never linted at client/blocks; the existing
    core e2e fixtures are likewise non-compliant. Exclude the two moved
    fixture dirs, matching the existing test-fixture exclusions.

    * QAO-405 Simplify phpcs fixture exclusion comment

diff --git a/plugins/woocommerce/.wp-env.json b/plugins/woocommerce/.wp-env.json
index bcdc767194c..9ff44a24108 100644
--- a/plugins/woocommerce/.wp-env.json
+++ b/plugins/woocommerce/.wp-env.json
@@ -33,7 +33,7 @@
 				"wp-content/plugins/filter-setter.php": "./tests/e2e-pw/bin/filter-setter.php",
 				"wp-content/plugins/process-waiting-actions.php": "./tests/e2e-pw/bin/process-waiting-actions.php",
 				"wp-content/plugins/test-helper-apis.php": "./tests/e2e-pw/bin/test-helper-apis.php",
-				"wp-content/plugins/custom-place-order-button-test.php": "./client/blocks/tests/e2e/plugins/custom-place-order-button-test.php",
+				"wp-content/plugins/custom-place-order-button-test.php": "./tests/e2e-pw/test-plugins/blocks/custom-place-order-button-test.php",
 				"test-data/images/": "./tests/e2e-pw/test-data/images/"
 			}
 		}
diff --git a/plugins/woocommerce/changelog/qao-405-blocks-e2e-non-module-assets b/plugins/woocommerce/changelog/qao-405-blocks-e2e-non-module-assets
new file mode 100644
index 00000000000..07808edecfc
--- /dev/null
+++ b/plugins/woocommerce/changelog/qao-405-blocks-e2e-non-module-assets
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Migrate Blocks e2e non-module assets (themes, test plugins, test data, lint rules) into the Core e2e suite under a blocks/ namespace; test-only, no changes to shipped code.
diff --git a/plugins/woocommerce/client/blocks/.wp-env.json b/plugins/woocommerce/client/blocks/.wp-env.json
index 935316f0890..cca65933b43 100644
--- a/plugins/woocommerce/client/blocks/.wp-env.json
+++ b/plugins/woocommerce/client/blocks/.wp-env.json
@@ -12,9 +12,9 @@
 				"wp-cli.yml": "./wp-cli.yml",
 				"wp-content/plugins/woocommerce/blocks-bin": "./bin",
 				"wp-content/plugins/woocommerce/blocks-bin/playwright": "./tests/e2e/bin",
-				"wp-content/plugins/woocommerce-blocks-test-plugins": "./tests/e2e/plugins",
+				"wp-content/plugins/woocommerce-blocks-test-plugins": "../../tests/e2e-pw/test-plugins/blocks",
 				"wp-content/plugins/woocommerce-test-plugins": "../../tests/e2e-pw/bin",
-				"wp-content/themes": "./tests/e2e/themes",
+				"wp-content/themes": "../../tests/e2e-pw/themes/blocks",
 				"wp-content/themes/storefront": "https://downloads.wordpress.org/theme/storefront.latest-stable.zip",
 				"wp-content/themes/twentytwentyfour": "https://downloads.wordpress.org/theme/twentytwentyfour.latest-stable.zip"
 			}
diff --git a/plugins/woocommerce/client/blocks/docs/contributors/e2e-guidelines.md b/plugins/woocommerce/client/blocks/docs/contributors/e2e-guidelines.md
index 4182b771ce9..2dc86742d47 100644
--- a/plugins/woocommerce/client/blocks/docs/contributors/e2e-guidelines.md
+++ b/plugins/woocommerce/client/blocks/docs/contributors/e2e-guidelines.md
@@ -99,7 +99,7 @@ We isolate our tests from each other by resetting the database to its initial st

 ### Plugins

-To use a custom plugin with your tests, first create the plugin PHP file and save it to the [test plugins folder](../../tests/e2e/plugins/). Here's a handy snippet to help you get started:
+To use a custom plugin with your tests, first create the plugin PHP file and save it to the [test plugins folder](../../../../tests/e2e-pw/test-plugins/blocks/). Here's a handy snippet to help you get started:

 ```php
 // plugins/my-fancy-plugin.php
@@ -156,7 +156,7 @@ test.beforeEach( async ( { page, requestUtils } ) => {

 #### Adding a new theme

-If you've created a custom theme and want to use it in your tests, save it in the [test themes folder](../../tests/e2e/themes/). Check out the themes that are already there for inspiration. The activation part was explained above, so you're good to go!
+If you've created a custom theme and want to use it in your tests, save it in the [test themes folder](../../../../tests/e2e-pw/themes/blocks/). Check out the themes that are already there for inspiration. The activation part was explained above, so you're good to go!

 ### Utilities

diff --git a/plugins/woocommerce/client/blocks/tests/e2e/.eslintrc.js b/plugins/woocommerce/client/blocks/tests/e2e/.eslintrc.js
index 64494468c3e..8a8654da642 100644
--- a/plugins/woocommerce/client/blocks/tests/e2e/.eslintrc.js
+++ b/plugins/woocommerce/client/blocks/tests/e2e/.eslintrc.js
@@ -1,5 +1,5 @@
 const rulesDirPlugin = require( 'eslint-plugin-rulesdir' );
-rulesDirPlugin.RULES_DIR = `${ __dirname }/rules`;
+rulesDirPlugin.RULES_DIR = `${ __dirname }/../../../../tests/e2e-pw/rules/blocks`;

 const config = {
 	extends: [
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/test-data/data/data.ts b/plugins/woocommerce/client/blocks/tests/e2e/test-data/data/data.ts
index 54ae86d77f5..d63e9fb3e73 100644
--- a/plugins/woocommerce/client/blocks/tests/e2e/test-data/data/data.ts
+++ b/plugins/woocommerce/client/blocks/tests/e2e/test-data/data/data.ts
@@ -1,141 +1,5 @@
-const {
-	ADMIN_USER,
-	ADMIN_PASSWORD,
-	ADMIN_USER_EMAIL,
-	CUSTOMER_USER,
-	CUSTOMER_PASSWORD,
-	CUSTOMER_USER_EMAIL,
-	CUSTOMER_FIRST_NAME,
-	CUSTOMER_LAST_NAME,
-} = process.env;
-
-const admin = {
-	username: ADMIN_USER ?? 'admin',
-	password: ADMIN_PASSWORD ?? 'password',
-	email: ADMIN_USER_EMAIL ?? 'admin@example.com',
-};
-
-const customer = {
-	username: CUSTOMER_USER ?? 'customer',
-	password: CUSTOMER_PASSWORD ?? 'password',
-	email: CUSTOMER_USER_EMAIL ?? 'customer@example.com',
-	first_name: CUSTOMER_FIRST_NAME ?? 'Jane',
-	last_name: CUSTOMER_LAST_NAME ?? 'Smith',
-	billing: {
-		us: {
-			first_name: 'Emily',
-			last_name: 'Johnson',
-			address: '456 Maple Street',
-			city: 'Los Angeles',
-			country: 'US',
-			state: 'CA',
-			zip: '90001',
-			phone: '555 555-1234',
-			email: 'emily.johnson@example.com',
-		},
-		uk: {
-			first_name: 'Oliver',
-			last_name: 'Taylor',
-			address: '789 Oxford Street',
-			city: 'London',
-			country: 'UK',
-			state: '',
-			zip: 'W1D 2HG',
-			phone: '+44 20 1234 5678',
-			email: 'oliver.taylor@example.com',
-		},
-		af: {
-			first_name: 'Mohammed',
-			last_name: 'Hassan',
-			address: '101 Kandahar Road',
-			city: 'Kabul',
-			country: 'AF',
-			state: '',
-			zip: '1001',
-			phone: '+93 70 123 4567',
-			email: 'mohammed.hassan@example.com',
-		},
-	},
-};
-
-// Reviews are ordered by when they were created.
-// source: plugins/woocommerce/client/blocks/tests/e2e/bin/scripts/parallel/reviews.sh
-const hoodieReviews = [
-	{
-		name: `${ customer.first_name } ${ customer.last_name }`,
-		email: customer.email,
-		review: 'Nice album!',
-		rating: 5,
-	},
-	{
-		name: `${ customer.first_name } ${ customer.last_name }`,
-		email: customer.email,
-		review: 'Not bad.',
-		rating: 4,
-	},
-];
-
-const capReviews = [
-	{
-		name: `${ customer.first_name } ${ customer.last_name }`,
-		email: customer.email,
-		review: 'Really awful.',
-		rating: 1,
-	},
-	{
-		name: `${ customer.first_name } ${ customer.last_name }`,
-		email: customer.email,
-		review: 'Bad!',
-		rating: 2,
-	},
-];
-
-const allReviews = hoodieReviews.concat( capReviews );
-
-const storeDetails = {
-	us: {
-		store: {
-			address: 'addr1',
-			city: 'San Francisco',
-			zip: '94107',
-			email: admin.email,
-			country: 'United States (US) — California', // corresponding to the text value of the option,
-			countryCode: 'US:CA',
-		},
-	},
-	malta: {
-		store: {
-			address: 'addr1',
-			city: 'Valletta',
-			zip: 'VT 1011',
-			email: admin.email,
-			country: 'Malta', // corresponding to the text value of the option,
-			countryCode: 'MT',
-		},
-	},
-	liberia: {
-		store: {
-			address: 'addr1',
-			city: 'Kakata',
-			zip: 'Division 1',
-			email: admin.email,
-			country: 'Liberia — Margibi', // corresponding to the text value of the option,
-			countryCode: 'LR',
-		},
-	},
-};
-
-const translations = {
-	lang: 'nl',
-	locale: 'nl_NL',
-};
-
-module.exports = {
-	admin,
-	customer,
-	hoodieReviews,
-	capReviews,
-	allReviews,
-	storeDetails,
-	translations,
-};
+// Compatibility shim: the real test data moved to tests/e2e-pw/test-data/blocks
+// during the QAO-185 e2e merge. Kept as CommonJS (explicit .ts) because
+// bin/generate-test-translations.js require()s it via plain node; an ESM
+// re-export would throw. Removed in QAO-407 (#6) with the rest of this tree.
+module.exports = require( '../../../../../../tests/e2e-pw/test-data/blocks/data/data.ts' );
diff --git a/plugins/woocommerce/phpcs.xml b/plugins/woocommerce/phpcs.xml
index f7402aa7ac8..060886aa6b6 100644
--- a/plugins/woocommerce/phpcs.xml
+++ b/plugins/woocommerce/phpcs.xml
@@ -19,6 +19,9 @@
 	<exclude-pattern>php-stubs/</exclude-pattern>
 	<!-- GraphQL test fixtures used only by unit tests. -->
 	<exclude-pattern>tests/php/src/Internal/Api/Fixtures/</exclude-pattern>
+	<!-- Fixture PHP files used in e2e tests. -->
+	<exclude-pattern>tests/e2e-pw/themes/blocks/</exclude-pattern>
+	<exclude-pattern>tests/e2e-pw/test-plugins/blocks/</exclude-pattern>

 	<!-- Only check PHP files. -->
 	<arg name="extensions" value="php" />
diff --git a/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs b/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs
index 96fec3c28a1..6983113da19 100644
--- a/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs
+++ b/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs
@@ -1,3 +1,6 @@
+const rulesDirPlugin = require( 'eslint-plugin-rulesdir' );
+rulesDirPlugin.RULES_DIR = `${ __dirname }/rules/blocks`;
+
 module.exports = {
 	extends: [ 'plugin:playwright/recommended' ],
 	rules: {
@@ -40,5 +43,45 @@ module.exports = {
 				'@typescript-eslint/no-explicit-any': 'off',
 			},
 		},
+		/*
+		 * Blocks e2e subtree (migrated from client/blocks/tests/e2e during the
+		 * QAO-185 merge). These files use the blocks alias universe, so they get
+		 * the type-aware parser pointed at tsconfig.blocks.json and the blocks
+		 * lint rules that previously lived in client/blocks/tests/e2e/.eslintrc.js.
+		 */
+		{
+			files: [ 'tests/blocks/**', 'utils/blocks/**' ],
+			parser: '@typescript-eslint/parser',
+			parserOptions: {
+				tsconfigRootDir: __dirname,
+				project: './tsconfig.blocks.json',
+			},
+			plugins: [ 'rulesdir' ],
+			rules: {
+				'rulesdir/no-raw-playwright-test-import': 'error',
+				// Since we're restoring the database for each test, hooks other
+				// than `beforeEach` don't make sense.
+				// See https://github.com/woocommerce/woocommerce/pull/46432.
+				'playwright/no-hooks': [ 'error', { allow: [ 'beforeEach' ] } ],
+				'no-restricted-syntax': [
+					'error',
+					{
+						selector: 'CallExpression[callee.property.name="$"]',
+						message:
+							'`$` is discouraged, please use `locator` instead',
+					},
+					{
+						selector: 'CallExpression[callee.property.name="$$"]',
+						message:
+							'`$$` is discouraged, please use `locator` instead',
+					},
+					{
+						selector:
+							'CallExpression[callee.object.name="page"][callee.property.name="waitForTimeout"]',
+						message: 'Prefer page.locator instead.',
+					},
+				],
+			},
+		},
 	],
 };
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/rules/no-raw-playwright-test-import.js b/plugins/woocommerce/tests/e2e-pw/rules/blocks/no-raw-playwright-test-import.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/rules/no-raw-playwright-test-import.js
rename to plugins/woocommerce/tests/e2e-pw/rules/blocks/no-raw-playwright-test-import.js
diff --git a/plugins/woocommerce/tests/e2e-pw/test-data/blocks/data/data.ts b/plugins/woocommerce/tests/e2e-pw/test-data/blocks/data/data.ts
new file mode 100644
index 00000000000..54ae86d77f5
--- /dev/null
+++ b/plugins/woocommerce/tests/e2e-pw/test-data/blocks/data/data.ts
@@ -0,0 +1,141 @@
+const {
+	ADMIN_USER,
+	ADMIN_PASSWORD,
+	ADMIN_USER_EMAIL,
+	CUSTOMER_USER,
+	CUSTOMER_PASSWORD,
+	CUSTOMER_USER_EMAIL,
+	CUSTOMER_FIRST_NAME,
+	CUSTOMER_LAST_NAME,
+} = process.env;
+
+const admin = {
+	username: ADMIN_USER ?? 'admin',
+	password: ADMIN_PASSWORD ?? 'password',
+	email: ADMIN_USER_EMAIL ?? 'admin@example.com',
+};
+
+const customer = {
+	username: CUSTOMER_USER ?? 'customer',
+	password: CUSTOMER_PASSWORD ?? 'password',
+	email: CUSTOMER_USER_EMAIL ?? 'customer@example.com',
+	first_name: CUSTOMER_FIRST_NAME ?? 'Jane',
+	last_name: CUSTOMER_LAST_NAME ?? 'Smith',
+	billing: {
+		us: {
+			first_name: 'Emily',
+			last_name: 'Johnson',
+			address: '456 Maple Street',
+			city: 'Los Angeles',
+			country: 'US',
+			state: 'CA',
+			zip: '90001',
+			phone: '555 555-1234',
+			email: 'emily.johnson@example.com',
+		},
+		uk: {
+			first_name: 'Oliver',
+			last_name: 'Taylor',
+			address: '789 Oxford Street',
+			city: 'London',
+			country: 'UK',
+			state: '',
+			zip: 'W1D 2HG',
+			phone: '+44 20 1234 5678',
+			email: 'oliver.taylor@example.com',
+		},
+		af: {
+			first_name: 'Mohammed',
+			last_name: 'Hassan',
+			address: '101 Kandahar Road',
+			city: 'Kabul',
+			country: 'AF',
+			state: '',
+			zip: '1001',
+			phone: '+93 70 123 4567',
+			email: 'mohammed.hassan@example.com',
+		},
+	},
+};
+
+// Reviews are ordered by when they were created.
+// source: plugins/woocommerce/client/blocks/tests/e2e/bin/scripts/parallel/reviews.sh
+const hoodieReviews = [
+	{
+		name: `${ customer.first_name } ${ customer.last_name }`,
+		email: customer.email,
+		review: 'Nice album!',
+		rating: 5,
+	},
+	{
+		name: `${ customer.first_name } ${ customer.last_name }`,
+		email: customer.email,
+		review: 'Not bad.',
+		rating: 4,
+	},
+];
+
+const capReviews = [
+	{
+		name: `${ customer.first_name } ${ customer.last_name }`,
+		email: customer.email,
+		review: 'Really awful.',
+		rating: 1,
+	},
+	{
+		name: `${ customer.first_name } ${ customer.last_name }`,
+		email: customer.email,
+		review: 'Bad!',
+		rating: 2,
+	},
+];
+
+const allReviews = hoodieReviews.concat( capReviews );
+
+const storeDetails = {
+	us: {
+		store: {
+			address: 'addr1',
+			city: 'San Francisco',
+			zip: '94107',
+			email: admin.email,
+			country: 'United States (US) — California', // corresponding to the text value of the option,
+			countryCode: 'US:CA',
+		},
+	},
+	malta: {
+		store: {
+			address: 'addr1',
+			city: 'Valletta',
+			zip: 'VT 1011',
+			email: admin.email,
+			country: 'Malta', // corresponding to the text value of the option,
+			countryCode: 'MT',
+		},
+	},
+	liberia: {
+		store: {
+			address: 'addr1',
+			city: 'Kakata',
+			zip: 'Division 1',
+			email: admin.email,
+			country: 'Liberia — Margibi', // corresponding to the text value of the option,
+			countryCode: 'LR',
+		},
+	},
+};
+
+const translations = {
+	lang: 'nl',
+	locale: 'nl_NL',
+};
+
+module.exports = {
+	admin,
+	customer,
+	hoodieReviews,
+	capReviews,
+	allReviews,
+	storeDetails,
+	translations,
+};
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/additional-checkout-fields.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/additional-checkout-fields.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/additional-checkout-fields.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/additional-checkout-fields.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/cart-contents-count-filter.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/cart-contents-count-filter.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/cart-contents-count-filter.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/cart-contents-count-filter.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/cart-extensions-test-helper.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/cart-extensions-test-helper.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/cart-extensions-test-helper.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/cart-extensions-test-helper.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-add-to-cart-button-text.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-add-to-cart-button-text.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-add-to-cart-button-text.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-add-to-cart-button-text.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-place-order-button-test.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-place-order-button-test.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-place-order-button-test.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-place-order-button-test.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-product-type.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-product-type.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/custom-product-type.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/custom-product-type.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/extension-cart-update.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/extension-cart-update.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/extension-cart-update.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/extension-cart-update.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/item-data-display.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/item-data-display.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/item-data-display.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/item-data-display.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/locale-hide-country.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/locale-hide-country.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/locale-hide-country.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/locale-hide-country.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/order-confirmation-filters.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/order-confirmation-filters.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/order-confirmation-filters.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/order-confirmation-filters.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/product-collection-compatibility-layer.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/product-collection-compatibility-layer.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/product-collection-compatibility-layer.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/product-collection-compatibility-layer.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/quantity-constraints.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/quantity-constraints.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/quantity-constraints.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/quantity-constraints.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/register-product-collection.js b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/register-product-collection.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/register-product-collection.js
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/register-product-collection.js
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/register-product-collection.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/register-product-collection.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/register-product-collection.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/register-product-collection.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/short-nonce-life.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/short-nonce-life.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/short-nonce-life.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/short-nonce-life.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/single-product-template-compatibility-layer.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/single-product-template-compatibility-layer.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/single-product-template-compatibility-layer.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/single-product-template-compatibility-layer.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/plugins/update-price.php b/plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/update-price.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/plugins/update-price.php
rename to plugins/woocommerce/tests/e2e-pw/test-plugins/blocks/update-price.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-template-parts/footer.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-template-parts/footer.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-template-parts/footer.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-template-parts/footer.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-template-parts/header.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-template-parts/header.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-template-parts/header.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-template-parts/header.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-templates/index.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-templates/index.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-templates/index.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-templates/index.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-templates/singular.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-templates/singular.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/block-templates/singular.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/block-templates/singular.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/index.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/index.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/index.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/index.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/styles/variation.json b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/styles/variation.json
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/styles/variation.json
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/styles/variation.json
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/theme.json b/plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/theme.json
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/emptytheme/theme.json
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/emptytheme/theme.json
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-filter/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-filter/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/error.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/error.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/error.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/error.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/notice.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/notice.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/notice.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/notice.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/success.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/success.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__block-notices-template/woocommerce/notices/success.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__block-notices-template/woocommerce/notices/success.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/error.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/error.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/error.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/error.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/notice.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/notice.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/notice.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/notice.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/success.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/success.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__classic-notices-template/woocommerce/notices/success.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__classic-notices-template/woocommerce/notices/success.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part-support/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part-support/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part-support/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part-support/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part-support/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part-support/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part-support/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part-support/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/parts/mini-cart.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/parts/mini-cart.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/parts/mini-cart.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/parts/mini-cart.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/storefront-child__with-block-template-part/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/storefront-child__with-block-template-part/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/external-product-add-to-cart-with-options.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/external-product-add-to-cart-with-options.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/external-product-add-to-cart-with-options.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/external-product-add-to-cart-with-options.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/footer.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/footer.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/footer.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/footer.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/header.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/header.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/header.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/header.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/mini-cart.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/mini-cart.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-template-parts/mini-cart.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-template-parts/mini-cart.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/archive-product.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/archive-product.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/archive-product.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/archive-product.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/index.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/index.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/index.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/index.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/order-confirmation.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/order-confirmation.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/order-confirmation.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/order-confirmation.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/page-cart.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/page-cart.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/page-cart.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/page-cart.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/page-checkout.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/page-checkout.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/page-checkout.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/page-checkout.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/product-search-results.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/product-search-results.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/product-search-results.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/product-search-results.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/single-product-belt.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/single-product-belt.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/single-product-belt.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/single-product-belt.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/single-product.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/single-product.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/single-product.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/single-product.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/singular.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/singular.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/singular.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/singular.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_attribute.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_attribute.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_attribute.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_attribute.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_cat.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_cat.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_cat.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_cat.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_tag.html b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_tag.html
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/block-templates/taxonomy-product_tag.html
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/block-templates/taxonomy-product_tag.html
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/index.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/index.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/index.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/index.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/styles/variation.json b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/styles/variation.json
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/styles/variation.json
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/styles/variation.json
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/theme.json b/plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/theme.json
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/theme-with-woo-templates/theme.json
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/theme-with-woo-templates/theme.json
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/functions.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/functions.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/functions.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/functions.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-filter/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-filter/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/error.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/error.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/error.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/error.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/notice.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/notice.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/notice.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/notice.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/success.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/success.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__block-notices-template/woocommerce/notices/success.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__block-notices-template/woocommerce/notices/success.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/screenshot.jpg b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/screenshot.jpg
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/screenshot.jpg
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/screenshot.jpg
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/style.css b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/style.css
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/style.css
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/style.css
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/error.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/error.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/error.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/error.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/notice.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/notice.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/notice.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/notice.php
diff --git a/plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/success.php b/plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/success.php
similarity index 100%
rename from plugins/woocommerce/client/blocks/tests/e2e/themes/twentytwentyfour-child__classic-notices-template/woocommerce/notices/success.php
rename to plugins/woocommerce/tests/e2e-pw/themes/blocks/twentytwentyfour-child__classic-notices-template/woocommerce/notices/success.php
diff --git a/plugins/woocommerce/tests/e2e-pw/tsconfig.blocks.json b/plugins/woocommerce/tests/e2e-pw/tsconfig.blocks.json
new file mode 100644
index 00000000000..b5eea70fb83
--- /dev/null
+++ b/plugins/woocommerce/tests/e2e-pw/tsconfig.blocks.json
@@ -0,0 +1,19 @@
+{
+	"$schema": "https://json.schemastore.org/tsconfig.json",
+	"extends": "../../client/blocks/tsconfig.base.json",
+	"compilerOptions": {
+		"baseUrl": "../../client/blocks",
+		"rootDir": "../..",
+		"allowJs": true,
+		"noEmit": true,
+		"composite": false,
+		"emitDeclarationOnly": false,
+		"checkJs": false
+	},
+	"include": [
+		"tests/blocks/**/*",
+		"utils/blocks/**/*",
+		"fixtures/blocks-setup.ts",
+		"test-data/blocks/**/*"
+	]
+}
diff --git a/plugins/woocommerce/tests/e2e-pw/tsconfig.json b/plugins/woocommerce/tests/e2e-pw/tsconfig.json
index a35093c5843..f71917c29c7 100644
--- a/plugins/woocommerce/tests/e2e-pw/tsconfig.json
+++ b/plugins/woocommerce/tests/e2e-pw/tsconfig.json
@@ -34,6 +34,10 @@
 	"exclude": [
 		"node_modules",
 		"test-results",
-		"playwright-report"
+		"playwright-report",
+		"tests/blocks/**/*",
+		"utils/blocks/**/*",
+		"fixtures/blocks-setup.ts",
+		"test-data/blocks/**/*"
 	]
 }