saleor-dashboard/cypress/integration/catalog/giftCards.js

174 lines
5.6 KiB
JavaScript
Raw Normal View History

/// <reference types="cypress" />
/// <reference types="../../support"/>
2021-09-08 11:32:05 +00:00
import faker from "faker";
2021-12-17 11:08:13 +00:00
import { GIFT_CARD_UPDATE } from "../../elements/giftCard/giftCardUpdate";
import { BUTTON_SELECTORS } from "../../elements/shared/button-selectors";
import { giftCardDetailsUrl } from "../../fixtures/urlList";
import {
createGiftCard,
getGiftCardsWithCode,
getGiftCardWithId
2021-12-17 11:08:13 +00:00
} from "../../support/api/requests/GiftCard";
import { deleteGiftCardsWithTagStartsWith } from "../../support/api/utils/catalog/giftCardUtils";
import { addToDate } from "../../support/api/utils/misc";
import filterTests from "../../support/filterTests";
import { formatDate } from "../../support/formatData/formatDate";
2021-09-08 11:32:05 +00:00
import {
expiryPeriods,
openAndFillUpCreateGiftCardDialog,
saveGiftCard,
setExpiryDate,
setExpiryPeriod
} from "../../support/pages/catalog/giftCardPage";
2021-09-08 11:32:05 +00:00
filterTests({ definedTags: ["all"], version: "3.1.0" }, () => {
2021-09-08 11:32:05 +00:00
describe("Tests for gift cards", () => {
const startsWith = "GiftCards";
const amount = 50;
const currency = "USD";
before(() => {
cy.clearSessionData().loginUserViaRequest();
deleteGiftCardsWithTagStartsWith(startsWith);
2021-09-08 11:32:05 +00:00
});
beforeEach(() => {
cy.clearSessionData().loginUserViaRequest();
});
it("should create never expire gift card", () => {
const name = `${startsWith}${faker.datatype.number()}`;
let giftCard;
2021-09-08 11:32:05 +00:00
openAndFillUpCreateGiftCardDialog({
note: name,
tag: name,
amount,
currency
});
saveGiftCard()
.then(giftCardResp => {
giftCard = giftCardResp;
getGiftCardsWithCode(giftCard.code);
2021-09-08 11:32:05 +00:00
})
.then(giftCardsResp => {
expect(giftCardsResp[0].node.code).to.eq(giftCard.code);
expect(giftCardsResp[0].node.initialBalance.amount).to.eq(amount);
expect(giftCardsResp[0].node.initialBalance.currency).to.eq(currency);
2021-09-08 11:32:05 +00:00
});
});
it("should create gift card with two moths expiry", () => {
const name = `${startsWith}${faker.datatype.number()}`;
let giftCard;
const expectedExpiryDate = addToDate(new Date(), 2, "M");
2021-09-08 11:32:05 +00:00
openAndFillUpCreateGiftCardDialog({
note: name,
tag: name,
amount,
currency
});
setExpiryPeriod(2, expiryPeriods.MONTH);
saveGiftCard()
.then(giftCardResp => {
giftCard = giftCardResp;
getGiftCardsWithCode(giftCard.code);
2021-09-08 11:32:05 +00:00
})
.then(giftCardsResp => {
expect(giftCardsResp[0].node.code).to.eq(giftCard.code);
expect(giftCardsResp[0].node.initialBalance.amount).to.eq(amount);
expect(giftCardsResp[0].node.initialBalance.currency).to.eq(currency);
expect(giftCardsResp[0].node.expiryDate).to.eq(expectedExpiryDate);
2021-09-08 11:32:05 +00:00
});
});
it("should create gift card with date expiry", () => {
const name = `${startsWith}${faker.datatype.number()}`;
let giftCard;
2021-09-08 11:32:05 +00:00
const date = formatDate(new Date(new Date().getFullYear() + 2, 1, 1));
openAndFillUpCreateGiftCardDialog({
note: name,
tag: name,
amount,
currency
});
setExpiryDate(date);
saveGiftCard()
.then(giftCardResp => {
giftCard = giftCardResp;
getGiftCardsWithCode(giftCard.code);
2021-09-08 11:32:05 +00:00
})
.then(giftCardsResp => {
expect(giftCardsResp[0].node.code).to.eq(giftCard.code);
expect(giftCardsResp[0].node.initialBalance.amount).to.eq(amount);
expect(giftCardsResp[0].node.initialBalance.currency).to.eq(currency);
expect(giftCardsResp[0].node.expiryDate).to.eq(date);
2021-09-08 11:32:05 +00:00
});
});
2021-12-17 11:08:13 +00:00
it("should delete gift card", () => {
const name = `${startsWith}${faker.datatype.number()}`;
createGiftCard({
tag: name,
amount: 10,
currency: "USD"
}).then(giftCard => {
cy.visit(giftCardDetailsUrl(giftCard.id))
.get(BUTTON_SELECTORS.deleteButton)
.click()
.addAliasToGraphRequest("DeleteGiftCard")
.get(GIFT_CARD_UPDATE.consentCheckbox)
.click()
.get(BUTTON_SELECTORS.submit)
.click()
.waitForRequestAndCheckIfNoErrors("@DeleteGiftCard");
getGiftCardWithId(giftCard.id).should("be.null");
});
});
it("should update gift card", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const updatedName = `${startsWith}${faker.datatype.number()}`;
const date = formatDate(new Date(new Date().getFullYear() + 2, 1, 1));
createGiftCard({
tag: name,
amount: 10,
currency: "USD"
})
.then(giftCard => {
cy.visit(giftCardDetailsUrl(giftCard.id))
.waitForProgressBarToNotBeVisible()
.get(GIFT_CARD_UPDATE.expireCheckbox)
.click()
.get(GIFT_CARD_UPDATE.expireDateInput)
.type(date)
.get(GIFT_CARD_UPDATE.removeTagButton)
.click()
2021-12-17 11:08:13 +00:00
.get(GIFT_CARD_UPDATE.giftCardTagSelect)
.find("input")
.clear()
.type(updatedName)
.get(GIFT_CARD_UPDATE.autocompleteCustomOption)
2021-12-17 11:08:13 +00:00
.click()
.addAliasToGraphRequest("GiftCardUpdate")
.get(BUTTON_SELECTORS.confirm)
.click()
.waitForRequestAndCheckIfNoErrors("@GiftCardUpdate");
getGiftCardWithId(giftCard.id);
})
.then(giftCard => {
expect(giftCard.tags[0].name.toLowerCase()).to.eq(
updatedName.toLowerCase()
);
2021-12-17 11:08:13 +00:00
expect(giftCard.expiryDate).to.eq(date);
});
});
2021-09-08 11:32:05 +00:00
});
});