saleor-dashboard/cypress/utils/storeFront/storeFrontProductUtils.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

import ProductDetails from "../../apiRequests/storeFront/ProductDetails";
import Search from "../../apiRequests/storeFront/Search";
2021-02-12 14:36:13 +00:00
class StoreFrontProductUtils {
2021-02-24 19:35:37 +00:00
productDetails = new ProductDetails();
2021-02-12 14:36:13 +00:00
isProductVisible(productId, channelSlug, name) {
2021-02-24 19:35:37 +00:00
return this.productDetails
2021-02-12 14:36:13 +00:00
.getProductDetails(productId, channelSlug)
2021-02-19 09:57:25 +00:00
.then(productDetailsResp => {
const product = productDetailsResp.body.data.product;
return product !== null && product.name === name;
});
2021-02-12 14:36:13 +00:00
}
isProductAvailableForPurchase(productId, channelSlug) {
2021-02-24 19:35:37 +00:00
return this.productDetails
2021-02-12 14:36:13 +00:00
.getProductDetails(productId, channelSlug)
2021-02-19 09:57:25 +00:00
.then(
productDetailsResp =>
productDetailsResp.body.data.product.isAvailableForPurchase
2021-02-12 14:36:13 +00:00
);
}
isProductVisibleInSearchResult(productName, channelSlug) {
const search = new Search();
return search
.searchInShop(productName, channelSlug)
2021-02-19 09:57:25 +00:00
.then(
resp =>
resp.body.data.products.totalCount !== 0 &&
resp.body.data.products.edges[0].node.name === productName
);
2021-02-12 14:36:13 +00:00
}
2021-02-24 19:35:37 +00:00
getProductVariants(productId, channelSlug) {
return this.productDetails
.getProductDetails(productId, channelSlug)
.then(resp => resp.body.data.product.variants.edges);
}
2021-02-12 14:36:13 +00:00
}
export default StoreFrontProductUtils;