saleor-dashboard/cypress/support/pages/navigationPage.js

60 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

import { MENU_DETAILS } from "../../elements/navigation/menu-details";
import { MENU_LIST } from "../../elements/navigation/menu-list";
import { BUTTON_SELECTORS } from "../../elements/shared/button-selectors";
import { SHARED_ELEMENTS } from "../../elements/shared/sharedElements";
import { menuDetailsUrl, urlList } from "../../fixtures/urlList";
export function createMenu(name) {
return cy
.visit(urlList.navigation)
.get(MENU_LIST.addMenuButton)
.click()
.get(MENU_LIST.createMenuForm.nameInput)
.type(name)
.addAliasToGraphRequest("MenuCreate")
.get(BUTTON_SELECTORS.submit)
.click()
.confirmationMessageShouldDisappear()
.wait("@MenuCreate")
.its("response.body.data.menuCreate.menu");
}
export function createNewMenuItem({ menuId, name, menuItemType }) {
let selectedItem;
return cy
.visit(menuDetailsUrl(menuId))
.wait("@SearchCollections")
.wait("@SearchPages")
.wait("@SearchCategories")
.get(MENU_DETAILS.createNewMenuItemButton)
.click()
.get(SHARED_ELEMENTS.dialog)
.find(MENU_DETAILS.newMenuItemForm.nameInput)
.type(name)
.get(MENU_DETAILS.newMenuItemForm.autocompleteSelectReference)
.click()
.get(SHARED_ELEMENTS.progressBar)
.should("be.not.visible")
.get(MENU_DETAILS.newMenuItemForm[menuItemType])
.click()
.get(MENU_DETAILS.newMenuItemForm.anyMenuItem)
.click()
.invoke("text")
.then(text => {
selectedItem = text;
cy.addAliasToGraphRequest("MenuItemCreate")
.get(BUTTON_SELECTORS.submit)
.click()
.confirmationMessageShouldDisappear()
.waitForRequestAndCheckIfNoErrors("@MenuItemCreate");
})
.then(() => selectedItem);
}
export const MENU_ITEM_TYPES = {
category: "categoryItem",
collection: "collectionItem",
page: "pageItem",
};