99 lines
3.9 KiB
Markdown
99 lines
3.9 KiB
Markdown
# WooCommerce End to End Test Utilities
|
|
|
|
This package contains utilities to simplify writing e2e tests specific to WooCommmerce.
|
|
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install @woocommerce/e2e-utils --save
|
|
```
|
|
|
|
## Usage
|
|
|
|
Example:
|
|
~~~js
|
|
import {
|
|
CustomerFlow,
|
|
StoreOwnerFlow,
|
|
createSimpleProduct,
|
|
uiUnblocked
|
|
} from '@woocommerce/e2e-utils';
|
|
|
|
describe( 'Cart page', () => {
|
|
beforeAll( async () => {
|
|
await StoreOwnerFlow.login();
|
|
await createSimpleProduct();
|
|
await StoreOwnerFlow.logout();
|
|
} );
|
|
|
|
it( 'should display no item in the cart', async () => {
|
|
await CustomerFlow.goToCart();
|
|
await expect( page ).toMatchElement( '.cart-empty', { text: 'Your cart is currently empty.' } );
|
|
} );
|
|
} );
|
|
~~~
|
|
|
|
## Test Function
|
|
|
|
### Merchant `StoreOwnerFlow`
|
|
|
|
| Function | Description |
|
|
|----------|-------------|
|
|
| `login` | Log in as merchant |
|
|
| `logout` | log out of merchant account |
|
|
| `openAllOrdersView` | Go to the orders listing |
|
|
| `openDashboard` | Go to the WordPress dashboard |
|
|
| `openNewCoupon` | Go to the new coupon editor |
|
|
| `openNewOrder` | Go to the new order editor |
|
|
| `openNewProduct` | Go to the new product editor |
|
|
| `openPermalinkSettings` | Go to Settings -> Permalinks |
|
|
| `openPlugins` | Go to the Plugins screen |
|
|
| `openSettings` | Go to WooCommerce -> Settings |
|
|
| `runSetupWizard` | Open the onboarding profiler |
|
|
|----------|-------------|
|
|
|
|
### Shopper `CustomerFlow`
|
|
|
|
| Function | Parameters | Description |
|
|
|----------|------------|-------------|
|
|
| `addToCart` | | Add an item to the cart from a single product page |
|
|
| `addToCartFromShopPage` | `productTitle` | Add an item to the cart from a single product page |
|
|
| `fillBillingDetails` | `customerBillingDetails` | Fill billing fields in checkout form using configured address |
|
|
| `fillShippingDetails` | `customerShippingDetails` | Fill shipping fields in checkout form using configured address |
|
|
| `goToAddresses` | | Go to My Account -> Address Details |
|
|
| `goToAccountDetails` | | Go to My Account -> Details |
|
|
| `goToCart` | | Go to the cart page |
|
|
| `goToCheckout` | | Go to the checkout page |
|
|
| `goToShop` | | Go to the shop page |
|
|
| `goToProduct` | `productId` | Go to a single product in the shop |
|
|
| `goToOrders` | | Go to My Account -> Orders |
|
|
| `goToDownloads` | | Go to My Account -> Downloads |
|
|
| `login` | | Log in as the shopper |
|
|
| `placeOrder` | | Place an order from the checkout page |
|
|
| `productIsInCheckout` | `productTitle, quantity, total, cartSubtotal` | Verify product is in cart on checkout page |
|
|
| `removeFromCart` | `productTitle` | Remove a product from the cart on the cart page |
|
|
| `setCartQuantity` | `productTitle, quantityValue` | Change the quantity of a product on the cart page |
|
|
|----------|------------|-------------|
|
|
|
|
### Page Utilities
|
|
|
|
| Function | Parameters | Description |
|
|
|----------|------------|-------------|
|
|
| `clearAndFillInput` | `selector, value` | Replace the contents of an input with the passed value |
|
|
| `clickTab` | `tabName` | Click on a WooCommerce -> Settings tab |
|
|
| `settingsPageSaveChanges` | | Save the current WooCommerce settings page |
|
|
| `permalinkSettingsPageSaveChanges` | | Save the current Permalink settings |
|
|
| `setCheckbox` | `selector` | Check a checkbox |
|
|
| `unsetCheckbox` | `selector` | Uncheck a checkbox |
|
|
| `uiUnblocked` | | Wait until the page is unblocked |
|
|
| `verifyPublishAndTrash` | `button, publishNotice, publishVerification, trashVerification` | Verify that an item can be published and trashed |
|
|
| `verifyCheckboxIsSet` | `selector` | Verify that a checkbox is checked |
|
|
| `verifyCheckboxIsUnset` | `selector` | Verify that a checkbox is unchecked |
|
|
| `verifyValueOfInputField` | `selector, value` | Verify an input contains the passed value |
|
|
|----------|------------|-------------|
|
|
|
|
### Test Utilities
|
|
|
|
As of version 0.1.2, all test utilities from [`@wordpress/e2e-test-utils`](https://www.npmjs.com/package/@wordpress/e2e-test-utils) are available through this package.
|