/// /// import faker from "faker"; import { SHARED_ELEMENTS } from "../../../../elements/shared/sharedElements"; import { SHIPPING_RATE_DETAILS, } from "../../../../elements/shipping/shipping-rate-details"; import { shippingRateUrl, urlList, } from "../../../../fixtures/urlList"; import { updateChannelWarehouses, } from "../../../../support/api/requests/Channels"; import { createShippingRate as createShippingRateViaApi, createShippingZone, } from "../../../../support/api/requests/ShippingMethod"; import { updateShopWeightUnit, } from "../../../../support/api/requests/ShopSettings"; import { createWarehouse } from "../../../../support/api/requests/Warehouse"; import { getDefaultChannel } from "../../../../support/api/utils/channelsUtils"; import { changeWeightUnit } from "../../../../support/pages/shippingMethodPage"; describe("As a staff user I want to change shop default weight unit", () => { const startsWith = "RecalculateWeight"; const name = `${startsWith}${faker.datatype.number()}`; let defaultChannel; let usAddress; let shippingZone; let warehouse; before(() => { cy.loginUserViaRequest(); updateShopWeightUnit("KG") .then(() => { getDefaultChannel().then(channel => { defaultChannel = channel; cy.fixture("addresses"); }); }) .then(({ usAddress: usAddressResp }) => { usAddress = usAddressResp; createWarehouse({ name, address: usAddress }).then(warehouseResp => { warehouse = warehouseResp; updateChannelWarehouses(defaultChannel.id, warehouse.id); createShippingZone(name, "US", defaultChannel.id, warehouse.id); }); }) .then(shippingZoneResp => { shippingZone = shippingZoneResp; cy.checkIfDataAreNotNull({ defaultChannel, usAddress, shippingZone, warehouse, }); }); }); xit( "should recalculate weight after changing shipping weight unit. TC: SALEOR_0901", { tags: ["@shipping", "@allEnv"] }, () => { // Enable this test after fixing SALEOR-4898 const rateName = `${startsWith}${faker.datatype.number()}`; const minWeightInKg = 1; const maxWeightInKg = 10; const minWeightInG = minWeightInKg * 1000; const maxWeightInG = maxWeightInKg * 1000; let shippingMethod; cy.clearSessionData().loginUserViaRequest(); createShippingRateViaApi({ name: rateName, shippingZone: shippingZone.id, type: "WEIGHT", maxWeight: maxWeightInKg, minWeight: minWeightInKg, }) .then(({ shippingMethod: shippingMethodResp }) => { shippingMethod = shippingMethodResp; cy.visit(urlList.shippingMethods) .get(SHARED_ELEMENTS.progressBar) .should("not.exist"); changeWeightUnit("G"); cy.addAliasToGraphRequest("ShippingZone"); cy.visit(shippingRateUrl(shippingZone.id, shippingMethod.id)) .wait("@ShippingZone") .its("response.body"); }) .then(responseArray => { const shippingMethods = responseArray.data.shippingZone.shippingMethods; const rate = shippingMethods.find( element => element.id === shippingMethod.id, ); cy.waitForProgressBarToNotBeVisible(); expect(rate.minimumOrderWeight.unit).to.eq("G"); cy.get(SHIPPING_RATE_DETAILS.restrictWeightLimitCheckbox) .click() .get(SHIPPING_RATE_DETAILS.minValueInput) .invoke("val"); }) .then(actualMinWeight => { expect(parseInt(actualMinWeight, 10)).to.eq(minWeightInG); cy.get(SHIPPING_RATE_DETAILS.maxValueInput).invoke("val"); }) .then(actualMaxWeight => { expect(parseInt(actualMaxWeight, 10)).to.eq(maxWeightInG); }); }, ); });