Test maintenance - draft orders, pagination, create page (#4034)

* removed multiple redirects from draft order and limit assertion on pagination

* test fix - create not published page - assertion as delay added for page name
This commit is contained in:
wojteknowacki 2023-08-17 12:36:41 +02:00 committed by GitHub
parent aaf646399e
commit 7c38c29cae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 88 additions and 58 deletions

View file

@ -3,14 +3,12 @@
import faker from "faker";
import {
BUTTON_SELECTORS,
ORDERS_SELECTORS,
SHARED_ELEMENTS,
} from "../../elements/";
import { SHARED_ELEMENTS } from "../../elements/";
import { urlList } from "../../fixtures/urlList";
import {
createCustomer,
getDraftOrdersList,
getOrdersList,
updateOrdersSettings,
} from "../../support/api/requests/";
import {
@ -19,13 +17,6 @@ import {
getDefaultChannel,
} from "../../support/api/utils/";
import * as productsUtils from "../../support/api/utils/products/productsUtils";
import {
ensureCanvasStatic,
} from "../../support/customCommands/sharedElementsOperations/canvas";
import {
finalizeDraftOrder,
selectChannelInPicker,
} from "../../support/pages/";
describe("Draft orders", () => {
const startsWith = "CyDraftOrders-";
@ -104,32 +95,41 @@ describe("Draft orders", () => {
{ tags: ["@orders", "@allEnv"] },
() => {
let draftOrderNumber;
let order;
cy.addAliasToGraphRequest("OrderDraftFinalize");
cy.addAliasToGraphRequest("OrderList");
cy.visit(urlList.orders);
cy.get(ORDERS_SELECTORS.createOrderButton).click();
selectChannelInPicker(defaultChannel.name);
finalizeDraftOrder(randomName, address)
.wait("@OrderDraftFinalize")
.then(finalizedDraftOrderResponse => {
cy.log(finalizedDraftOrderResponse);
draftOrderNumber =
finalizedDraftOrderResponse.response.body.data.draftOrderComplete
.order.number;
cy.get(SHARED_ELEMENTS.pageHeader).should(
"contain.text",
draftOrderNumber,
);
cy.get(BUTTON_SELECTORS.back)
.click()
.waitForRequestAndCheckIfNoErrors("@OrderList");
cy.visit(urlList.draftOrders).then(() => {
cy.url().should("include", urlList.draftOrders);
ensureCanvasStatic(SHARED_ELEMENTS.dataGridTable);
cy.contains(draftOrderNumber).should("not.exist");
createUnconfirmedOrder({
customerId: customer.id,
channelId: defaultChannel.id,
shippingMethod,
variantsList,
address,
warehouse: warehouse.id,
}).then(({ order: orderResp }) => {
order = orderResp;
cy.visit(urlList.orders + `${order.id}`);
cy.clickFinalizeButton()
.confirmationMessageShouldAppear()
.waitForRequestAndCheckIfNoErrors("@OrderDraftFinalize")
.then(finalizedDraftOrderResponse => {
draftOrderNumber =
finalizedDraftOrderResponse.response.body.data.draftOrderComplete
.order.number;
cy.get(SHARED_ELEMENTS.pageHeader).should(
"contain.text",
draftOrderNumber,
);
getDraftOrdersList().then(draftOrdersListResponse => {
draftOrdersListResponse.edges.forEach(order => {
expect(order.node.number).not.eq(draftOrderNumber);
});
});
getOrdersList().then(ordersListResponse => {
expect(JSON.stringify(ordersListResponse.edges)).to.contains(
`"number":"${draftOrderNumber}"`,
);
});
});
});
});
},
);

View file

@ -3,23 +3,14 @@
import faker from "faker";
import {
BUTTON_SELECTORS,
PAGE_DETAILS_SELECTORS,
} from "../../elements";
import {
pageDetailsUrl,
urlList,
} from "../../fixtures/urlList";
import { BUTTON_SELECTORS, PAGE_DETAILS_SELECTORS } from "../../elements";
import { pageDetailsUrl, urlList } from "../../fixtures/urlList";
import {
attributeRequests,
pageRequests,
pageTypeRequests,
} from "../../support/api/requests";
import {
pageDetailsPage,
pagesPage,
} from "../../support/pages";
import { pageDetailsPage, pagesPage } from "../../support/pages";
describe("Tests for pages", () => {
const startsWith = `Pages`;
@ -65,7 +56,7 @@ describe("Tests for pages", () => {
pagesPage.selectPageTypeOnIndex(0);
cy.clickSubmitButton();
cy.waitForRequestAndCheckIfNoErrors("@PageType");
pageDetailsPage.typePageName(pageName);
pageDetailsPage.typePageName(pageName).should("have.value", pageName);
cy.get(PAGE_DETAILS_SELECTORS.isNotPublishedCheckbox).click();
pagesPage.savePage().then(page => {
pageRequests.getPage(page.id).then(page => {

View file

@ -2,13 +2,9 @@
/// <reference types="../../../support"/>
import { PAGINATION } from "../../../elements";
import {
PRODUCTS_LIST,
} from "../../../elements/catalog/products/products-list";
import { PRODUCTS_LIST } from "../../../elements/catalog/products/products-list";
import { urlList } from "../../../fixtures/urlList";
import {
ensureCanvasStatic,
} from "../../../support/customCommands/sharedElementsOperations/canvas";
import { ensureCanvasStatic } from "../../../support/customCommands/sharedElementsOperations/canvas";
describe("As an admin I should be able to manage products table", () => {
beforeEach(() => {
@ -43,7 +39,9 @@ describe("As an admin I should be able to manage products table", () => {
.get(PAGINATION.nextPagePaginationButton)
.should("not.be.disabled");
ensureCanvasStatic(PRODUCTS_LIST.dataGridTable).then(() => {
cy.assertCanvasRowsNumber(PRODUCTS_LIST.dataGridTable, 21);
cy.get(PRODUCTS_LIST.dataGridTable)
.find("tr")
.should("have.length.above", 10);
});
},
);

View file

@ -170,6 +170,38 @@ export function getOrder(orderId) {
}`;
return cy.sendRequestWithQuery(query).its("body.data.order");
}
export function getDraftOrdersList() {
const query = `query OrderDraftList{
draftOrders(first:100){
edges{
node{
id
number
errors{
message
}
}
}
}
}`;
return cy.sendRequestWithQuery(query).its("body.data.draftOrders");
}
export function getOrdersList() {
const query = `query OrderList{
orders(first:100){
edges{
node{
id
number
errors{
message
}
}
}
}
}`;
return cy.sendRequestWithQuery(query).its("body.data.orders");
}
export function fulfillOrder({ orderId, warehouse, quantity, linesId }) {
const lines = linesId.reduce((lines, lineId) => {

View file

@ -1,6 +1,12 @@
export { createChannel, updateChannelOrderSettings } from "./Channels";
export { createCustomer, deleteCustomersStartsWith } from "./Customer";
export { createDraftOrder, getOrder, updateOrdersSettings } from "./Order";
export {
createDraftOrder,
getDraftOrdersList,
getOrder,
getOrdersList,
updateOrdersSettings,
} from "./Order";
export { updateMetadata, updatePrivateMetadata } from "./Metadata";
export { getProductMetadata } from "./storeFront/ProductDetails";
export { activatePlugin, updatePlugin } from "./Plugins";

View file

@ -1,4 +1,4 @@
import { PAGINATION } from "../../../elements";
import { DRAFT_ORDER_SELECTORS, PAGINATION } from "../../../elements";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import {
selectorWithDataValue,
@ -23,6 +23,9 @@ Cypress.Commands.add("clickSubmitButton", () =>
Cypress.Commands.add("clickConfirmButton", () =>
cy.get(BUTTON_SELECTORS.confirm).click(),
);
Cypress.Commands.add("clickFinalizeButton", () =>
cy.get(DRAFT_ORDER_SELECTORS.finalizeButton).click(),
);
Cypress.Commands.add("openColumnPicker", () =>
cy.get(SHARED_ELEMENTS.openColumnPickerButton).click(),
);