diff --git a/cypress/apiRequests/Attribute.js b/cypress/apiRequests/Attribute.js index c97375874..97a86871d 100644 --- a/cypress/apiRequests/Attribute.js +++ b/cypress/apiRequests/Attribute.js @@ -9,6 +9,8 @@ class Attribute { }){ attribute{ id + name + values{name} } attributeErrors{ field diff --git a/cypress/apiRequests/storeFront/ProductDetails.js b/cypress/apiRequests/storeFront/ProductDetails.js index 9ad18c5fc..df84337c9 100644 --- a/cypress/apiRequests/storeFront/ProductDetails.js +++ b/cypress/apiRequests/storeFront/ProductDetails.js @@ -4,9 +4,31 @@ class ProductDetails { id name } + + fragment Price on TaxedMoney { + gross { + amount + currency + } + } + + fragment ProductVariantFields on ProductVariant { + id + sku + name + pricing { + price { + ...Price + } + } + } + query ProductDetails{ product(id: "${productId}", channel: "${channelId}") { ...BasicProductFields + variants { + ...ProductVariantFields + } isAvailable isAvailableForPurchase availableForPurchase diff --git a/cypress/integration/products/productsVariants.js b/cypress/integration/products/productsVariants.js index f6f024f51..743f07bf2 100644 --- a/cypress/integration/products/productsVariants.js +++ b/cypress/integration/products/productsVariants.js @@ -77,7 +77,12 @@ describe("creating variants", () => { channelId: defaultChannel.id }); cy.visit(`${urlList.products}${createdProduct.id}`); - variantsSteps.createFirstVariant(name, warehouse.id, price); + variantsSteps.createFirstVariant({ + sku: name, + warehouseId: warehouse.id, + price, + attribute: attribute.values[0].name + }); storeFrontProductUtils.getProductVariants( createdProduct.id, defaultChannel.slug @@ -87,7 +92,7 @@ describe("creating variants", () => { }) .then(variants => { // expect(productDetailsResp.body[0].data.product.name).to.equal(name); - expect(variants[0].name).to.equal(name); + expect(variants[0].name).to.equal(attribute.values[0]); expect(variants[0].pricing.price.gross.amount).to.equal(price); // expect( // productDetailsResp.body[0].data.product.variants[0].pricing.price diff --git a/cypress/steps/products/VariantsSteps.js b/cypress/steps/products/VariantsSteps.js index 7a71c657b..dde450b2a 100644 --- a/cypress/steps/products/VariantsSteps.js +++ b/cypress/steps/products/VariantsSteps.js @@ -1,11 +1,9 @@ import { PRODUCTS_SELECTORS } from "../../elements/catalog/product-selectors"; import { VARIANTS_SELECTORS } from "../../elements/catalog/variants-selectors"; class VariantsSteps { - createFirstVariant(sku, warehouseId, price) { - cy.get(PRODUCTS_SELECTORS.addVariantsButton) - .click() - .get(VARIANTS_SELECTORS.attributeCheckbox) - .first() + createFirstVariant({ sku, warehouseId, price, attribute }) { + cy.get(PRODUCTS_SELECTORS.addVariantsButton).click(); + cy.get(`${VARIANTS_SELECTORS.attributeCheckbox}`) .click() .get(VARIANTS_SELECTORS.nextButton) .click(); diff --git a/cypress/utils/storeFront/storeFrontProductUtils.js b/cypress/utils/storeFront/storeFrontProductUtils.js index 3e1935926..deedb3bf7 100644 --- a/cypress/utils/storeFront/storeFrontProductUtils.js +++ b/cypress/utils/storeFront/storeFrontProductUtils.js @@ -33,7 +33,7 @@ class StoreFrontProductUtils { getProductVariants(productId, channelSlug) { return this.productDetails .getProductDetails(productId, channelSlug) - .then(resp => resp.body.data.product.variants.edges); + .then(resp => resp.body.data.product.variants); } } export default StoreFrontProductUtils;