saleor-dashboard/cypress/support/pages/ordersTransactionUtils.js
Anna Szczęch 70c7f3a2f8
Add e2e for capture transactions in orders (#3567)
* Update schema, remove transaction specific files

* Merge `.transaction` queries and mutations into regular files

* Merge OrderDetails fragments

* Remove usage of `.transaction` graphl types

* Update fixtures

* Remove usage of useFlag, remove duplicated queries & mutations

* Fix displayed event type for INFO

* Remove type alias from order/types.ts, remove type casting

* Fix failing tests

* Add preview label and better description in Channel settings

* Update button in GrantRefund page

* Fix missing data-test-id

* add e2e for capture transactions in orders

* creates tests for transactions order view switched on

---------

Co-authored-by: Jonatan Witoszek <jonatan.witoszek@saleor.io>
Co-authored-by: wojteknowacki <wojciech.nowacki@saleor.io>
2023-05-11 08:46:33 +02:00

111 lines
3.8 KiB
JavaScript

import {
BUTTON_SELECTORS,
ORDER_GRANT_REFUND,
ORDER_TRANSACTION_CREATE,
ORDERS_SELECTORS,
} from "../../elements";
export function markAsPaidOrderWithRefNumber(transactionNumber) {
cy.addAliasToGraphRequest("OrderMarkAsPaid");
clickMarkAsPaidButton();
typeTransactionReference(`ref_${transactionNumber}`);
clickConfirmMarkAsPaidButton().waitForRequestAndCheckIfNoErrors(
"@OrderMarkAsPaid",
);
}
export function captureManualTransaction(
transactionDescription,
transactionPSPReference,
amount,
) {
clickCaptureManualTransactionButton();
typeTransactionDescription(`desc_${transactionDescription}`);
typeTransactionPSPReference(`psp_${transactionPSPReference}`);
typeRefundTotalAmount(amount);
clickCreateManualTransactionButton().confirmationMessageShouldAppear();
}
export function grantRefundAllProductsAndShippingWithReason(
refundReason,
total,
) {
cy.addAliasToGraphRequest("OrderDetailsGrantRefund");
clickGrantRefundButton();
cy.waitForRequestAndCheckIfNoErrors("@OrderDetailsGrantRefund");
clickMaxQuantityButton();
typeRefundReason(refundReason);
clickRefundShippingCheckbox();
clickApplyRefundButton();
cy.get(ORDER_GRANT_REFUND.refundAmountInput).should("contain.value", total);
clickConfirmRefundButton();
cy.confirmationMessageShouldAppear();
}
export function sendRefundWithDescriptionPSPAndAmount(
transactionDescription,
transactionPSPReference,
amount,
) {
clickSendRefundButton();
typeTransactionDescription(`desc_${transactionDescription}`);
typeTransactionPSPReference(`psp_${transactionPSPReference}`);
typeRefundTotalAmount(amount);
cy.addAliasToGraphRequest("CreateManualTransactionRefund");
clickRefundSubmitButton();
cy.waitForRequestAndCheckIfNoErrors(
"@CreateManualTransactionRefund",
).confirmationMessageShouldAppear();
}
export function clickMarkAsPaidButton() {
return cy.clickOnElement(ORDERS_SELECTORS.markAsPaidButton);
}
export function clickRefundSubmitButton() {
return cy.clickOnElement(ORDER_TRANSACTION_CREATE.manualTransactionSubmit);
}
export function clickCreateManualTransactionButton() {
return cy.clickOnElement(ORDER_TRANSACTION_CREATE.manualTransactionSubmit);
}
export function clickMaxQuantityButton() {
return cy.clickOnElement(ORDER_GRANT_REFUND.setMaxQuantityButton);
}
export function clickCaptureManualTransactionButton() {
return cy.clickOnElement(ORDERS_SELECTORS.captureManualTransactionButton);
}
export function typeRefundReason(refundReasonDescription) {
return cy
.get(ORDER_GRANT_REFUND.refundReasonInput)
.type(`reason_${refundReasonDescription}`);
}
export function typeRefundTotalAmount(amount) {
return cy.get(ORDER_TRANSACTION_CREATE.transactAmountInput).type(amount);
}
export function typeTransactionReference(reference) {
return cy.get(ORDERS_SELECTORS.transactionReferenceInput).type(reference);
}
export function typeTransactionDescription(transactionDescription) {
return cy
.get(ORDER_TRANSACTION_CREATE.transactionDescription)
.type(`desc_${transactionDescription}`);
}
export function typeTransactionPSPReference(transactionPSPReference) {
return cy
.get(ORDER_TRANSACTION_CREATE.transactionPspReference)
.type(`psp_${transactionPSPReference}`);
}
export function clickGrantRefundButton() {
return cy.clickOnElement(ORDERS_SELECTORS.grantRefundButton);
}
export function clickSendRefundButton() {
return cy.clickOnElement(ORDERS_SELECTORS.refundButton);
}
export function clickRefundShippingCheckbox() {
return cy.clickOnElement(ORDER_GRANT_REFUND.refundShippingCheckbox);
}
export function clickApplyRefundButton() {
return cy.clickOnElement(ORDER_GRANT_REFUND.applySelectedRefundButton);
}
export function clickConfirmRefundButton() {
return cy.clickOnElement(ORDER_GRANT_REFUND.grantRefundButton);
}
export function clickConfirmMarkAsPaidButton() {
return cy.clickOnElement(BUTTON_SELECTORS.submit);
}