saleor-dashboard/cypress/support/pages/catalog/giftCardPage.js
Paweł Chyła ce1854b2ca
Introduce datagrid in grift cards list (#3894)
Co-authored-by: wojteknowacki <124166231+wojteknowacki@users.noreply.github.com>
2023-07-19 15:31:33 +02:00

141 lines
4.2 KiB
JavaScript

import { SHARED_ELEMENTS } from "../../../elements";
import { GIFT_CARD_DIALOG } from "../../../elements/catalog/giftCard/giftCardDialog";
import {
GIFT_CARD_LIST,
giftCardRow,
} from "../../../elements/catalog/giftCard/giftCardList";
import { GIFT_CARD_SHOW_MORE } from "../../../elements/catalog/giftCard/giftCardShowMore";
import { GIFT_CARD_UPDATE } from "../../../elements/catalog/giftCard/giftCardUpdate";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { giftCardDetailsUrl, urlList } from "../../../fixtures/urlList";
export function openAndFillUpCreateGiftCardDialog({
note,
tag,
amount,
currency,
}) {
cy.visit(urlList.giftCards)
.get(GIFT_CARD_LIST.issueCardButton)
.click()
.get(GIFT_CARD_DIALOG.currencySelectButton)
.click();
cy.contains(GIFT_CARD_DIALOG.currenciesOptions, currency)
.click()
.get(GIFT_CARD_DIALOG.amountInput)
.clearAndType(amount)
.createNewOption(GIFT_CARD_DIALOG.tagInput, tag)
.get(GIFT_CARD_DIALOG.noteInput)
.type(note);
}
export function saveGiftCard() {
return cy
.addAliasToGraphRequest("GiftCardCreate")
.get(BUTTON_SELECTORS.submit)
.click()
.get(BUTTON_SELECTORS.submit)
.click()
.waitForRequestAndCheckIfNoErrors("@GiftCardCreate")
.its("response.body.data.giftCardCreate.giftCard");
}
export const expiryPeriods = {
MONTH: GIFT_CARD_DIALOG.expirationOptions.expiryPeriodMonthType,
};
export function setExpiryPeriod(amount, period) {
cy.get(GIFT_CARD_DIALOG.expirationOptions.setExpiryDateCheckbox)
.click()
.get(GIFT_CARD_DIALOG.expirationOptions.expiryPeriodRadioButton)
.click()
.get(GIFT_CARD_DIALOG.expirationOptions.expiryPeriodAmount)
.clearAndType(amount)
.get(GIFT_CARD_DIALOG.expirationOptions.expiryPeriodTypeButton)
.click()
.get(period)
.click();
}
export function setExpiryDate(date) {
cy.get(GIFT_CARD_DIALOG.expirationOptions.setExpiryDateCheckbox)
.click()
.get(GIFT_CARD_DIALOG.expirationOptions.expiryDateRadioButton)
.click()
.get(GIFT_CARD_DIALOG.expirationOptions.expiryDateInput)
.type(date);
}
export function changeGiftCardActiveStatus(giftCardId) {
cy.visit(giftCardDetailsUrl(giftCardId))
.get(GIFT_CARD_UPDATE.changeActiveStatusButton)
.click()
.confirmationMessageShouldAppear();
}
export function selectGiftCard(giftCardId) {
return cy
.get(giftCardRow(giftCardId))
.find(GIFT_CARD_LIST.selectGiftCardCheckbox)
.click();
}
export function selectGiftCardOnListView(giftCardCode) {
const splitCode = giftCardCode.split("-");
const lastCodeElement = splitCode.slice(-1).toString();
cy.log(lastCodeElement);
return cy
.contains(
`${SHARED_ELEMENTS.dataGridTable} table tbody tr`,
lastCodeElement,
)
.invoke("index")
.then(index => {
cy.clickGridCell(0, index);
});
}
export function enterAndSelectGiftCards(giftCardsIds) {
const alias = "GiftCardList";
cy.addAliasToGraphRequest(alias)
.visit(urlList.giftCards)
.findElementsAndMakeActionOnTable({
elementsGraphqlAlias: alias,
elementsName: "giftCards",
elementsIds: giftCardsIds,
actionFunction: selectGiftCard,
});
}
export function openExportGiftCardsDialog() {
cy.get(BUTTON_SELECTORS.showMoreButton)
.click({ force: true })
.get(GIFT_CARD_SHOW_MORE.exportCodesMenu)
.click();
}
export function selectSelectedRecordsButton() {
cy.get(GIFT_CARD_SHOW_MORE.exportSelectedRecords).click();
}
export function selectExportAsCSVButton() {
cy.get(GIFT_CARD_SHOW_MORE.exportAsRadioBtn.csv).click();
}
export function selectExportAsXLSXButton() {
cy.get(GIFT_CARD_SHOW_MORE.exportAsRadioBtn.xlsx).click();
}
export function clickDeactivateButton() {
cy.get(GIFT_CARD_LIST.deactivateGiftCardButton).click();
}
export function bulkDeleteRecords() {
cy.get(BUTTON_SELECTORS.bulkDeleteButton)
.click()
.get(GIFT_CARD_UPDATE.consentCheckbox)
.click()
.get(BUTTON_SELECTORS.submit)
.click();
}
export function getUrlWithFilteredTags(url, tagsArray) {
const urlHelper = url + "?asc=true&sort=usedBy";
let tagsPath = "";
tagsArray.forEach((tag, index) => {
tagsPath += `&tag%5B${index}%5D=${tag}`;
});
return urlHelper + tagsPath;
}