saleor-dashboard/cypress/integration/configuration/shippingMethods/channelsInShipping.js
Karolina Rakoczy e7a06281f1
fix failing tests (#1302)
* fix failing tests

* no retries

* add waiting for confirmation msg

* remove unused import

* fix test for staff

* fix test for staff

* fix tests for orders

* fix tests for channels

* fix autocomplete

* fix filters

* fix filters

* fix create shipping method
2021-09-10 10:59:46 +02:00

136 lines
4.7 KiB
JavaScript

// <reference types="cypress" />
import faker from "faker";
import { createChannel } from "../../../apiRequests/Channels";
import {
addChannelToShippingMethod,
addChannelToShippingZone
} from "../../../apiRequests/ShippingMethod";
import { ONE_PERMISSION_USERS } from "../../../Data/users";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { SHARED_ELEMENTS } from "../../../elements/shared/sharedElements";
import { SHIPPING_ZONE_DETAILS } from "../../../elements/shipping/shipping-zone-details";
import { enterHomePageChangeChannelAndReturn } from "../../../steps/channelsSteps";
import {
waitForProgressBarToNotBeVisible,
waitForProgressBarToNotExist
} from "../../../steps/shared/progressBar";
import filterTests from "../../../support/filterTests";
import { getCurrencyAndAmountInString } from "../../../support/format/formatCurrencyAmount";
import { urlList } from "../../../url/urlList";
import * as channelsUtils from "../../../utils/channelsUtils";
import * as shippingUtils from "../../../utils/shippingUtils";
filterTests(["all"], () => {
describe("Channels in shippingMethod", () => {
const startsWith = "ChannelShippingMethod";
let defaultChannel;
let plAddress;
before(() => {
cy.clearSessionData().loginUserViaRequest();
shippingUtils.deleteShippingStartsWith(startsWith);
channelsUtils.deleteChannelsStartsWith(startsWith);
channelsUtils
.getDefaultChannel()
.then(channel => {
defaultChannel = channel;
cy.fixture("addresses");
})
.then(addresses => {
plAddress = addresses.plAddress;
});
});
it("should display different price for each channel", () => {
const shippingName = `${startsWith}${faker.datatype.number()}`;
const defaultChannelPrice = 11;
const createdChannelPrice = 7;
const createdChannelCurrency = "PLN";
let shippingMethod;
let shippingZone;
let createdChannel;
cy.clearSessionData().loginUserViaRequest();
createChannel({
name: shippingName,
currencyCode: createdChannelCurrency
})
.then(channel => {
createdChannel = channel;
shippingUtils.createShipping({
channelId: defaultChannel.id,
name: shippingName,
address: plAddress,
price: defaultChannelPrice
});
})
.then(
({
shippingMethod: shippingMethodResp,
shippingZone: shippingZoneResp
}) => {
shippingZone = shippingZoneResp;
shippingMethod = shippingMethodResp;
addChannelToShippingZone(shippingZone.id, createdChannel.id).then(
() => {
addChannelToShippingMethod(
shippingMethod.id,
createdChannel.id,
createdChannelPrice
);
}
);
}
)
.then(() => {
cy.clearSessionData()
.loginUserViaRequest("auth", ONE_PERMISSION_USERS.shipping)
.visit(urlList.shippingMethods)
.get(SHARED_ELEMENTS.header)
.should("be.visible");
waitForProgressBarToNotExist();
cy.addAliasToGraphRequest("ShippingZone");
cy.getTextFromElement(SHARED_ELEMENTS.table);
})
.then(tableText => {
if (!tableText.includes(shippingZone.name)) {
cy.get(BUTTON_SELECTORS.nextPaginationButton).click();
}
cy.contains(shippingZone.name).click();
cy.wait("@ShippingZone");
enterHomePageChangeChannelAndReturn(defaultChannel.name);
waitForProgressBarToNotBeVisible();
cy.get(SHARED_ELEMENTS.skeleton).should("not.exist");
cy.getTextFromElement(
SHIPPING_ZONE_DETAILS.shippingRatePriceTableCell
)
.then(text => {
const expectedValue = getCurrencyAndAmountInString(
defaultChannelPrice,
defaultChannel.currencyCode
);
expect(text).to.be.eq(expectedValue);
enterHomePageChangeChannelAndReturn(createdChannel.name);
waitForProgressBarToNotBeVisible();
cy.get(SHARED_ELEMENTS.skeleton).should("not.exist");
})
.then(() => {
cy.getTextFromElement(
SHIPPING_ZONE_DETAILS.shippingRatePriceTableCell
);
})
.then(text => {
const expectedValue = getCurrencyAndAmountInString(
createdChannelPrice,
createdChannelCurrency
);
expect(text).to.be.eq(expectedValue);
});
});
});
});
});