saleor-dashboard/cypress/integration/configuration/shippingMethods/shippingWeights/weightRecalculate.js
Karolina Rakoczy 2c64a966cc
Saleor 4437 refactor tests (#1389)
* reference type cypress working

* refactor

* remove screenshots

* add reference

* add slash marker

* run tests based on shop version

* fix run tests based on shop version

* fix run tests based on shop version

* change base url to localhost

* fix plugins

* fix plugins

* fix plugins

* fix plugins

* fix plugins

* fix plugins

* fix yml

* fix yml

* chage file names

* fix files names

* fix broken imports add checking for errors in grpah responses

* fix broken imports add checking for errors in grpah responses

* update jest

* fix snapshot
2021-09-27 12:04:21 +02:00

100 lines
3.7 KiB
JavaScript

/// <reference types="cypress"/>
/// <reference types="../../../../support"/>
import faker from "faker";
import { SHARED_ELEMENTS } from "../../../../elements/shared/sharedElements";
import { SHIPPING_RATE_DETAILS } from "../../../../elements/shipping/shipping-rate-details";
import { urlList, weightRateUrl } from "../../../../fixtures/urlList";
import {
createShippingRate as createShippingRateViaApi,
createShippingZone
} from "../../../../support/api/requests/ShippingMethod";
import { updateShopWeightUnit } from "../../../../support/api/requests/ShopSettings";
import { getDefaultChannel } from "../../../../support/api/utils/channelsUtils";
import { deleteProductsStartsWith } from "../../../../support/api/utils/products/productsUtils";
import { deleteShippingStartsWith } from "../../../../support/api/utils/shippingUtils";
import filterTests from "../../../../support/filterTests";
import { changeWeightUnit } from "../../../../support/pages/shippingMethodPage";
filterTests({ definedTags: ["all"] }, () => {
describe("Recalculate weights", () => {
const startsWith = "RecalculateWeight";
const name = `${startsWith}${faker.datatype.number()}`;
let defaultChannel;
let usAddress;
let shippingZone;
before(() => {
cy.clearSessionData().loginUserViaRequest();
deleteShippingStartsWith(startsWith);
deleteProductsStartsWith(startsWith);
updateShopWeightUnit("KG")
.then(() => {
getDefaultChannel().then(channel => {
defaultChannel = channel;
cy.fixture("addresses");
});
})
.then(({ usAddress: usAddressResp }) => {
usAddress = usAddressResp;
createShippingZone(name, "US", defaultChannel.id);
})
.then(shippingZoneResp => {
shippingZone = shippingZoneResp;
});
});
// Log in as user with shipping permissions after resolving SALEOR-3407 bug
it("should recalculate weight after changing shipping weight unit", () => {
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(weightRateUrl(shippingZone.id, shippingMethod.id))
.wait("@ShippingZone")
.its("response.body");
})
.then(responseArray => {
const shippingMethods = responseArray.find(
element => element.data.shippingZone
).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.minWeightInput).invoke("val");
})
.then(actualMinWeight => {
expect(parseInt(actualMinWeight, 10)).to.eq(minWeightInG);
cy.get(SHIPPING_RATE_DETAILS.maxWeightInput).invoke("val");
})
.then(actualMaxWeight => {
expect(parseInt(actualMaxWeight, 10)).to.eq(maxWeightInG);
});
});
});
});