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 faker from "faker";
import { import { SHARED_ELEMENTS } from "../../elements/";
BUTTON_SELECTORS,
ORDERS_SELECTORS,
SHARED_ELEMENTS,
} from "../../elements/";
import { urlList } from "../../fixtures/urlList"; import { urlList } from "../../fixtures/urlList";
import { import {
createCustomer, createCustomer,
getDraftOrdersList,
getOrdersList,
updateOrdersSettings, updateOrdersSettings,
} from "../../support/api/requests/"; } from "../../support/api/requests/";
import { import {
@ -19,13 +17,6 @@ import {
getDefaultChannel, getDefaultChannel,
} from "../../support/api/utils/"; } from "../../support/api/utils/";
import * as productsUtils from "../../support/api/utils/products/productsUtils"; 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", () => { describe("Draft orders", () => {
const startsWith = "CyDraftOrders-"; const startsWith = "CyDraftOrders-";
@ -104,32 +95,41 @@ describe("Draft orders", () => {
{ tags: ["@orders", "@allEnv"] }, { tags: ["@orders", "@allEnv"] },
() => { () => {
let draftOrderNumber; let draftOrderNumber;
let order;
cy.addAliasToGraphRequest("OrderDraftFinalize"); cy.addAliasToGraphRequest("OrderDraftFinalize");
cy.addAliasToGraphRequest("OrderList"); createUnconfirmedOrder({
customerId: customer.id,
cy.visit(urlList.orders); channelId: defaultChannel.id,
cy.get(ORDERS_SELECTORS.createOrderButton).click(); shippingMethod,
selectChannelInPicker(defaultChannel.name); variantsList,
finalizeDraftOrder(randomName, address) address,
.wait("@OrderDraftFinalize") warehouse: warehouse.id,
.then(finalizedDraftOrderResponse => { }).then(({ order: orderResp }) => {
cy.log(finalizedDraftOrderResponse); order = orderResp;
draftOrderNumber = cy.visit(urlList.orders + `${order.id}`);
finalizedDraftOrderResponse.response.body.data.draftOrderComplete cy.clickFinalizeButton()
.order.number; .confirmationMessageShouldAppear()
cy.get(SHARED_ELEMENTS.pageHeader).should( .waitForRequestAndCheckIfNoErrors("@OrderDraftFinalize")
"contain.text", .then(finalizedDraftOrderResponse => {
draftOrderNumber, draftOrderNumber =
); finalizedDraftOrderResponse.response.body.data.draftOrderComplete
cy.get(BUTTON_SELECTORS.back) .order.number;
.click() cy.get(SHARED_ELEMENTS.pageHeader).should(
.waitForRequestAndCheckIfNoErrors("@OrderList"); "contain.text",
cy.visit(urlList.draftOrders).then(() => { draftOrderNumber,
cy.url().should("include", urlList.draftOrders); );
ensureCanvasStatic(SHARED_ELEMENTS.dataGridTable); getDraftOrdersList().then(draftOrdersListResponse => {
cy.contains(draftOrderNumber).should("not.exist"); 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 faker from "faker";
import { import { BUTTON_SELECTORS, PAGE_DETAILS_SELECTORS } from "../../elements";
BUTTON_SELECTORS, import { pageDetailsUrl, urlList } from "../../fixtures/urlList";
PAGE_DETAILS_SELECTORS,
} from "../../elements";
import {
pageDetailsUrl,
urlList,
} from "../../fixtures/urlList";
import { import {
attributeRequests, attributeRequests,
pageRequests, pageRequests,
pageTypeRequests, pageTypeRequests,
} from "../../support/api/requests"; } from "../../support/api/requests";
import { import { pageDetailsPage, pagesPage } from "../../support/pages";
pageDetailsPage,
pagesPage,
} from "../../support/pages";
describe("Tests for pages", () => { describe("Tests for pages", () => {
const startsWith = `Pages`; const startsWith = `Pages`;
@ -65,7 +56,7 @@ describe("Tests for pages", () => {
pagesPage.selectPageTypeOnIndex(0); pagesPage.selectPageTypeOnIndex(0);
cy.clickSubmitButton(); cy.clickSubmitButton();
cy.waitForRequestAndCheckIfNoErrors("@PageType"); cy.waitForRequestAndCheckIfNoErrors("@PageType");
pageDetailsPage.typePageName(pageName); pageDetailsPage.typePageName(pageName).should("have.value", pageName);
cy.get(PAGE_DETAILS_SELECTORS.isNotPublishedCheckbox).click(); cy.get(PAGE_DETAILS_SELECTORS.isNotPublishedCheckbox).click();
pagesPage.savePage().then(page => { pagesPage.savePage().then(page => {
pageRequests.getPage(page.id).then(page => { pageRequests.getPage(page.id).then(page => {

View file

@ -2,13 +2,9 @@
/// <reference types="../../../support"/> /// <reference types="../../../support"/>
import { PAGINATION } from "../../../elements"; import { PAGINATION } from "../../../elements";
import { import { PRODUCTS_LIST } from "../../../elements/catalog/products/products-list";
PRODUCTS_LIST,
} from "../../../elements/catalog/products/products-list";
import { urlList } from "../../../fixtures/urlList"; import { urlList } from "../../../fixtures/urlList";
import { import { ensureCanvasStatic } from "../../../support/customCommands/sharedElementsOperations/canvas";
ensureCanvasStatic,
} from "../../../support/customCommands/sharedElementsOperations/canvas";
describe("As an admin I should be able to manage products table", () => { describe("As an admin I should be able to manage products table", () => {
beforeEach(() => { beforeEach(() => {
@ -43,7 +39,9 @@ describe("As an admin I should be able to manage products table", () => {
.get(PAGINATION.nextPagePaginationButton) .get(PAGINATION.nextPagePaginationButton)
.should("not.be.disabled"); .should("not.be.disabled");
ensureCanvasStatic(PRODUCTS_LIST.dataGridTable).then(() => { 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"); 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 }) { export function fulfillOrder({ orderId, warehouse, quantity, linesId }) {
const lines = linesId.reduce((lines, lineId) => { const lines = linesId.reduce((lines, lineId) => {

View file

@ -1,6 +1,12 @@
export { createChannel, updateChannelOrderSettings } from "./Channels"; export { createChannel, updateChannelOrderSettings } from "./Channels";
export { createCustomer, deleteCustomersStartsWith } from "./Customer"; 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 { updateMetadata, updatePrivateMetadata } from "./Metadata";
export { getProductMetadata } from "./storeFront/ProductDetails"; export { getProductMetadata } from "./storeFront/ProductDetails";
export { activatePlugin, updatePlugin } from "./Plugins"; 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 { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { import {
selectorWithDataValue, selectorWithDataValue,
@ -23,6 +23,9 @@ Cypress.Commands.add("clickSubmitButton", () =>
Cypress.Commands.add("clickConfirmButton", () => Cypress.Commands.add("clickConfirmButton", () =>
cy.get(BUTTON_SELECTORS.confirm).click(), cy.get(BUTTON_SELECTORS.confirm).click(),
); );
Cypress.Commands.add("clickFinalizeButton", () =>
cy.get(DRAFT_ORDER_SELECTORS.finalizeButton).click(),
);
Cypress.Commands.add("openColumnPicker", () => Cypress.Commands.add("openColumnPicker", () =>
cy.get(SHARED_ELEMENTS.openColumnPickerButton).click(), cy.get(SHARED_ELEMENTS.openColumnPickerButton).click(),
); );