diff --git a/cypress/e2e/configuration/siteSettings.js b/cypress/e2e/configuration/siteSettings.js
index 638aab0f1..2aea7b4fc 100644
--- a/cypress/e2e/configuration/siteSettings.js
+++ b/cypress/e2e/configuration/siteSettings.js
@@ -1,8 +1,6 @@
///
///
-import faker from "faker";
-
import { BUTTON_SELECTORS } from "../../elements/shared/button-selectors";
import { urlList } from "../../fixtures/urlList";
import {
@@ -10,7 +8,7 @@ import {
updateShopAddress,
} from "../../support/api/requests/ShopSettings";
-xdescribe("Tests for site settings", () => {
+describe("Tests for site settings", () => {
let address;
before(() => {
@@ -24,7 +22,7 @@ xdescribe("Tests for site settings", () => {
it(
"should change store address",
- { tags: ["@siteSettings", "@allEnv"] },
+ { tags: ["@siteSettings", "@allEnv", "@stable"] },
() => {
cy.clearSessionData()
.loginUserViaRequest()
diff --git a/cypress/e2e/discounts/vouchers/createVouchers.js b/cypress/e2e/discounts/vouchers/createVouchers.js
index e129a3c10..a1ddd05ef 100644
--- a/cypress/e2e/discounts/vouchers/createVouchers.js
+++ b/cypress/e2e/discounts/vouchers/createVouchers.js
@@ -13,7 +13,6 @@ import {
createCheckoutWithVoucher,
} from "../../../support/api/utils/ordersUtils";
import * as productsUtils from "../../../support/api/utils/products/productsUtils";
-import filterTests from "../../../support/filterTests";
import {
createVoucher,
discountOptions,
@@ -24,19 +23,17 @@ describe("As an admin I want to create voucher", () => {
const startsWith = "CyVou-";
const productPrice = 100;
const shippingPrice = 100;
+ const voucherValue = 50;
+ const name = `${startsWith}${faker.datatype.number()}`;
- let defaultChannel;
let createdChannel;
- let shippingMethod;
- let variants;
- let address;
let dataForCheckout;
+ let defaultChannel;
before(() => {
cy.clearSessionData().loginUserViaRequest();
channelsUtils.deleteChannelsStartsWith(startsWith);
deleteVouchersStartsWith(startsWith);
- const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
@@ -46,30 +43,23 @@ describe("As an admin I want to create voucher", () => {
shippingMethod: shippingMethodResp,
address: addressResp,
}) => {
- variants = variantsResp;
defaultChannel = channel;
- shippingMethod = shippingMethodResp;
- address = addressResp;
- createChannel({ name });
+
+ dataForCheckout = {
+ channelSlug: defaultChannel.slug,
+ variantsList: variantsResp,
+ address: addressResp,
+ shippingMethodName: shippingMethodResp.name,
+ auth: "token",
+ };
},
- )
- .then(channel => {
- createdChannel = channel;
- dataForCheckout = {
- channelSlug: defaultChannel.slug,
- variantsList: variants,
- address,
- shippingMethodName: shippingMethod.name,
- auth: "token",
- };
- });
+ );
});
it(
"should be able to create fixed price voucher. TC: SALEOR_1901",
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
- const voucherValue = 50;
const voucherCode = `${startsWith}${faker.datatype.number()}`;
const expectedAmount = productPrice + shippingPrice - voucherValue;
let checkout;
@@ -80,21 +70,18 @@ describe("As an admin I want to create voucher", () => {
voucherCode,
channelName: defaultChannel.name,
dataForCheckout,
- })
- .then(({ addPromoCodeResp, checkout: checkoutResp }) => {
- expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
- expectedAmount,
- );
- dataForCheckout.voucherCode = voucherCode;
- checkout = checkoutResp;
- addPayment(checkout.id);
- })
- .then(() => {
- completeCheckout(checkout.id);
- })
- .then(({ order }) => {
- expect(order.id).to.be.ok;
- });
+ }).then(({ addPromoCodeResp, checkout: checkoutResp }) => {
+ expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
+ expectedAmount,
+ );
+ dataForCheckout.voucherCode = voucherCode;
+ checkout = checkoutResp;
+
+ addPayment(checkout.id);
+ completeCheckout(checkout.id)
+ .its("order.total.gross.amount")
+ .should("eq", expectedAmount);
+ });
},
);
@@ -102,7 +89,6 @@ describe("As an admin I want to create voucher", () => {
"should be able to create percentage voucher. TC: SALEOR_1902",
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
- const voucherValue = 50;
const voucherCode = `${startsWith}${faker.datatype.number()}`;
const expectedAmount =
(productPrice * voucherValue) / 100 + shippingPrice;
@@ -114,21 +100,18 @@ describe("As an admin I want to create voucher", () => {
voucherCode,
channelName: defaultChannel.name,
dataForCheckout,
- })
- .then(({ addPromoCodeResp, checkout: checkoutResp }) => {
- expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
- expectedAmount,
- );
- dataForCheckout.voucherCode = voucherCode;
- checkout = checkoutResp;
- addPayment(checkout.id);
- })
- .then(() => {
- completeCheckout(checkout.id);
- })
- .then(({ order }) => {
- expect(order.id).to.be.ok;
- });
+ }).then(({ addPromoCodeResp, checkout: checkoutResp }) => {
+ expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
+ expectedAmount,
+ );
+ dataForCheckout.voucherCode = voucherCode;
+ checkout = checkoutResp;
+
+ addPayment(checkout.id);
+ completeCheckout(checkout.id)
+ .its("order.total.gross.amount")
+ .should("eq", expectedAmount);
+ });
},
);
@@ -145,21 +128,18 @@ describe("As an admin I want to create voucher", () => {
voucherCode,
channelName: defaultChannel.name,
dataForCheckout,
- })
- .then(({ addPromoCodeResp, checkout: checkoutResp }) => {
- expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
- expectedAmount,
- );
- dataForCheckout.voucherCode = voucherCode;
- checkout = checkoutResp;
- addPayment(checkout.id);
- })
- .then(() => {
- completeCheckout(checkout.id);
- })
- .then(({ order }) => {
- expect(order.id).to.be.ok;
- });
+ }).then(({ addPromoCodeResp, checkout: checkoutResp }) => {
+ expect(addPromoCodeResp.checkout.totalPrice.gross.amount).to.be.eq(
+ expectedAmount,
+ );
+ dataForCheckout.voucherCode = voucherCode;
+ checkout = checkoutResp;
+
+ addPayment(checkout.id);
+ completeCheckout(checkout.id)
+ .its("order.total.gross.amount")
+ .should("eq", productPrice);
+ });
},
);
@@ -167,26 +147,30 @@ describe("As an admin I want to create voucher", () => {
"should be able to create voucher not available for selected channel. TC: SALEOR_1904",
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
- const randomName = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
+ const voucherCode = `${startsWith}${faker.datatype.number()}`;
cy.clearSessionData()
.loginUserViaRequest()
.visit(urlList.vouchers);
cy.expectSkeletonIsVisible();
- createVoucher({
- voucherCode: randomName,
- voucherValue,
- discountOption: discountOptions.PERCENTAGE,
- channelName: createdChannel.name,
+ createChannel({ name }).then(channel => {
+ createdChannel = channel;
+
+ cy.reload();
+ createVoucher({
+ voucherCode,
+ voucherValue,
+ discountOption: discountOptions.PERCENTAGE,
+ channelName: createdChannel.name,
+ });
});
- dataForCheckout.voucherCode = randomName;
- createCheckoutWithVoucher(dataForCheckout).then(
- ({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField).to.be.eq("promoCode");
- },
- );
+
+ dataForCheckout.voucherCode = voucherCode;
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", { message: "Promo code is invalid" });
},
);
});
diff --git a/cypress/e2e/discounts/vouchers/createVouchersWithLimits.js b/cypress/e2e/discounts/vouchers/createVouchersWithLimits.js
index 0cfdaca58..7718ccbfd 100644
--- a/cypress/e2e/discounts/vouchers/createVouchersWithLimits.js
+++ b/cypress/e2e/discounts/vouchers/createVouchersWithLimits.js
@@ -20,18 +20,17 @@ describe("As an admin I want to create voucher", () => {
const startsWith = "CyVouLimit-";
const productPrice = 100;
const shippingPrice = 100;
+ const voucherValue = 50;
let defaultChannel;
- let shippingMethod;
- let variants;
- let address;
let dataForCheckout;
before(() => {
+ const name = `${startsWith}${faker.datatype.number()}`;
+
cy.clearSessionData().loginUserViaRequest();
channelsUtils.deleteChannelsStartsWith(startsWith);
deleteVouchersStartsWith(startsWith);
- const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
@@ -41,15 +40,13 @@ describe("As an admin I want to create voucher", () => {
shippingMethod: shippingMethodResp,
address: addressResp,
}) => {
- variants = variantsResp;
defaultChannel = channel;
- shippingMethod = shippingMethodResp;
- address = addressResp;
+
dataForCheckout = {
channelSlug: defaultChannel.slug,
- variantsList: variants,
- address,
- shippingMethodName: shippingMethod.name,
+ variantsList: variantsResp,
+ address: addressResp,
+ shippingMethodName: shippingMethodResp.name,
auth: "token",
};
cy.clearSessionData();
@@ -62,7 +59,6 @@ describe("As an admin I want to create voucher", () => {
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const voucherCode = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
const usageLimit = 1;
dataForCheckout.auth = "auth";
let firstCheckout;
@@ -74,25 +70,18 @@ describe("As an admin I want to create voucher", () => {
channelName: defaultChannel.name,
dataForCheckout,
usageLimit,
- })
- .then(({ checkout, addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
- firstCheckout = checkout;
- dataForCheckout.voucherCode = voucherCode;
- addPayment(firstCheckout.id);
- })
- .then(() => {
- completeCheckout(firstCheckout.id);
- })
- .then(() => {
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField, "error in promo code should occur").to.be.eq(
- "promoCode",
- );
- });
+ }).then(({ checkout, addPromoCodeResp }) => {
+ expect(addPromoCodeResp.errors).to.be.empty;
+ firstCheckout = checkout;
+ dataForCheckout.voucherCode = voucherCode;
+
+ addPayment(firstCheckout.id);
+ completeCheckout(firstCheckout.id);
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", { message: "Promo code is invalid" });
+ });
},
);
@@ -101,7 +90,6 @@ describe("As an admin I want to create voucher", () => {
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const voucherCode = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
dataForCheckout.auth = "auth";
let firstCheckout;
@@ -112,46 +100,38 @@ describe("As an admin I want to create voucher", () => {
channelName: defaultChannel.name,
dataForCheckout,
applyOnePerCustomer: true,
- })
- .then(({ checkout, addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
+ }).then(({ checkout, addPromoCodeResp }) => {
+ expect(addPromoCodeResp.errors).to.be.empty;
+ firstCheckout = checkout;
+ dataForCheckout.voucherCode = voucherCode;
- dataForCheckout.voucherCode = voucherCode;
- firstCheckout = checkout;
- addPayment(firstCheckout.id);
- })
- .then(() => {
- completeCheckout(firstCheckout.id);
- })
- .then(() => {
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField, "error in promo code should occur").to.be.eq(
- "promoCode",
- );
+ addPayment(firstCheckout.id);
+ completeCheckout(firstCheckout.id);
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", {
+ message: "Voucher is not applicable to this checkout.",
+ });
- // Create new checkout as other not logged in customer - voucher should be available for other customer
+ // Create new checkout as other not logged in customer - voucher should be available for other customer
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- dataForCheckout.email = "newUser@example.com";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors;
- expect(errorField, "No errors when adding promo code").to.be.empty;
- });
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+ dataForCheckout.email = "newUser@example.com";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
+ });
},
);
- xit(
+ it(
"should be able to create voucher with limit to staff only. TC: SALEOR_1909",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const voucherCode = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
dataForCheckout.auth = "auth";
let firstCheckout;
@@ -162,35 +142,35 @@ describe("As an admin I want to create voucher", () => {
channelName: defaultChannel.name,
dataForCheckout,
onlyStaff: true,
- })
- .then(({ checkout, addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
- dataForCheckout.voucherCode = voucherCode;
- firstCheckout = checkout;
- addPayment(firstCheckout.id);
- })
- .then(() => {
- completeCheckout(firstCheckout.id);
- })
- .then(() => {
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField, "error in promo code should occur").to.be.eq(
- "promoCode",
- );
- });
+ }).then(({ checkout, addPromoCodeResp }) => {
+ expect(addPromoCodeResp.errors).to.be.empty;
+ firstCheckout = checkout;
+ dataForCheckout.voucherCode = voucherCode;
+
+ addPayment(firstCheckout.id);
+ completeCheckout(firstCheckout.id);
+
+ // Create new checkout as other not logged in customer - voucher should be not available for other customer
+
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+ dataForCheckout.email = "newUser@example.com";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", {
+ message: "Voucher is not applicable to this checkout.",
+ });
+ });
},
);
- xit(
+ it(
"should be able to create voucher with minimum value of order. TC: SALEOR_1910",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const voucherCode = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
const minOrderValue = productPrice * 1.5;
dataForCheckout.productQuantity = 1;
@@ -202,50 +182,46 @@ describe("As an admin I want to create voucher", () => {
dataForCheckout,
minOrderValue,
})
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- dataForCheckout.voucherCode = voucherCode;
-
- expect(errorField, "error in promo code should occur").to.be.eq(
- "promoCode",
- );
- dataForCheckout.productQuantity = 2;
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors;
- expect(errorField, "No errors when adding promo code").to.be.empty;
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", {
+ message: "Voucher is not applicable to this checkout.",
});
+ dataForCheckout.voucherCode = voucherCode;
+ dataForCheckout.productQuantity = 2;
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
},
);
- xit("should create voucher with min product quantity. TC: SALEOR_1911", () => {
- const voucherCode = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
- const minAmountOfItems = 2;
- dataForCheckout.productQuantity = 1;
+ it(
+ "should create voucher with min product quantity. TC: SALEOR_1911",
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
+ () => {
+ const voucherCode = `${startsWith}${faker.datatype.number()}`;
+ dataForCheckout.productQuantity = 1;
- loginAndCreateCheckoutForVoucherWithDiscount({
- discount: discountOptions.PERCENTAGE,
- voucherValue,
- voucherCode,
- channelName: defaultChannel.name,
- dataForCheckout,
- minAmountOfItems,
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- dataForCheckout.voucherCode = voucherCode;
-
- expect(errorField, "error in promo code should occur").to.be.eq(
- "promoCode",
- );
- dataForCheckout.productQuantity = 2;
- createCheckoutWithVoucher(dataForCheckout);
+ loginAndCreateCheckoutForVoucherWithDiscount({
+ discount: discountOptions.PERCENTAGE,
+ voucherValue,
+ voucherCode,
+ channelName: defaultChannel.name,
+ dataForCheckout,
+ minAmountOfItems: 2,
})
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors;
- expect(errorField, "No errors when adding promo code").to.be.empty;
- });
- });
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", {
+ message: "Voucher is not applicable to this checkout.",
+ });
+ dataForCheckout.voucherCode = voucherCode;
+ dataForCheckout.productQuantity = 2;
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
+ },
+ );
});
diff --git a/cypress/e2e/discounts/vouchers/updateVouchers.js b/cypress/e2e/discounts/vouchers/updateVouchers.js
index 42212e5a0..c7e5bc29a 100644
--- a/cypress/e2e/discounts/vouchers/updateVouchers.js
+++ b/cypress/e2e/discounts/vouchers/updateVouchers.js
@@ -19,15 +19,17 @@ describe("As an admin I want to update vouchers", () => {
const startsWith = "UpdateVou-";
const productPrice = 100;
const shippingPrice = 100;
+ const voucherValue = 50;
let defaultChannel;
let product;
let dataForCheckout;
before(() => {
+ const name = `${startsWith}${faker.datatype.number()}`;
+
cy.clearSessionData().loginUserViaRequest();
deleteVouchersStartsWith(startsWith);
- const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
@@ -54,12 +56,9 @@ describe("As an admin I want to update vouchers", () => {
it(
"should delete voucher. TC: SALEOR_1905",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const name = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
-
- let voucherCreate;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
@@ -67,71 +66,67 @@ describe("As an admin I want to update vouchers", () => {
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue,
- })
- .then(voucherResp => {
- voucherCreate = voucherResp;
- expect(voucherCreate.voucher.id).to.be.ok;
- cy.visit(voucherDetailsUrl(voucherCreate.voucher.id))
- .addAliasToGraphRequest("VoucherDelete")
- .get(BUTTON_SELECTORS.deleteButton)
- .click()
- .get(BUTTON_SELECTORS.submit)
- .click()
- .wait("@VoucherDelete");
- dataForCheckout.voucherCode = voucherCreate.code;
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField).to.be.eq("promoCode");
- });
+ }).then(voucherResp => {
+ expect(voucherResp.voucher.id).to.be.ok;
+
+ cy.visit(voucherDetailsUrl(voucherResp.voucher.id))
+ .addAliasToGraphRequest("VoucherDelete")
+ .get(BUTTON_SELECTORS.deleteButton)
+ .click()
+ .get(BUTTON_SELECTORS.submit)
+ .click()
+ .wait("@VoucherDelete");
+
+ dataForCheckout.voucherCode = voucherResp.voucher.code;
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", { message: "Promo code is invalid" });
+ });
},
);
it(
"should update voucher. TC: SALEOR_1906",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const name = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
const voucherUpdatedValue = 20;
const expectedOrderAmount =
productPrice +
shippingPrice -
(productPrice * voucherUpdatedValue) / 100;
- let voucherCreate;
-
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue,
- })
- .then(voucherResp => {
- voucherCreate = voucherResp;
- expect(voucherCreate.voucher.id).to.be.ok;
- cy.visit(voucherDetailsUrl(voucherCreate.voucher.id))
- .addAliasToGraphRequest("VoucherUpdate")
- .get(VOUCHERS_SELECTORS.percentageDiscountRadioButton)
- .click()
- .get(VOUCHERS_SELECTORS.discountValueInputs)
- .clearAndType(voucherUpdatedValue)
- .get(BUTTON_SELECTORS.confirm)
- .click()
- .wait("@VoucherUpdate");
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const amount = addPromoCodeResp.checkout.totalPrice.gross.amount;
- expect(amount).to.be.eq(expectedOrderAmount);
- });
+ }).then(voucherResp => {
+ expect(voucherResp.voucher.id).to.be.ok;
+
+ cy.visit(voucherDetailsUrl(voucherResp.voucher.id))
+ .addAliasToGraphRequest("VoucherUpdate")
+ .get(VOUCHERS_SELECTORS.percentageDiscountRadioButton)
+ .click()
+ .get(VOUCHERS_SELECTORS.discountValueInputs)
+ .clearAndType(voucherUpdatedValue)
+ .get(BUTTON_SELECTORS.confirm)
+ .click()
+ .wait("@VoucherUpdate");
+
+ dataForCheckout.voucherCode = voucherResp.voucher.code;
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.checkout.totalPrice.gross.amount")
+ .should("eq", expectedOrderAmount);
+ });
},
);
@@ -140,13 +135,10 @@ describe("As an admin I want to update vouchers", () => {
{ tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const name = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
- const today = new Date();
- const tomorrow = new Date(today);
- const todayDate = formatDate(today);
- const tomorrowDate = formatDate(tomorrow.setDate(tomorrow.getDate() + 1));
-
- let voucherCreate;
+ const todayDate = formatDate(new Date());
+ const tomorrowDate = formatDate(
+ new Date().setDate(new Date().getDate() + 1),
+ );
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
@@ -154,47 +146,42 @@ describe("As an admin I want to update vouchers", () => {
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue,
- })
- .then(voucherResp => {
- voucherCreate = voucherResp;
- expect(voucherCreate.voucher.id).to.be.ok;
- setVoucherDate({
- voucherId: voucherCreate.voucher.id,
- startDate: tomorrowDate,
- });
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField).to.be.eq("promoCode");
- setVoucherDate({
- voucherId: voucherCreate.voucher.id,
- startDate: todayDate,
- });
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
+ }).then(voucherResp => {
+ expect(voucherResp.voucher.id).to.be.ok;
+
+ setVoucherDate({
+ voucherId: voucherResp.voucher.id,
+ startDate: tomorrowDate,
});
+ dataForCheckout.voucherCode = voucherResp.voucher.code;
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", { message: "Promo code is invalid" });
+ setVoucherDate({
+ voucherId: voucherResp.voucher.id,
+ startDate: todayDate,
+ });
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
+ });
},
);
it(
"should set end date on voucher. TC: SALEOR_1913",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const name = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
- const today = new Date();
- const todayDate = formatDate(today);
- const tomorrow = new Date(today);
- const tomorrowDate = formatDate(tomorrow.setDate(tomorrow.getDate() + 1));
-
- let voucherCreate;
+ const todayDate = formatDate(new Date());
+ const tomorrowDate = formatDate(
+ new Date().setDate(new Date().getDate() + 1),
+ );
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
@@ -202,46 +189,40 @@ describe("As an admin I want to update vouchers", () => {
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue,
- })
- .then(voucherResp => {
- voucherCreate = voucherResp;
- expect(voucherCreate.voucher.id).to.be.ok;
- setVoucherDate({
- voucherId: voucherCreate.voucher.id,
- endDate: todayDate,
- endTime: formatTime(today),
- hasEndDate: true,
- });
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField).to.be.eq("promoCode");
- setVoucherDate({
- voucherId: voucherCreate.voucher.id,
- endDate: tomorrowDate,
- endTime: formatTime(tomorrow),
- });
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
+ }).then(voucherResp => {
+ expect(voucherResp.voucher.id).to.be.ok;
+
+ setVoucherDate({
+ voucherId: voucherResp.voucher.id,
+ endDate: todayDate,
+ endTime: formatTime(new Date()),
+ hasEndDate: true,
});
+ dataForCheckout.voucherCode = voucherResp.voucher.code;
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", { message: "Promo code is invalid" });
+ setVoucherDate({
+ voucherId: voucherResp.voucher.id,
+ endDate: tomorrowDate,
+ endTime: formatTime(new Date()),
+ });
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
+ });
},
);
it(
"should set country on voucher. TC: SALEOR_1914",
- { tags: ["@vouchers", "@allEnv"] },
+ { tags: ["@vouchers", "@allEnv", "@stable"] },
() => {
const name = `${startsWith}${faker.datatype.number()}`;
- const voucherValue = 50;
-
- let voucherCreate;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
@@ -251,39 +232,38 @@ describe("As an admin I want to update vouchers", () => {
value: voucherValue,
type: "SHIPPING",
country: "US",
- })
- .then(voucherResp => {
- voucherCreate = voucherResp;
- expect(voucherCreate.voucher.id).to.be.ok;
- dataForCheckout.voucherCode = voucherCreate.voucher.code;
- window.sessionStorage.setItem("token", "");
- dataForCheckout.auth = "token";
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- expect(addPromoCodeResp.errors).to.be.empty;
- cy.visit(voucherDetailsUrl(voucherCreate.voucher.id))
- .get(VOUCHERS_SELECTORS.shippingDiscountRadioButton)
- .click()
- .get(VOUCHERS_SELECTORS.countriesDropdownIcon)
- .click()
- .get(BUTTON_SELECTORS.deleteIcon)
- .click()
- .get(BUTTON_SELECTORS.deleteIcon)
- .should("not.exist")
- .get(VOUCHERS_SELECTORS.assignCountryButton)
- .click()
- .assignElements("Poland", false)
- .addAliasToGraphRequest("VoucherUpdate")
- .get(BUTTON_SELECTORS.confirm)
- .click()
- .wait("@VoucherUpdate");
- createCheckoutWithVoucher(dataForCheckout);
- })
- .then(({ addPromoCodeResp }) => {
- const errorField = addPromoCodeResp.errors[0].field;
- expect(errorField).to.be.eq("promoCode");
- });
+ }).then(voucherResp => {
+ expect(voucherResp.voucher.id).to.be.ok;
+ dataForCheckout.voucherCode = voucherResp.voucher.code;
+ window.sessionStorage.setItem("token", "");
+ dataForCheckout.auth = "token";
+
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors")
+ .should("be.be.empty");
+ cy.visit(voucherDetailsUrl(voucherResp.voucher.id))
+ .get(VOUCHERS_SELECTORS.shippingDiscountRadioButton)
+ .click()
+ .get(VOUCHERS_SELECTORS.countriesDropdownIcon)
+ .click()
+ .get(BUTTON_SELECTORS.deleteIcon)
+ .click()
+ .get(BUTTON_SELECTORS.deleteIcon)
+ .should("not.exist")
+ .get(VOUCHERS_SELECTORS.assignCountryButton)
+ .click()
+ .assignElements("Poland", false)
+ .addAliasToGraphRequest("VoucherUpdate")
+ .get(BUTTON_SELECTORS.confirm)
+ .click()
+ .wait("@VoucherUpdate");
+ createCheckoutWithVoucher(dataForCheckout)
+ .its("addPromoCodeResp.errors.0")
+ .should("include", { field: "promoCode" })
+ .and("include", {
+ message: "Voucher is not applicable to this checkout.",
+ });
+ });
},
);
});
diff --git a/cypress/support/api/requests/Checkout.js b/cypress/support/api/requests/Checkout.js
index bf7768da8..440ba39a5 100644
--- a/cypress/support/api/requests/Checkout.js
+++ b/cypress/support/api/requests/Checkout.js
@@ -2,7 +2,7 @@ import {
getDefaultAddress,
getPaymentDataLine,
getValueWithDefault,
- getVariantsLines
+ getVariantsLines,
} from "./utils/Utils";
export function createCheckout({
@@ -13,13 +13,13 @@ export function createCheckout({
address,
billingAddress,
auth = "auth",
- returnAvailableCollectionPoints = false
+ returnAvailableCollectionPoints = false,
}) {
const lines = getVariantsLines(variantsList, productQuantity);
const shippingAddress = getDefaultAddress(address, "shippingAddress");
const billingAddressLines = getDefaultAddress(
billingAddress,
- "billingAddress"
+ "billingAddress",
);
const availableCollectionPointsLines = getValueWithDefault(
@@ -29,7 +29,7 @@ export function createCheckout({
name
clickAndCollectOption
isPrivate
- }`
+ }`,
);
const emailLine = getValueWithDefault(email, `email: "${email}"`);
@@ -233,7 +233,7 @@ export function checkoutShippingAddressUpdate(checkoutId, address) {
export function addProductsToCheckout(
checkoutId,
variantsList,
- productQuantity
+ productQuantity,
) {
const lines = getVariantsLines(variantsList, productQuantity);
const mutation = `mutation{
diff --git a/cypress/support/api/requests/Discounts/Vouchers.js b/cypress/support/api/requests/Discounts/Vouchers.js
index 384b3544b..08d945aa9 100644
--- a/cypress/support/api/requests/Discounts/Vouchers.js
+++ b/cypress/support/api/requests/Discounts/Vouchers.js
@@ -66,11 +66,15 @@ export function addChannelToVoucher(voucherId, channelId, value) {
discountValue:"${value}"
}
}){
+ voucher{
+ id
+ code
+ }
errors{
field
message
}
}
}`;
- return cy.sendRequestWithQuery(mutation);
+ return cy.sendRequestWithQuery(mutation).its("body.data");
}