Use category ID instead of category name
This commit is contained in:
parent
ec5ab7cdb5
commit
5ba261950c
|
@ -5,6 +5,7 @@
|
||||||
- `utils.waitForTimeout( delay )` pause processing for `delay` milliseconds
|
- `utils.waitForTimeout( delay )` pause processing for `delay` milliseconds
|
||||||
- `AdminEdit` class with utility functions for the respective edit screens
|
- `AdminEdit` class with utility functions for the respective edit screens
|
||||||
- Update `shopper.addToCartFromShopPage()` and `.removeFromCart()` to accept product Id or Title
|
- Update `shopper.addToCartFromShopPage()` and `.removeFromCart()` to accept product Id or Title
|
||||||
|
- Added `withRestApi.createProductCategory()` that creates a product category and returns the ID
|
||||||
|
|
||||||
# 0.1.6
|
# 0.1.6
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,8 @@ This package provides support for enabling retries in tests:
|
||||||
| `deleteAllOrders` | | Permanently delete all orders |
|
| `deleteAllOrders` | | Permanently delete all orders |
|
||||||
| `updateSettingOption` | `settingsGroup`, `settingID`, `payload` | Update a settings group |
|
| `updateSettingOption` | `settingsGroup`, `settingID`, `payload` | Update a settings group |
|
||||||
| `updatePaymentGateway`| `paymentGatewayId`, `payload` | Update a payment gateway |
|
| `updatePaymentGateway`| `paymentGatewayId`, `payload` | Update a payment gateway |
|
||||||
| `getSystemEnvironment` | | Get the current environment from the WooCommerce system status API.
|
| `getSystemEnvironment` | | Get the current environment from the WooCommerce system status API. |
|
||||||
|
| `createProductCategory` | `categoryName` | Create a product category with the provided name. |
|
||||||
|
|
||||||
### Classes
|
### Classes
|
||||||
|
|
||||||
|
|
|
@ -208,12 +208,15 @@ const createSimpleProduct = async ( productTitle = simpleProductName, productPri
|
||||||
* @param categoryName Product's category which can be changed when writing a test
|
* @param categoryName Product's category which can be changed when writing a test
|
||||||
*/
|
*/
|
||||||
const createSimpleProductWithCategory = async ( productName, productPrice, categoryName ) => {
|
const createSimpleProductWithCategory = async ( productName, productPrice, categoryName ) => {
|
||||||
|
// Get the category ID so we can add it to the product below
|
||||||
|
const categoryId = await withRestApi.createProductCategory( categoryName );
|
||||||
|
|
||||||
const product = await factories.products.simple.create( {
|
const product = await factories.products.simple.create( {
|
||||||
name: productName,
|
name: productName,
|
||||||
regularPrice: productPrice,
|
regularPrice: productPrice,
|
||||||
categories: [
|
categories: [
|
||||||
{
|
{
|
||||||
name: categoryName,
|
id: categoryId,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
isVirtual: true,
|
isVirtual: true,
|
||||||
|
|
|
@ -300,5 +300,35 @@ export const withRestApi = {
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
/**
|
||||||
|
* Create a product category and return the ID. If the category already exists, the ID of the existing category is returned.
|
||||||
|
*
|
||||||
|
* @param {String} categoryName The name of the category to create
|
||||||
|
* @returns {Promise<Number>} The ID of the category.
|
||||||
|
*/
|
||||||
|
createProductCategory: async ( categoryName ) => {
|
||||||
|
const payload = { name: categoryName };
|
||||||
|
let categoryId;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await client.post( productCategoriesEndpoint, payload );
|
||||||
|
expect( response.status ).toEqual( 201 );
|
||||||
|
categoryId = response.data.id;
|
||||||
|
} catch ( err ) {
|
||||||
|
if ( err.response.status === 400 && err.response.data.code === 'term_exists' ) {
|
||||||
|
// Get the list of categories and pull ID to return
|
||||||
|
const categoryList = await client.get( productCategoriesEndpoint );
|
||||||
|
expect( categoryList.status ).toEqual( 200 );
|
||||||
|
if ( categoryList.data && categoryList.data.length ) {
|
||||||
|
for ( let c = 0; c < categoryList.data.length; c++ ) {
|
||||||
|
if ( categoryList.data[c].name === categoryName ) {
|
||||||
|
categoryId = categoryList.data[c].id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return categoryId;
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue