saleor-dashboard/cypress/utils/storeFront/storeFrontProductUtils.js
2021-02-25 10:51:52 +01:00

39 lines
1.3 KiB
JavaScript

import ProductDetails from "../../apiRequests/storeFront/ProductDetails";
import Search from "../../apiRequests/storeFront/Search";
class StoreFrontProductUtils {
productDetails = new ProductDetails();
isProductVisible(productId, channelSlug, name) {
return this.productDetails
.getProductDetails(productId, channelSlug)
.then(productDetailsResp => {
const product = productDetailsResp.body.data.product;
return product !== null && product.name === name;
});
}
isProductAvailableForPurchase(productId, channelSlug) {
return this.productDetails
.getProductDetails(productId, channelSlug)
.then(
productDetailsResp =>
productDetailsResp.body.data.product.isAvailableForPurchase
);
}
isProductVisibleInSearchResult(productName, channelSlug) {
const search = new Search();
return search
.searchInShop(productName, channelSlug)
.then(
resp =>
resp.body.data.products.totalCount !== 0 &&
resp.body.data.products.edges[0].node.name === productName
);
}
getProductVariants(productId, channelSlug) {
return this.productDetails
.getProductDetails(productId, channelSlug)
.then(resp => resp.body.data.product.variants);
}
}
export default StoreFrontProductUtils;