Commit 0e2d4903fd6 for woocommerce
commit 0e2d4903fd6b734d03e416f545e381fe920a80a5
Author: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
Date: Thu Jul 23 13:25:18 2026 +0300
e2e tests: Remove 4 redundant blocks E2E tests covered lower in the pyramid (#66731)
diff --git a/plugins/woocommerce/changelog/testops-234-remove-redundant-blocks-e2e-tests b/plugins/woocommerce/changelog/testops-234-remove-redundant-blocks-e2e-tests
new file mode 100644
index 00000000000..58d0c3790f4
--- /dev/null
+++ b/plugins/woocommerce/changelog/testops-234-remove-redundant-blocks-e2e-tests
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Remove 4 redundant blocks E2E tests already covered by unit/component/PHPUnit tests.
diff --git a/plugins/woocommerce/tests/e2e/tests/blocks/breadcrumbs/breadcrumbs.block_theme.spec.ts b/plugins/woocommerce/tests/e2e/tests/blocks/breadcrumbs/breadcrumbs.block_theme.spec.ts
index 50740c66e52..3a0f6b9b3e1 100644
--- a/plugins/woocommerce/tests/e2e/tests/blocks/breadcrumbs/breadcrumbs.block_theme.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/blocks/breadcrumbs/breadcrumbs.block_theme.spec.ts
@@ -9,23 +9,6 @@ const blockData = {
};
test.describe( `${ blockData.slug } Block`, () => {
- test( "block can't be inserted in Post Editor", async ( {
- admin,
- editor,
- } ) => {
- await admin.createNewPost();
-
- try {
- await editor.insertBlock( { name: blockData.slug } );
- } catch ( _error ) {
- // noop
- }
-
- await expect(
- await editor.getBlockByName( blockData.slug )
- ).toBeHidden();
- } );
-
test( 'block can be inserted in the Site Editor', async ( {
admin,
requestUtils,
diff --git a/plugins/woocommerce/tests/e2e/tests/blocks/cart-store/mutation-batcher.block_theme.spec.ts b/plugins/woocommerce/tests/e2e/tests/blocks/cart-store/mutation-batcher.block_theme.spec.ts
index 44ec555c04d..1ce093d0a88 100644
--- a/plugins/woocommerce/tests/e2e/tests/blocks/cart-store/mutation-batcher.block_theme.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/blocks/cart-store/mutation-batcher.block_theme.spec.ts
@@ -25,38 +25,6 @@ test.describe( 'Mutation Batcher', () => {
await frontendUtils.goToShop();
} );
- test( 'synchronous calls are batched into a single request', async ( {
- page,
- } ) => {
- const batchRequests: number[] = [];
-
- await page.route( '**/wc/store/v1/batch**', async ( route ) => {
- const body = route.request().postDataJSON();
- batchRequests.push( body?.requests?.length || 0 );
- await route.continue();
- } );
-
- await page.evaluate( async () => {
- const { store } = await import( '@wordpress/interactivity' );
- const unlockKey =
- 'I acknowledge that using a private store means my plugin will inevitably break on the next store release.';
-
- await import( '@woocommerce/stores/woocommerce/cart' );
- const { actions } = store( 'woocommerce', {}, { lock: unlockKey } );
-
- // Three calls with no await between them — same microtick.
- const p1 = actions.addCartItem( { id: 15, quantityToAdd: 1 } );
- const p2 = actions.addCartItem( { id: 16, quantityToAdd: 1 } );
- const p3 = actions.addCartItem( { id: 17, quantityToAdd: 1 } );
-
- await Promise.all( [ p1, p2, p3 ] );
- } );
-
- // All 3 operations should have been sent in a single batch request.
- expect( batchRequests ).toHaveLength( 1 );
- expect( batchRequests[ 0 ] ).toBe( 3 );
- } );
-
test( 'awaited calls produce separate batch requests', async ( {
page,
} ) => {
@@ -221,59 +189,4 @@ test.describe( 'Mutation Batcher', () => {
// to the snapshot taken before any optimistic mutations.
await expect( button ).toHaveText( '1 in cart' );
} );
-
- test( 'partial failure in a batch does not prevent successful operations', async ( {
- page,
- } ) => {
- const batchRequests: number[] = [];
-
- await page.route( '**/wc/store/v1/batch**', async ( route ) => {
- const body = route.request().postDataJSON();
- batchRequests.push( body?.requests?.length || 0 );
- await route.continue();
- } );
-
- const result = await page.evaluate( async () => {
- const { store } = await import( '@wordpress/interactivity' );
- const unlockKey =
- 'I acknowledge that using a private store means my plugin will inevitably break on the next store release.';
-
- await import( '@woocommerce/stores/woocommerce/cart' );
- const { actions, state } = store(
- 'woocommerce',
- {},
- { lock: unlockKey }
- );
-
- // Refresh to get clean state.
- await actions.refreshCartItems();
-
- // Mix valid and invalid product IDs — all in one microtick.
- const p1 = actions.addCartItem( { id: 15, quantityToAdd: 1 } );
- const p2 = actions.addCartItem( { id: 999999, quantityToAdd: 1 } ); // Invalid
- const p3 = actions.addCartItem( { id: 16, quantityToAdd: 1 } );
-
- // addCartItem catches errors internally so all promises resolve.
- await Promise.allSettled( [ p1, p2, p3 ] );
-
- const cartProductIds = state.cart.items.map(
- ( item: { id: number } ) => item.id
- );
-
- return {
- has15: cartProductIds.includes( 15 ),
- has999999: cartProductIds.includes( 999999 ),
- has16: cartProductIds.includes( 16 ),
- };
- } );
-
- // Valid products should be in cart, invalid should not.
- expect( result.has15 ).toBe( true );
- expect( result.has999999 ).toBe( false );
- expect( result.has16 ).toBe( true );
-
- // Should still have been sent as a single batch.
- expect( batchRequests ).toHaveLength( 1 );
- expect( batchRequests[ 0 ] ).toBe( 3 );
- } );
} );
diff --git a/plugins/woocommerce/tests/e2e/tests/blocks/checkout/checkout-block.shopper.block_theme.spec.ts b/plugins/woocommerce/tests/e2e/tests/blocks/checkout/checkout-block.shopper.block_theme.spec.ts
index 88eef0a2b38..520aadf9b79 100644
--- a/plugins/woocommerce/tests/e2e/tests/blocks/checkout/checkout-block.shopper.block_theme.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/blocks/checkout/checkout-block.shopper.block_theme.spec.ts
@@ -293,29 +293,6 @@ test.describe( 'Shopper → Local pickup', () => {
} );
} );
-test.describe( 'Shopper → Payment Methods', () => {
- test( 'User can change payment methods', async ( {
- frontendUtils,
- page,
- } ) => {
- await frontendUtils.goToShop();
- await frontendUtils.addToCart( SIMPLE_PHYSICAL_PRODUCT_NAME );
- await frontendUtils.goToCheckout();
-
- await page
- .getByRole( 'radio', { name: 'Direct bank transfer' } )
- .click();
- await expect(
- page.getByRole( 'radio', { name: 'Direct bank transfer' } )
- ).toBeChecked();
-
- await page.getByRole( 'radio', { name: 'Cash on delivery' } ).click();
- await expect(
- page.getByRole( 'radio', { name: 'Cash on delivery' } )
- ).toBeChecked();
- } );
-} );
-
test.describe( 'Shopper → Shipping and Billing Addresses', () => {
const billingTestData = {
firstname: 'John',