We generally consider smoke testing using this definition [from Wikipedia](https://href.li/?https://en.wikipedia.org/wiki/Smoke_testing_(software)):
> **Smoke Testing** is a subset of test cases that cover the most important functionality of a component or system, used to aid assessment of whether the main functions of the software appear to work correctly. It is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team
When testing builds the following things should be tested to ensure critical parts of the Blocks plugin are still functional.
## Setup
To make future testing more efficient, we recommend setting up some Blocks in advance so you can repeat tests on them whenever smoke testing.
### 1. Create a page with all regular and SSR blocks (such as the product grids) setup and configured.
<details>
<summary>You can copy and paste the following code into a new page to add all the blocks (click):</summary>
### 2. Create a page with the All Products Block, and some Filter Blocks, setup to test that functionality in isolation. Using the columns block here too is a good idea to keep things organized.
<details>
<summary>You can copy and paste the following code into a new page to add all the blocks (click):</summary>
<divclass="wp-block-woocommerce-price-filter is-loading"data-showinputfields="true"data-showfilterbutton="false"data-heading="Filter by price"data-heading-level="3"><spanaria-hidden="true"class="wc-block-product-categories__placeholder"></span></div>
<!-- /wp:woocommerce/price-filter -->
<!-- wp:woocommerce/attribute-filter {"attributeId":1,"heading":"Filter by Color","displayStyle":"dropdown"} -->
<divclass="wp-block-woocommerce-attribute-filter is-loading"data-attribute-id="1"data-show-counts="true"data-query-type="or"data-heading="Filter by Color"data-heading-level="3"data-display-style="dropdown"><spanaria-hidden="true"class="wc-block-product-attribute-filter__placeholder"></span></div>
<!-- /wp:woocommerce/attribute-filter -->
<!-- wp:woocommerce/attribute-filter {"attributeId":2,"heading":"Filter by Size"} -->
<divclass="wp-block-woocommerce-attribute-filter is-loading"data-attribute-id="2"data-show-counts="true"data-query-type="or"data-heading="Filter by Size"data-heading-level="3"><spanaria-hidden="true"class="wc-block-product-attribute-filter__placeholder"></span></div>
### 3. Add the Cart and Checkout block to the relevant WooCommerce pages.
## Editor Tests
* [ ] Ensure all WooCommerce Blocks are shown in the Block Inserter.
* [ ] Check behaviour of Blocks added to a previous saved page from earlier plugin version
* [ ] Do they look correct?
* [ ] Ensure there are no block invalidation errors for blocks added to a page in a prior version.
* [ ] Can you change options/attributes in the Block inspector?
* [ ] Are changes persisted on save?
* [ ] Is the Browser error console free from errors/notices/warnings?
* [ ] Test inserting various blocks into the editor
* [ ] This can be verified by copying and pasting the code examples above. However, please do also test manually inserting the next three blocks as representative examples for related blocks.
* [ ] All Products Blocks (this is powered by the Store API)
* [ ] Featured Product (this is powered by the REST API)
* [ ] On Sale Products (this is SSR)
* [ ] Is the Browser error console free from errors/notices/warnings after inserting them?
* [ ] Do they persist and continue to display correctly after save/refresh?
## Frontend Tests
* [ ] Do the blocks on your pre-made pages render correctly?
* [ ] Are the blocks with user facing interactions working as expected without errors in the browser console or user facing errors (such as All Products block and filter blocks).
* [ ] Do critical flows for the Cart and Checkout blocks work?