Skip to content

Release testing instructions for WC Payments 2.6.0

Naman Malhotra edited this page Jun 21, 2021 · 17 revisions

Testing for Customer Multi-Currency Feature

Customer Multi-Currency allows a shop to allow their customers to choose which currency they'd like to use to see and pay for products.

Pre-requisites/Setup:

  • Set _wcpay_feature_customer_multi_currency option in the wp_options table to 1. Or use the following snippet: update_option( '_wcpay_feature_customer_multi_currency', '1' ); in the Code Snippet plugin.
  • Once you have the _wcpay_feature_customer_multi_currency option set to 1, you should be able to see a "Multi-Currency" settings tab on the settings page after clicking on Payments > Settings. Make sure this is present, in order to test the scenarios below.

Test Scenario 1

  • Go to WP Admin and click on the "Multi-Currency" tab on the WooCommerce > Settings page.
  • On the settings page, click the Add Currencies button. A modal should appear.
  • Verify that the search box works as expected by searching for a currency and verifying that the currency list updates only the expected currency displays.
  • Tick the Danish Krone option in the currency list then click Update selected. The UI should update and Danish Krone should now be in the list of enabled currencies.
  • Click the bin icon to the right of Danish Krone. A modal should appear. Click Remove Currency. Verify that Danish Krone gets removed from the list of enabled currencies.

Test Scenario 2

As an admin:

  • In WP Admin, click on Appearance > Widgets. Verify you can see "Currency Switcher" in the list of available widgets.
  • Click on the currency switcher widget and add it to the sidebar of the site. Tick both the Display currency symbols and Display flags options.

As a guest user:

  • Go to the shop page on the site. Verify the currency switcher appears in the sidebar. Change the selected currency and verify that the page should reload and all items in the shop will now display in the selected currency.
  • Test toggling the Display currency symbol option and verify the currency symbol no longer displays in the currency switcher list. Do the same with the Display flags option.
  • Add some items to the cart and go to the cart page, click Pay now and use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  • Order should be completed correctly.

As a logged in user:

  • Go to the My Account -> Account Details page. Update the "Default currency" option, save changes.
  • Go to the shop page. Prices should be displayed in your selected currency.
  • Add some items to the cart and go to the cart page, click Pay now and use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  • Order should be completed correctly.

Test Scenario 3

  • Add the currency switcher widget to the store as described in scenario 2.
  • Go to WP Admin and click on the "Multi-Currency" tab on the WooCommerce > Settings page. Make a note of the exchange rates for the EUR, NZD and CDF currencies.
  • Go to the shop page on the store, switch between USD, EUR, NZD and CDF and verify that the prices all look right (are converted from their USD price at the appropriate rate) and are formatted accordingly:
    • USD should look like $xx,xxx.xx
    • EUR should look like €xx.xxx,xx
    • CDF should look like Frxx,xxx.xx
    • NZD should look like $xx,xx.xx
  • Make sure that discounted prices and variation price ranges are rendered correctly.

Simple Products

  • Make sure the price is converted in the Shop, Product, Cart and Checkout pages.
  • Purchase the product and check that the order has the right currency and price
  • Navigate to the My Account -> Orders page and ensure that the currency used was the selected one.

Variable Products

  • Make sure the price is converted in the Shop, Product, Cart and Checkout pages.
  • Modify the selected currency and ensure the price range was updated. It is cached by WooCommerce by default, but should be refreshed when the exchange rate changes.
  • Purchase the product and check that the order has the right currency and price
  • Navigate to the My Account -> Orders page and ensure that the currency used was the selected one.

Coupons

  • Enable coupon codes in the General WooCommerce settings
  • Create three coupons, one for each type
  • Ensure that the fixed cart discount and fixed product discount amounts are converted when using them
  • Ensure that the percentage discount works correctly and the percentage defined in the coupon is applied to the order
  • Add a minimum and maximum spend usage restriction to a coupon, and check that those values are converted and matched against the cart subtotal

Shipping

  • Add a free and a flat rate shipping method to your shipping zone
  • Make sure that they work correctly on the checkout page
  • If apply_charm_only_to_products is enabled, the shipping rate should only be ceiled after conversion
  • If it's not, the shipping rate should also have the charm pricing added to it
  • Set a Minimum order amount for free shipping. Make sure that the minimum order amount is checked against the selected currency. For example:
    • If the minimum order amount is set to $100.
    • $100 in the cart should give free shipping.
    • Change the store currency to GBP.
    • The amount needed to qualify for free shipping should now be £71 (because of the conversion rate between USD and GBP).
    • Ensure that the order still qualifies for free shipping.

Taxes

  • Enable taxes in the General WooCommerce settings and create a standard tax rate
  • Ensure that taxes are correctly applied and converted when using both "Prices inclusive of tax" and "prices exclusive of tax"
  • Ensure that the shipping methods' taxes are also converted properly under both configurations

Testing for Payment Request Buttons When Guest Checkout Disabled

  1. Enable “Express checkouts” under Payments > Settings.
  2. Go to WooCommerce > Settings > Accounts & Privacy and disable the following settings:
  3. Allow customers to place orders without an account.
  4. Allow customers to create an account during checkout.
  5. Make sure you’re not logged in.
  6. Make sure you have a valid Stripe test card added to chrome://settings/payments. It can be 4242 4242 4242 4242 with any valid CVV and expiration date.
  7. Go to an HTTPS product page in Chrome and click the payment request button (Google Pay button or purple button “Buy now” above add to card). The product can be a simple product (e.g Album or Beanie), but please also test with a simple subscription product without a free trial.
  8. Notice there’s a dialog, and the Ok button redirects you to my account.
  9. Login or create an account.
  10. Notice you’re redirected to the original page and are able to continue with your order.

The behavior shown in this GIF is what’s expected from the testing.

New Settings Pages

The following settings pages have been redesigned:

  1. WCPay settings: /wp-admin/admin.php?page=wc-settings&tab=checkout&section=woocommerce_payments. The page has been redesigned. Please ensure that the settings are persisted and honored by the plugin after being saved.
  2. WCPay Express checkouts appearance: /wp-admin/admin.php?page=wc-settings&tab=checkout&section=woocommerce_payments&method=digital_wallets. The page has been redesigned. Please ensure that the settings are persisted and honored by the plugin after being saved. One thing to note in this page is that Stripe doesn’t always honor the changes of the “Express checkouts” button immediately. So for example, if the button is updated from “Size: Medium” to “Size: Large”, the change might not immediately appear. Clearing the cache after saving often resolves the issue.
  3. WC Gateways page: /wp-admin/admin.php?page=wc-settings&tab=checkout. The page will show a confirmation modal when attempting to disable WCPay.

For all these pages, after the settings are saved, they should be honored during the checkout experience.

To test the “Express checkouts” feature, ensure that:

  1. You are not testing on “localhost”
  2. You have some cards saved on GPay or on Chrome autofill or on ApplePay – see requirements here: https://stripe.com/docs/js/payment_request/can_make_payment.

Warn Merchant if Onboarding From an Unsupported Country

Starting with a new site and before starting the WooCommerce Payment setup:

  1. Under WooCommerce -> Settings set country to an unsupported one (e.g. Japan)
  2. Head to WooCommerce onboarding page and click "Finish setup"
  3. A modal pop-up should appear saying "It appears you're attempting to setup WooCommerce Payments from an unsupported country. ..."
  4. Ensure that clicking "Continue" leads to the Stripe account setup and "Cancel" just closes the modal.

Test "WCPay Dev Tools"

We'd like to test the functionality of a "tools" plugin for WCPay. The plugin is designed to make environment setup and testing easy. The plugin ZIP will be provided separately.

To setup:

  1. Navigate to wp-admin on your test site and then Plugins > Add New. Upload the ZIP you downloaded in the previous step. Activate the plugin after upload completes.
  2. After activating the plugin, you should have a new top level menu item "WCPay Dev" on your wp-admin sidebar (all the way at the bottom). Click on it.
  3. For general use (e.g. creating a test account), only the Dev mode enabled checkbox and Display notice about dev settings should be checked. Make sure everything else is unchecked. If you have to make changes, be sure to click Submit to apply them.

Test onboarding with the dev tools plugin:

  1. In the dev tools plugin select "2.6.0-test-3" in the "Use specified plugin version during install" dropdown list.
  2. Perform the Onboard via WooCommerce Setup Wizard test and verify that the expected version of the plugin is installed (2.6.0-test-3 instead of 2.5.0 in this case).

Manual Refund Button Hidden Until Refund Failure

  1. Make a purchase with the following test card: 4000 0000 0000 5126.
  2. Go to WooCommerce > Orders and open the order associated with the purchase from step 1.
  3. Click Refund.
  4. Make sure you only see the Refund <amount> via WooCommerce Payments button.
  5. Try refunding any amount greater than 0.
  6. The refund should seem to go through without any issues.
  7. Wait for 5-10 seconds, and then reload the page.
  8. Now there should be an order note saying A refund of <amount> was unsuccessful using WooCommerce Payments (re_xxxxx)
  9. In the order’s list of items hover your mouse over the refund and click the x to the far right to delete the (failed) refund.
  10. Click Refund again.
  11. Make sure there are 2 buttons available: Refund <amount> manually and Refund <amount> via WooCommerce Payments.
  12. Make sure the tooltip that appears when you hover your mouse over the Refund <amount> manually button says “Refunding manually requires reimbursing your customer offline via cash, check, etc. The refund amounts entered here will only be used to balance your analytics”.

Advance filters on the deposits page

  1. Visit Payments -> Deposits page.
  2. You should see a dropdown labeled as show and then select Advance filters from the drop-down.
  3. Make sure you have more than 30 transactions in the table to validate the pagination.
  4. Make sure you get the desired result with the Date filter.
  5. Make sure you get the desired result with the Status filter.
  6. Make sure you get the desired result with the Match filter in combination with Date and Status.
  7. Make sure table summary data (total count of rows for selected filters) and pagination of the table are working as expected.
  8. Make sure the deposits page is working as expected without applying advance filters.

Note: For match filter

  • selecting All - will fetch results with AND operator among applied filters.
  • selecting Any - will fetch results with OR operator among applied filters.
Clone this wiki locally