From 0f75325fd0a66787a833a2111d2fa0431b26871a Mon Sep 17 00:00:00 2001 From: Thomas Roberts <5656702+opr@users.noreply.github.com> Date: Fri, 5 Feb 2021 09:11:05 +0000 Subject: [PATCH] Add new links to experimental docs and update JS testing docs (https://github.com/woocommerce/woocommerce-blocks/pull/3785) * Remove references to no-longer-existing isFeaturePluginBuild calls This is because these were moved/removed in woocommerce/woocommerce-blocks#3065 but the docs were not updated fully. * Update reference to travis to GitHub actions in docs * Update JS testing doc to have info about Github Actions * Add documentation for gateway_features_list hook This was added in woocommerce/woocommerce-blocks#3719 but not documented. --- ...ature-flags-and-experimental-interfaces.md | 5 +- .../docs/contributors/javascript-testing.md | 50 ++++++++++++------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/plugins/woocommerce-blocks/docs/blocks/feature-flags-and-experimental-interfaces.md b/plugins/woocommerce-blocks/docs/blocks/feature-flags-and-experimental-interfaces.md index 1d42038133d..213b17d079d 100644 --- a/plugins/woocommerce-blocks/docs/blocks/feature-flags-and-experimental-interfaces.md +++ b/plugins/woocommerce-blocks/docs/blocks/feature-flags-and-experimental-interfaces.md @@ -34,7 +34,7 @@ We also have individual features or code blocks behind a feature flag, this is a ### Feature plugin flag - Draft order and cleanup process ([PHP flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/e167b2c99c68e8113b4e371fefdd6f9a356ed2e8/src/Domain/Services/DraftOrders.php#L42-L51)). -- ⚛️ Product Price new controls ([JS flag 1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/attributes.js#L13-L44) | [JS flag 2-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L109-L110) | [JS flag 2-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L161-L162) | [JS flag 2-3](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L165) | [JS flag 2-4](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L196-L197) | [JS flag 2-5](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L199) | [JS flag 2-6](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L210-L211) | [JS flag 2-7](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L213) | [JS flag 2-8](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L231) | [JS flag 2-9](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/block.js#L233) | [JS flag 3-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/edit.js#L59-L108) | [JS flag 3-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/edit.js#L114-L131)). +- ⚛️ Product Price new controls ([JS flag 1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/attributes.js#L13-L44) | [JS flag 2-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/8d2f0ad8ade2c7217769b431f93de76d6cfacf6e/assets/js/atomic/blocks/product-elements/price/block.js#L116) | [JS flag 2-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/8d2f0ad8ade2c7217769b431f93de76d6cfacf6e/assets/js/atomic/blocks/product-elements/price/block.js#L114) | [JS flag 2-3](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/8d2f0ad8ade2c7217769b431f93de76d6cfacf6e/assets/js/atomic/blocks/product-elements/price/block.js#L91) | [JS flag 2-4](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/8d2f0ad8ade2c7217769b431f93de76d6cfacf6e/assets/js/atomic/blocks/product-elements/price/block.js#L95) | [JS flag 2-5](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/8d2f0ad8ade2c7217769b431f93de76d6cfacf6e/assets/js/atomic/blocks/product-elements/price/block.js#L106) | [JS flag 3-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/edit.js#L59-L108) | [JS flag 3-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/price/edit.js#L114-L131)). - ⚛️ Product Title new controls ([JS flag 1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/attributes.js#L21-L40) | [JS flag 2-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/block.js#L70-L72) | [JS flag 2-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/block.js#L94-L95) | [JS flag 2-3](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/block.js#L104) | [JS flag 3-1](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/edit.js#L47-L54) | [JS flag 3-2](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/edit.js#L77-L107) | [JS flag 3-3](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/assets/js/atomic/blocks/product-elements/title/edit.js#L116-L129)). - Utility function to pass styles to a block ([JS flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/9ebddbc5d21eb3cc67fedddbccbd86453313eb64/assets/js/atomic/utils/block-styling.js#L6-L12)). @@ -45,13 +45,14 @@ We also have individual features or code blocks behind a feature flag, this is a ## Processes and commands that use a flag - `npm run build:deploy` uses the feature plugin flag ([env flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/c0de18ec0a798c072420c67a689e4cc4d3ac77c9/package.json#L28)). -- travis uses the experimental flag when running tests ([env flags](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/d6a506c19056d42d40743ae0126153fb81004672/.travis.yml#L68-L143)). +- GitHub actions uses the experimental flag when running automated tests ([env flags](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/trunk/.github/workflows/php-js-e2e-tests.yml)). - webpack creates a `blocks.ini` when running ([env flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/bin/webpack-configs.js#L95-L102)). - webpack filters out experimental blocks when building. ([env flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b3a9753d8b7dae18b36025d09fbff835b8365de0/bin/webpack-entries.js#L61-L66)). - certain e2e tests are skipped if the environment is not met ([env flag](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/50e7411aee51afb3fbfa8561e297085ee44e40c0/tests/e2e-tests/specs/backend/cart.test.js#L18)). ## Usages of `__experimental` prefix +- `__experimental_woocommerce_blocks_payment_gateway_features_list` hook that allows modification of the features supported by PayPal Standard. ([experimental hook](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/trunk/src/Payments/Integrations/PayPal.php#L86)). - `__experimental_woocommerce_blocks_checkout_update_order_meta` hook when the draft order has been created or updated from the cart and is now ready for extensions to modify the metadata ([experimental hook](https://github.com/woocommerce/woocommerce-gutenberg-products-block/pull/3686/files#diff-af2c90fa556cc086b780c8fad99b68373d87fd6007e6e2ff1b4c68ebe9ccb551R377-R393)). - `__experimental_woocommerce_blocks_checkout_order_processed` hook when order has completed processing and is ready for payment ([experimental hook](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/accd1bbf402e043b9fc322f118ab614ba7437c92/src/StoreApi/Routes/Checkout.php#L237)). - `__experimentalDeRegisterPaymentMethod` function used to deregister a payment method, only used in tests ([experimental function](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/b07883b8b76feeb439d655b255507b24fc59e091/assets/js/blocks-registry/payment-methods/registry.js#L70)). diff --git a/plugins/woocommerce-blocks/docs/contributors/javascript-testing.md b/plugins/woocommerce-blocks/docs/contributors/javascript-testing.md index d600dcc2d4f..0754a430ee8 100644 --- a/plugins/woocommerce-blocks/docs/contributors/javascript-testing.md +++ b/plugins/woocommerce-blocks/docs/contributors/javascript-testing.md @@ -59,39 +59,51 @@ We follow the same WordPress support policy as WooCommerce, this means we need t For that, we run end-to-end tests against all of those versions, and because we use packages published by Gutenberg, we also run tests against the latest version of Gutenberg plugin. -When a new version of WordPress is released, we drop support for the oldest version we have, so if the latest version is 5.5, we would test against: +When a new version of WordPress is released, we drop support for the oldest version we have, so if the latest version is 5.6, we would test against: -- WordPress 5.3 - WordPress 5.4 - WordPress 5.5 -- WordPress 5.5 + Gutenberg +- WordPress 5.6 +- WordPress 5.6 + Gutenberg -When 5.6 is released, we would drop support for 5.3, and update our `./.travis.yml` file. +When 5.7 is released, we would drop support for 5.4, and update our `./.github/workflows/php-js-e2e-tests.yml` file. You need to bump the test version, so ```yml -- name: E2E Tests (WP 5.3) - script: - - npm run test:e2e - env: - - WP_VERSION=5.3 - - E2E_TESTS=1 - - WOOCOMMERCE_BLOCKS_PHASE=3 + JSE2ETestsWP54: + name: JavaScipt E2E Tests (WP 5.4) + ... + - name: E2E Tests (WP 5.4) + env: + WOOCOMMERCE_BLOCKS_PHASE: 3 + WP_VERSION: 5.4-branch + run: | + JSON='{"core": "WordPress/WordPress#'"$WP_VERSION"'"}' + echo $JSON > .wp-env.override.json + npm run wp-env start + npm run wp-env clean all + npm run test:e2e ``` Would become ```yml -- name: E2E Tests (WP 5.4) - script: - - npm run test:e2e - env: - - WP_VERSION=5.4 - - E2E_TESTS=1 - - WOOCOMMERCE_BLOCKS_PHASE=3 + JSE2ETestsWP55: + name: JavaScipt E2E Tests (WP 5.5) + ... + - name: E2E Tests (WP 5.5) + env: + WOOCOMMERCE_BLOCKS_PHASE: 3 + WP_VERSION: 5.5-branch + run: | + JSON='{"core": "WordPress/WordPress#'"$WP_VERSION"'"}' + echo $JSON > .wp-env.override.json + npm run wp-env start + npm run wp-env clean all + npm run test:e2e ``` You also need to check any existing tests that checks the WP version. -In `./tests/e2e/specs`, verify for conditions like `if ( process.env.WP_VERSION < 5.4 )` and remove them if they're not relevant anymore. \ No newline at end of file +In `./tests/e2e/specs`, verify for conditions like `if ( process.env.WP_VERSION < 5.4 )` and remove them if they're not relevant anymore.