From d2ec81ab2e5b562e98e2de3b19031db8270d22fc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 16:35:25 +0100 Subject: [PATCH] Release: 8.7.1 (#7371) * Empty commit for release pull request * Updated changelog. * Minor lint fix. * 8.7.0 Testing instructions * Updated and tidy docs/internal-developers/testing/releases/README.md * Add filter-link-button mixin (#7357) * Set default style to link-button mixin It was identified that we currently have 3 different behaviors for links used in the application. In issue #1778, it was discussed a set of good practices that we should follow in order to obtain consistency between links. Currently, the link-button mixin is already used by the 'Clear all' button in the Active Filters block, so the idea was to increment it with a common pattern (font size small, font-weight normal, underlined by default and not underlined when on hover) that can be reused by other components (for example FilterResetButton). * Change link-button mixin to make it attend the expected default style for links * Replace text-button with link-button mixin in FilterResetButton component * Add new mixin for links in filter blocks * Revert change to link-button mixin to prevent it to affect link buttons on Checkout page * Add filter-link-button mixin that can be used in filter blocks * Remove link-button styles that were moved to filter-link-button mixin By default, link-button mixin styles should have only styles from the text-button mixin and also be underlined. The styles for link button in filter blocks should reside in filter-link-button mixin. * Cherry picked Add filter-link-button mixin #7357 and updated testing instructions * Re-added #7273 to changelog * Correct block name and description (#7354) * Correct block name and description * remove duplicated description for controls blocks * remove duplicated title and desc * Revert "remove duplicated description for controls blocks" This reverts commit ed5417eb0e5191ed2f1def2a04c9e724fe70856a. * removed #7338 from testing instructions and changelog * Updated testing zip package. * Minor formatting fix on the release instructions * change any to or below the express payment method on cart (#7369) * Updated zip. * Add temporary workaround to fix inserting Cart block in WordPress.com (#7367) * remove problematic actions as deps * add inline docs * add todo comment * Cherry picked: Fix a problem that causes an infinite loop when inserting Cart block in wordpress.com (7367) * Updated testing zip. * Bumping version strings to new version. * Empty commit for release pull request Co-authored-by: github-actions Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com> Co-authored-by: Alexandre Lara Co-authored-by: Tung Du Co-authored-by: Alex Florisca Co-authored-by: Seghir Nadir --- .../payment-method-config-helper.ts | 6 ++++++ .../test/payment-method-config-helper.ts | 12 ++++++++++++ docs/internal-developers/testing/releases/871.md | 15 +++++++++++++++ .../testing/releases/README.md | 1 + package.json | 2 +- readme.txt | 6 +++++- src/Package.php | 2 +- woocommerce-gutenberg-products-block.php | 2 +- 8 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 docs/internal-developers/testing/releases/871.md diff --git a/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts b/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts index 3f0868f124d..df56325b76a 100644 --- a/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts +++ b/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts @@ -50,6 +50,12 @@ export const canMakePaymentWithExtensions = Object.entries( extensionsCallbacks ).forEach( ( [ namespace, callbacks ] ) => { + if ( + ! ( paymentMethodName in callbacks ) || + typeof callbacks[ paymentMethodName ] !== 'function' + ) { + return; + } namespacedCallbacks[ namespace ] = callbacks[ paymentMethodName ]; } diff --git a/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts b/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts index 2951725c3d7..4f75083d891 100644 --- a/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts +++ b/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts @@ -88,6 +88,9 @@ describe( 'payment-method-config-helper', () => { woopay: trueCallback, // testpay: one callback errors, one returns true testpay: throwsCallback, + // Used to check that only valid callbacks run in each namespace. It is not present in + // 'other-woocommerce-marketplace-extension'. + blocks_pay: trueCallback, } ); registerPaymentMethodExtensionCallbacks( @@ -202,5 +205,14 @@ describe( 'payment-method-config-helper', () => { expect( throwsCallback ).toHaveBeenCalledTimes( 1 ); expect( trueCallback ).toHaveBeenCalledTimes( 1 ); } ); + + it( 'Does not error when a callback for a payment method is in one namespace but not another', () => { + helpers.canMakePaymentWithExtensions( + () => true, + canMakePaymentExtensionsCallbacks, + 'blocks_pay' + )( canMakePaymentArgument ); + expect( console ).not.toHaveErrored(); + } ); } ); } ); diff --git a/docs/internal-developers/testing/releases/871.md b/docs/internal-developers/testing/releases/871.md new file mode 100644 index 00000000000..544980b31fa --- /dev/null +++ b/docs/internal-developers/testing/releases/871.md @@ -0,0 +1,15 @@ +# Testing notes and ZIP for release 8.7.1 + +Zip file for testing: [woocommerce-gutenberg-products-block.zip](https://github.com/woocommerce/woocommerce-blocks/files/9766268/woocommerce-gutenberg-products-block.zip) + +## Feature plugin and package inclusion in WooCommerce + +### Fixed an issue where JavaScript errors would occur when more than one extension tried to filter specific payment methods in the Cart and Checkout blocks ([7377](https://github.com/woocommerce/woocommerce-blocks/pull/7377)) + +#### User Facing Testing + +1. Install and activate [some-extension-name.zip](https://github.com/woocommerce/woocommerce-blocks/files/9764404/some-extension-name.zip) and [WooCommerce Conditional Shipping and Payments](https://woocommerce.com/products/conditional-shipping-and-payments/). +2. Activate the Cash on Delivery payment method. +3. Go to the Cart block and view the JS console. Ensure you don't see any errors such as `Error when executing callback for cheque in some-extension-name TypeError: namespacedCallbacks[namespace] is not a function`. +4. Go to the Checkout block and check that no similar errors appear. +5. Change your city to `Denver` and ensure the Cash on Delivery method is not available. diff --git a/docs/internal-developers/testing/releases/README.md b/docs/internal-developers/testing/releases/README.md index d860faebed1..c0919ae6dd4 100644 --- a/docs/internal-developers/testing/releases/README.md +++ b/docs/internal-developers/testing/releases/README.md @@ -92,6 +92,7 @@ Every release includes specific testing instructions for new features and bug fi - [8.5.1](./851.md) - [8.6.0](./860.md) - [8.7.0](./870.md) + - [8.7.1](./871.md) diff --git a/package.json b/package.json index 995d63bd627..52ddd64b945 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@woocommerce/block-library", "title": "WooCommerce Blocks", "author": "Automattic", - "version": "8.7.0", + "version": "8.7.1", "description": "WooCommerce blocks for the Gutenberg editor.", "homepage": "https://github.com/woocommerce/woocommerce-gutenberg-products-block/", "keywords": [ diff --git a/readme.txt b/readme.txt index e93c746bcf5..6eb94e7608b 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: gutenberg, woocommerce, woo commerce, products, blocks, woocommerce blocks Requires at least: 6.0 Tested up to: 6.0 Requires PHP: 7.0 -Stable tag: 8.7.0 +Stable tag: 8.7.1 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -80,6 +80,10 @@ Release and roadmap notes available on the [WooCommerce Developers Blog](https:/ == Changelog == += 8.7.1 - 2022-10-12 = + +- Fixed an issue where JavaScript errors would occur when more than one extension tried to filter specific payment methods in the Cart and Checkout blocks. ([7377](https://github.com/woocommerce/woocommerce-blocks/pull/7377)) + = 8.7.0 - 2022-10-10 = #### Enhancements diff --git a/src/Package.php b/src/Package.php index 82213d8dba9..f3fd8408c98 100644 --- a/src/Package.php +++ b/src/Package.php @@ -109,7 +109,7 @@ public static function container( $reset = false ) { NewPackage::class, function ( $container ) { // leave for automated version bumping. - $version = '8.7.0'; + $version = '8.7.1'; return new NewPackage( $version, dirname( __DIR__ ), diff --git a/woocommerce-gutenberg-products-block.php b/woocommerce-gutenberg-products-block.php index 465d22c8cac..208dc86e9f5 100644 --- a/woocommerce-gutenberg-products-block.php +++ b/woocommerce-gutenberg-products-block.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce Blocks * Plugin URI: https://github.com/woocommerce/woocommerce-gutenberg-products-block * Description: WooCommerce blocks for the Gutenberg editor. - * Version: 8.7.0 + * Version: 8.7.1 * Author: Automattic * Author URI: https://woocommerce.com * Text Domain: woo-gutenberg-products-block