From 3a71233d4ba9252c7b2143e385a60fd1cfe47993 Mon Sep 17 00:00:00 2001 From: Seghir Nadir Date: Mon, 20 Apr 2020 14:47:11 +0100 Subject: [PATCH] Testing checklist (https://github.com/woocommerce/woocommerce-blocks/pull/2196) * initial draft for testing * fix typos and add table of content * add how to report section * finish the rest of the docs * add free shipping section * add create todo badge * fix misplaced button * add a general flow section * change image link * fix typos --- .../docs/testing/cart-checkout/coupons.md | 34 +++++++ .../testing/cart-checkout/cross-browser.md | 9 ++ .../docs/testing/cart-checkout/editor.md | 10 +++ .../testing/cart-checkout/general-flow.md | 20 +++++ .../docs/testing/cart-checkout/items.md | 19 ++++ .../docs/testing/cart-checkout/payment.md | 40 +++++++++ .../docs/testing/cart-checkout/readme.md | 89 +++++++++++++++++++ .../docs/testing/cart-checkout/shipping.md | 37 ++++++++ .../docs/testing/cart-checkout/taxes.md | 18 ++++ 9 files changed, 276 insertions(+) create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/coupons.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/cross-browser.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/editor.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/general-flow.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/items.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/payment.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/readme.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/shipping.md create mode 100644 plugins/woocommerce-blocks/docs/testing/cart-checkout/taxes.md diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/coupons.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/coupons.md new file mode 100644 index 00000000000..60329bd74bf --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/coupons.md @@ -0,0 +1,34 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Coupons + +## Setup + +You will need to setup some types of coupon in order to test this. +- A general purpose coupon `coupon`. +- An expired coupon `oldcoupon`. +- An email limited coupon `a12s` that is limited to `*@automattic.com` emails. +- A cart condition coupon that is limited to carts above x threshold (e.g $200) `above200`. +- An individually used coupon `alone`. +- A free shipping coupon `freeship`. + +## What to test + +With coupons disabled: + +- [ ] You should not see the add coupon section in your cart and checkout and in the editor. + +With coupons enabled: + +- [ ] You can apply coupons in both Cart and Checkout blocks. +- [ ] A valid coupon `coupon` should reduce your totals. +- [ ] An expired coupon `oldcoupon` should return an error. +- [ ] An invalid coupon should return an error. +- [ ] An email limited coupon should apply to your cart. + - [ ] If the email is correct, you should be able to checkout. + - [ ] If the email is incorrect, you should receive an error, and the coupon will be removed from your cart. +- [ ] A condition coupon should not be added until you meet the condition. + - [ ] Adding a condition coupon then removing the condition (reduce cart total or remove related item) should remove the coupon from your cart with an error. +- [ ] Adding a coupon then adding `alone` coupon should replace the first one. +- [ ] Adding `alone` then trying to another coupon should result in an error. +- [ ] Adding `freeship` should show the free shipping method you previously created. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/cross-browser.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/cross-browser.md new file mode 100644 index 00000000000..80f83c7f4d3 --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/cross-browser.md @@ -0,0 +1,9 @@ +# Cross-platform and browser compatibility + +The main goal of this is to test in a variety of themes, browsers, platforms, and setups, this is a list of things you can test with, with sane expectations. + +The baseline for testing is: +- WordPress 5.3 and up. +- WooCommerce 4.0 and up +- All Browsers supported by [those two versions](https://make.wordpress.org/core/handbook/best-practices/browser-support/) so this includes Internet Explorer 11, and latest two versions of each browser. +- Storefront, TwentyTwenty, and TwentyNineteen themes, we use storefront as a basis for development and push fixes to it regularly, so make sure you run the latest version. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/editor.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/editor.md new file mode 100644 index 00000000000..bc77c74a205 --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/editor.md @@ -0,0 +1,10 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Editor experience + +- [ ] You should be able to add, and only one Cart or Checkout block to a page. +- [ ] The preview in the inserter should show a skeleton of how the block structure should look like. +- [ ] When inserting any of the blocks, it should have some data already in it. +- [ ] You should not be able to interact directly with the block (except for some sections). +- [ ] You should be able to see block settings on the sidebar when it is focused. +- [ ] Proceed to Checkout and Back to cart block settings should present you with a list of your website pages. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/general-flow.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/general-flow.md new file mode 100644 index 00000000000..500ba3e5f19 --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/general-flow.md @@ -0,0 +1,20 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# General Flows + +## Setup + +This is a general flow of the main functionality of the blocks without going too much +into details, you're expected to set your store as is, with your current flow, products, +taxes (if you have any), shipping and so on. + +## What to test + +- [ ] Create pages with Cart and Checkout blocks. +- [ ] Set the continue to checkout link your Cart settings to the Checkout page you created. +- [ ] Add some products to your cart. +- [ ] Mix in a limited stock product or a coupon. +- [ ] Continue to checkout. +- [ ] You should be able to fix your info, if you have them saved, they will show up. +- [ ] Depending on what payment method you enabled (Credit Card, Check, Express payment), you can place the order. +- [ ] You should see an order received page. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/items.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/items.md new file mode 100644 index 00000000000..982708379d6 --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/items.md @@ -0,0 +1,19 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Cart Items + +## Setup + +- You will need an item that is [sold individually](https://docs.woocommerce.com/wp-content/uploads/2016/06/disable-stock-mgmt.png). +- You will need a low stock item with a [low threshold quantity](https://docs.woocommerce.com/wp-content/uploads/2016/06/simpleproduct-inventory.png) below the stock quantity. +- You will need a low stock item with a [low threshold quantity](https://docs.woocommerce.com/wp-content/uploads/2016/06/simpleproduct-inventory.png) above 0 and a stock quantity below the threshold. + +## What to test + +- [ ] You should be able to add items to your cart. +- [ ] You should be able to change item quantity in your Cart. +- [ ] You should not be able to change "sold individually" items quantity. +- [ ] Items that have quantity lower than the threshold should show "x Left in stock". + - [ ] You should not be able to increase that item quantity to above that is left in stock. +- [ ] If you try to increase an item quantity to above its stock quantity, you get an error. +- [ ] You should be able to remove an item. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/payment.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/payment.md new file mode 100644 index 00000000000..9106bc420fd --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/payment.md @@ -0,0 +1,40 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Payments + +## Setup + +- The Checkout Block supports Three methods of payments: + - Check Payment, found in WooCommerce payment section. + - Stripe Credit Card payments, provided by [Stripe Gateway](https://woocommerce.com/products/stripe/). + - Express Payment methods, provided by [Stripe Gateway](https://woocommerce.com/products/stripe/). + +To test Stripe and Express payment methods, you will need API keys, you can get them by creating a testing account +in stripe. + +Special Cases: +To test Express payment methods there are some special requirements like +- You need to be serving the website over https, try ephemeral websites. +- You need to be from a supported country. +- To test Apple Pay you will need to have an iOS or device. +- To test Google Pay you will need to have Chrome installed and a payment method setup. +- To test Microsoft Pay you will need to have Edge installed. +- You will also need to be on a supported country, to better verify your compatibility visit + [this page](https://stripe.com/docs/stripe-js/elements/payment-request-button#react-overview) + You should see if you're on a supported platform or not + +Unsupported: +![](https://i.imgur.com/EpkFrat.png). + +## What to test + +If no payment method is set up: + +- [ ] An error will show up in the frontend, saying that no payment method is available. +- [ ] In the editor, you will be prompted to set up a payment method. + +If you have a payment method available: + +- [ ] You should be able to perform a successful checkout with Check payments. +- [ ] You should be able to perform a successful checkout credit card payment using this cart `4242424242424242` +- [ ] You should be able to perform a failed checkout credit card payment using this cart `4000000000000002` \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/readme.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/readme.md new file mode 100644 index 00000000000..f6fc4a9bfcb --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/readme.md @@ -0,0 +1,89 @@ +# Cart and Checkout testing plan + +- [Introduction](#introduction) + - [Known limitations:](#known-limitations) +- [How to report issues](#how-to-report-issues) +- [What are we testing?](#what-are-we-testing) + - [Cart Block](#cart-block) + - [Checkout Block](#checkout-block) +- [Testing Checklist](#testing-checklist) + - [General Flow.](#general-flow) + - [Editor.](#editor) + - [Shipping.](#shipping) + - [Payments.](#payments) + - [Items.](#items) + - [Taxes.](#taxes) + - [Coupons.](#coupons) + - [Cross Browser and platform.](#cross-browser-and-platform) + +## Introduction + +Welcome, and thank you for helping us test the Cart and Checkout blocks, +in this document, we will outline the general checklist for how to test +the blocks, any requirements, and expectations and feature parity, some +will require simple coding skills, and some are straightforward, we will +separate them. + +### Known limitations: + +This is a list of all known limitation for Cart and Checkout blocks, it means +we're aware of them, and will probably not tackle them in this first release: + +- Cart and Checkout blocks do not support third-party plugins that integrate with + regular Cart and Checkout shortcode, if you somehow see a third party plugin working + well, this is pure coincidence, the only exception is Stripe payment gateway. + +- The only payment gateway supported are Check and Stripe. +- Storefront and TwentyTwenty are expected to work fine, no guarantee is presented on other themes, but do report them if you feel like that's something we can fix on our end. + +. + + + +## How to report issues + +Ideally, we would prefer it if you can submit an issue via [this link](https://github.com/woocommerce/woocommerce-gutenberg-products-block/issues/new?template=---bug-report.md), however, you can also submit issues here in this thread. + +It would be preferable to have a look at this [list of issues](https://github.com/woocommerce/woocommerce-gutenberg-products-block/issues?q=is%3Aissue+label%3A%22type%3A+bug%22+milestone%3A2.6.0+) to see if the issue you're submitting has already been submitted. + +## What are we testing? + +The goal is to test the new Cart and Checkout blocks, they should be replacing +the Cart and Checkout shortcodes. + +### Cart Block + +![](https://i.imgur.com/mcbXgqV.png) + +### Checkout Block + +![](https://i.imgur.com/9KhYK2L.png) + +## Testing Checklist + +### [General Flow](general-flow.md). +### [Editor](editor.md). +### [Shipping](shipping.md). +### [Payments](payment.md). +### [Items](items.md). +### [Taxes](taxes.md). +### [Coupons](coupons.md). +### [Cross Browser and platform](cross-browser.md). + diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/shipping.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/shipping.md new file mode 100644 index 00000000000..62527f66ded --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/shipping.md @@ -0,0 +1,37 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Shipping + +## Setup + +- You will need to setup shipping zones for a couple of countries. +- You will need to have a free shipping method that is enabled with a coupon or a threshold. + + +## What to test + +With shipping zones available: + +- [ ] You should be able to see preview rates (that are not your actual rates) in the editor. +- [ ] You should be able to see your actual rates on the frontend. +- [ ] Selecting a shipping rate should update the totals. +- [ ] Changing the address in Cart block should update the rates. +- [ ] Try entering an address that does not have rates for, you should: + - [ ] See an error saying "No options were found". + - [ ] See the default shipping option if you have it setup. +- [ ] The countries in the shipping rates form should reflect the countries you have in WooCommerce -> Settings -> General -> Shipping location(s). +- [ ] If your cart has only digital products, the Cart and Checkout blocks should act like shipping is disabled. +- [ ] Your free shipping method should show up when you increase the cart quantity to above that limit. + - [ ] Once you decrease it, the shipping rate will disappear, the next rate will be selected. +- [ ] The rate you select in Cart should still be selected in Checkout. +- [ ] Updating your shipping address in Checkout should give you live updates about rates in your cart. + +If you don't have any shipping zones set up and/or shipping is disabled: + +- [ ] You should only see the billing form in both editor and frontend for the Checkout Block. +- [ ] The shipping options step should not be visible. +- [ ] The shipping cost should not be visible in the sidebar. + +If you don't have any shipping zones set up but **shipping is enabled**: + +- [ ] In the editor, Checkout Block will show you a placeholder promoting you to set up shipping zones. \ No newline at end of file diff --git a/plugins/woocommerce-blocks/docs/testing/cart-checkout/taxes.md b/plugins/woocommerce-blocks/docs/testing/cart-checkout/taxes.md new file mode 100644 index 00000000000..00a18f93c69 --- /dev/null +++ b/plugins/woocommerce-blocks/docs/testing/cart-checkout/taxes.md @@ -0,0 +1,18 @@ +[![Create Todo list](https://raw.githubusercontent.com/senadir/todo-my-markdown/master/public/github-button.svg?sanitize=true)](https://git-todo.netlify.app/create) + +# Taxes + +## Setup + +- You will need to have taxes setup for a region. + +## What to test + +With taxes disabled: + +- [ ] You should not see "Taxes" line in the cart or checkout. + +With taxes enabled: + +- [ ] You should see "Taxes" line in the cart or checkout. +- [ ] If the user address or store settings country doesn't have taxes in it, the value will be 0. \ No newline at end of file