* 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
This commit is contained in:
Seghir Nadir 2020-04-20 14:47:11 +01:00 committed by GitHub
parent 2e9b21ef8a
commit 3a71233d4b
9 changed files with 276 additions and 0 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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`

View File

@ -0,0 +1,89 @@
# Cart and Checkout testing plan <!-- omit in toc -->
- [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:
<!-- Debating on where to put this section -->
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.
<!-- Currently this is unneeded so I'm omitting this section -->.
<!--
## Before you start <!-- omit in toc -->
<!--
Depending on how far you will test, there are certain requirements, in general
you will need the following:
Basic:
- A WordPress website running WooCommerce and the ability to install a plugin and edit pages.
Intermediate:
- A code editor and/or the ability to modify plugin PHP files.
This could be either locally if you're hosting the code there or it could from the Plugins -> Plugin Editor
WordPress admin page.
Advanced:
- A locally installed version of WordPress.
- [Node 12.16.1 and npm 6.14.4 installed](https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/master/package.json#L149-L150).
- Ability to edit JS source files when needed.
-->
## 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).

View File

@ -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.

View File

@ -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.