diff --git a/cypress/elements/shipping/shipping-zone-details.js b/cypress/elements/shipping/shipping-zone-details.js index b5af07776..ce516a2e2 100644 --- a/cypress/elements/shipping/shipping-zone-details.js +++ b/cypress/elements/shipping/shipping-zone-details.js @@ -11,5 +11,6 @@ export const SHIPPING_ZONE_DETAILS = { "[data-test-id='multiautocomplete-select-content']", option: "[data-test='multiautocomplete-select-option']", warehouseSelector: "[placeholder*='Warehouse']", - channelSelector: "[placeholder*='Channel']" + channelSelector: "[placeholder*='Channel']", + removeWarehouseButton: "[data-test-id='warehousesRemove']" }; diff --git a/cypress/integration/configuration/warehouses/warehouse.js b/cypress/integration/configuration/warehouses/warehouse.js index dcf035ac5..fd087a98a 100644 --- a/cypress/integration/configuration/warehouses/warehouse.js +++ b/cypress/integration/configuration/warehouses/warehouse.js @@ -25,12 +25,14 @@ filterTests({ definedTags: ["all"] }, () => { describe("Warehouse settings", () => { const startsWith = "CyWarehouse"; let usAddress; + let secondUsAddress; before(() => { cy.clearSessionData().loginUserViaRequest(); deleteShippingStartsWith(startsWith); cy.fixture("addresses").then(addresses => { usAddress = addresses.usAddress; + secondUsAddress = addresses.secondUsAddress; }); }); @@ -115,5 +117,68 @@ filterTests({ definedTags: ["all"] }, () => { getWarehouse(warehouse.id).should("be.null"); }); }); + + it("should remove warehouse from shipping zone", () => { + const name = `${startsWith}${faker.datatype.number()}`; + let defaultChannel; + let warehouse; + let shippingZone; + + getDefaultChannel() + .then(channelResp => { + defaultChannel = channelResp; + createShippingZone(name, "US", defaultChannel.id); + }) + .then(shippingZoneResp => { + shippingZone = shippingZoneResp; + createWarehouseViaApi({ + name, + shippingZone: shippingZone.id, + address: usAddress + }); + }) + .then(warehouseResp => { + warehouse = warehouseResp; + cy.visit(shippingZoneDetailsUrl(shippingZone.id)) + .get(SHIPPING_ZONE_DETAILS.removeWarehouseButton) + .click() + .addAliasToGraphRequest("UpdateShippingZone") + .get(BUTTON_SELECTORS.confirm) + .click() + .waitForRequestAndCheckIfNoErrors("@UpdateShippingZone"); + getWarehouse(warehouse.id); + }) + .then(warehouseResp => { + expect(warehouseResp.shippingZones.edges).to.be.empty; + }); + }); + + it("should update warehouse", () => { + const name = `${startsWith}${faker.datatype.number()}`; + const updatedName = `${startsWith}${faker.datatype.number()}`; + let warehouse; + + createWarehouseViaApi({ + name, + address: usAddress + }) + .then(warehouseResp => { + warehouse = warehouseResp; + cy.visit(warehouseDetailsUrl(warehouse.id)) + .get(WAREHOUSES_DETAILS.nameInput) + .clearAndType(updatedName) + .fillUpBasicAddress(secondUsAddress) + .addAliasToGraphRequest("WarehouseUpdate") + .get(BUTTON_SELECTORS.confirm) + .click() + .waitForRequestAndCheckIfNoErrors("@WarehouseUpdate"); + getWarehouse(warehouse.id); + }) + .then(warehouseResp => { + const addressResp = warehouseResp.address; + chai.softExpect(warehouseResp.name).to.be.eq(updatedName); + cy.expectCorrectBasicAddress(addressResp, secondUsAddress); + }); + }); }); });