diff --git a/cypress/integration/products/menageProducts/availableForPurchaseProducts.js b/cypress/integration/products/menageProducts/availableForPurchaseProducts.js index 9c4a3c468..39413c295 100644 --- a/cypress/integration/products/menageProducts/availableForPurchaseProducts.js +++ b/cypress/integration/products/menageProducts/availableForPurchaseProducts.js @@ -5,7 +5,7 @@ import { productDetailsUrl } from "../../../url/urlList"; import ChannelsUtils from "../../../utils/channelsUtils"; import ProductsUtils from "../../../utils/productsUtils"; import ShippingUtils from "../../../utils/shippingUtils"; -import StoreFrontProductUtils from "../../../utils/storeFront/storeFrontProductUtils"; +import { isProductAvailableForPurchase } from "../../../utils/storeFront/storeFrontProductUtils"; // describe("Products available in listings", () => { @@ -13,7 +13,6 @@ describe("Products available in listings", () => { const channelsUtils = new ChannelsUtils(); const productsUtils = new ProductsUtils(); const productSteps = new ProductSteps(); - const frontShopProductUtils = new StoreFrontProductUtils(); const startsWith = "Cy-"; const name = `${startsWith}${faker.random.number()}`; let productType; @@ -74,14 +73,14 @@ describe("Products available in listings", () => { productSteps.updateProductIsAvailableForPurchase(productUrl, true); }) .then(() => { - frontShopProductUtils.isProductAvailableForPurchase( + isProductAvailableForPurchase( productsUtils.getCreatedProduct().id, defaultChannel.slug, productName ); }) - .then(isProductVisible => { - expect(isProductVisible).to.be.eq(true); + .then(isVisibleResp => { + expect(isVisibleResp).to.be.eq(true); }); }); it("should update product to not available for purchase", () => { @@ -102,7 +101,7 @@ describe("Products available in listings", () => { productSteps.updateProductIsAvailableForPurchase(productUrl, false); }) .then(() => { - frontShopProductUtils.isProductAvailableForPurchase( + isProductAvailableForPurchase( productsUtils.getCreatedProduct().id, defaultChannel.slug, productName diff --git a/cypress/integration/products/menageProducts/publishedProducts.js b/cypress/integration/products/menageProducts/publishedProducts.js index 48015293f..974f5756d 100644 --- a/cypress/integration/products/menageProducts/publishedProducts.js +++ b/cypress/integration/products/menageProducts/publishedProducts.js @@ -4,14 +4,13 @@ import ProductSteps from "../../../steps/productSteps"; import { productDetailsUrl } from "../../../url/urlList"; import ChannelsUtils from "../../../utils/channelsUtils"; import ProductsUtils from "../../../utils/productsUtils"; -import StoreFrontProductUtils from "../../../utils/storeFront/storeFrontProductUtils"; +import { isProductVisible } from "../../../utils/storeFront/storeFrontProductUtils"; // describe("Published products", () => { const channelsUtils = new ChannelsUtils(); const productsUtils = new ProductsUtils(); const productSteps = new ProductSteps(); - const frontShopProductUtils = new StoreFrontProductUtils(); const startsWith = "Cy-"; const name = `${startsWith}${faker.random.number()}`; @@ -53,11 +52,7 @@ describe("Published products", () => { const product = productsUtils.getCreatedProduct(); const productUrl = productDetailsUrl(product.id); productSteps.updateProductPublish(productUrl, true); - frontShopProductUtils.isProductVisible( - product.id, - defaultChannel.slug, - productName - ); + isProductVisible(product.id, defaultChannel.slug, productName); }) .then(isVisible => { expect(isVisible).to.be.eq(true); @@ -84,22 +79,14 @@ describe("Published products", () => { product = productsUtils.getCreatedProduct(); const productUrl = productDetailsUrl(product.id); productSteps.updateProductPublish(productUrl, false); - frontShopProductUtils.isProductVisible( - product.id, - defaultChannel.slug, - productName - ); + isProductVisible(product.id, defaultChannel.slug, productName); }) .then(isVisible => { expect(isVisible).to.be.eq(false); cy.loginInShop(); }) .then(() => { - frontShopProductUtils.isProductVisible( - product.id, - defaultChannel.slug, - productName - ); + isProductVisible(product.id, defaultChannel.slug, productName); }) .then(isVisible => { expect(isVisible).to.be.eq(true); diff --git a/cypress/integration/products/menageProducts/visibleInListingsProducts.js b/cypress/integration/products/menageProducts/visibleInListingsProducts.js index 19463c5ce..b41dc2df9 100644 --- a/cypress/integration/products/menageProducts/visibleInListingsProducts.js +++ b/cypress/integration/products/menageProducts/visibleInListingsProducts.js @@ -4,14 +4,13 @@ import ProductSteps from "../../../steps/productSteps"; import { productDetailsUrl } from "../../../url/urlList"; import ChannelsUtils from "../../../utils/channelsUtils"; import ProductsUtils from "../../../utils/productsUtils"; -import StoreFrontProductUtils from "../../../utils/storeFront/storeFrontProductUtils"; +import { isProductVisibleInSearchResult } from "../../../utils/storeFront/storeFrontProductUtils"; // describe("Products displayed in listings", () => { const channelsUtils = new ChannelsUtils(); const productsUtils = new ProductsUtils(); const productSteps = new ProductSteps(); - const frontShopProductUtils = new StoreFrontProductUtils(); const startsWith = "Cy-"; const name = `${startsWith}${faker.random.number()}`; @@ -53,10 +52,7 @@ describe("Products displayed in listings", () => { const product = productsUtils.getCreatedProduct(); const productUrl = productDetailsUrl(product.id); productSteps.updateProductVisibleInListings(productUrl); - frontShopProductUtils.isProductVisibleInSearchResult( - productName, - defaultChannel.slug - ); + isProductVisibleInSearchResult(productName, defaultChannel.slug); }) .then(isProductVisible => { expect(isProductVisible).to.be.eq(true); @@ -82,18 +78,15 @@ describe("Products displayed in listings", () => { const product = productsUtils.getCreatedProduct(); const productUrl = productDetailsUrl(product.id); productSteps.updateProductVisibleInListings(productUrl); - frontShopProductUtils - .isProductVisibleInSearchResult(productName, defaultChannel.slug) - .then(isProductVisible => { + isProductVisibleInSearchResult(productName, defaultChannel.slug).then( + isProductVisible => { expect(isProductVisible).to.be.eq(false); - }); + } + ); cy.loginInShop(); }) .then(() => { - frontShopProductUtils.isProductVisibleInSearchResult( - productName, - defaultChannel.slug - ); + isProductVisibleInSearchResult(productName, defaultChannel.slug); }) .then(isProductVisible => { expect(isProductVisible).to.be.eq(true); diff --git a/cypress/utils/storeFront/storeFrontProductUtils.js b/cypress/utils/storeFront/storeFrontProductUtils.js index 676075f19..854c3f79a 100644 --- a/cypress/utils/storeFront/storeFrontProductUtils.js +++ b/cypress/utils/storeFront/storeFrontProductUtils.js @@ -1,34 +1,32 @@ import ProductDetails from "../../apiRequests/storeFront/ProductDetails"; import Search from "../../apiRequests/storeFront/Search"; -class StoreFrontProductUtils { - isProductVisible(productId, channelSlug, name) { - const productDetails = new ProductDetails(); - return productDetails - .getProductDetails(productId, channelSlug) - .then(productDetailsResp => { - const product = productDetailsResp.body.data.product; - return product !== null && product.name === name; - }); - } - isProductAvailableForPurchase(productId, channelSlug) { - const productDetails = new ProductDetails(); - return 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 - ); - } -} -export default StoreFrontProductUtils; +export const isProductVisible = (productId, channelSlug, name) => { + const productDetails = new ProductDetails(); + return productDetails + .getProductDetails(productId, channelSlug) + .then(productDetailsResp => { + const product = productDetailsResp.body.data.product; + return product !== null && product.name === name; + }); +}; + +export const isProductAvailableForPurchase = (productId, channelSlug) => { + const productDetails = new ProductDetails(); + return productDetails + .getProductDetails(productId, channelSlug) + .then( + productDetailsResp => + productDetailsResp.body.data.product.isAvailableForPurchase + ); +}; +export const 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 + ); +};