WIP-add new product
This commit is contained in:
parent
c86206d35f
commit
6a72fae494
4 changed files with 80 additions and 29 deletions
16
cypress/elements/account/left-menu/left-menu-selectors.js
Normal file
16
cypress/elements/account/left-menu/left-menu-selectors.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* eslint-disable sort-keys */
|
||||||
|
export const LEFT_MENU_SELECTORS = {
|
||||||
|
catalog: "[data-testid='catalog']",
|
||||||
|
|
||||||
|
PRODUCTS_SELECTORS: {
|
||||||
|
products: "[data-testid='catalogue']",
|
||||||
|
createProductBtn: "[data-test='add-product']",
|
||||||
|
productNameInput: "[name='name']",
|
||||||
|
productTypeInput: "data-test='product-type'",
|
||||||
|
categoryInput: "[data-test='category']",
|
||||||
|
categoryDropdown: "[data-test='singleautocomplete-select-option']",
|
||||||
|
visibleRadioBtn: "[name='isPublished']",
|
||||||
|
saveBtn: "[data-test='button-bar-confirm']",
|
||||||
|
confirmationMsg: "[data-test='notification']"
|
||||||
|
}
|
||||||
|
};
|
|
@ -1,7 +1,9 @@
|
||||||
export const LOGIN_SELECTORS = {
|
export const LOGIN_SELECTORS = {
|
||||||
|
accountSettings: "[data-test=accountSettingsButton]",
|
||||||
emailAddressInput: "input[name='email']",
|
emailAddressInput: "input[name='email']",
|
||||||
emailPasswordInput: "input[name='password']",
|
emailPasswordInput: "input[name='password']",
|
||||||
signInButton: "[data-test=submit]",
|
signInButton: "[data-test=submit]",
|
||||||
|
userMenu: "[data-test=userMenu]",
|
||||||
warningCredentialMessage: "[data-test=loginErrorMessage]",
|
warningCredentialMessage: "[data-test=loginErrorMessage]",
|
||||||
welcomePage: "[data-test=welcomeHeader]"
|
welcomePage: "[data-test=welcomeHeader]"
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,37 +6,33 @@ describe("User authorization", () => {
|
||||||
cy.clearSessionData();
|
cy.clearSessionData();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Login", () => {
|
it("should successfully log in an user", () => {
|
||||||
it("should successfully log in an user", () => {
|
cy.visit("/");
|
||||||
cy.visit("/");
|
cy.loginUser();
|
||||||
cy.loginUser();
|
cy.get(LOGIN_SELECTORS.welcomePage);
|
||||||
cy.get(LOGIN_SELECTORS.welcomePage);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should fail for wrong password", () => {
|
|
||||||
cy.visit("/")
|
|
||||||
.get(LOGIN_SELECTORS.emailAddressInput)
|
|
||||||
.type("admin@example.com")
|
|
||||||
.get(LOGIN_SELECTORS.emailPasswordInput)
|
|
||||||
.type("wrong-password")
|
|
||||||
.get(LOGIN_SELECTORS.signInButton)
|
|
||||||
.click()
|
|
||||||
.get(LOGIN_SELECTORS.warningCredentialMessage);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Logout", () => {
|
it("should fail for wrong password", () => {
|
||||||
it("should successfully log out an user", () => {
|
cy.visit("/")
|
||||||
cy.window().then(win => {
|
.get(LOGIN_SELECTORS.emailAddressInput)
|
||||||
win.sessionStorage.clear();
|
.type("admin@example.com")
|
||||||
});
|
.get(LOGIN_SELECTORS.emailPasswordInput)
|
||||||
cy.visit("/");
|
.type("wrong-password")
|
||||||
cy.loginUser();
|
.get(LOGIN_SELECTORS.signInButton)
|
||||||
cy.get("[data-test=userMenu]")
|
.click()
|
||||||
.click()
|
.get(LOGIN_SELECTORS.warningCredentialMessage);
|
||||||
.get("[data-test=accountSettingsButton]")
|
});
|
||||||
.click();
|
|
||||||
cy.location("pathname").should("contains", "/staff/");
|
it("should successfully log out an user", () => {
|
||||||
|
cy.window().then(win => {
|
||||||
|
win.sessionStorage.clear();
|
||||||
});
|
});
|
||||||
|
cy.visit("/");
|
||||||
|
cy.loginUser();
|
||||||
|
cy.get(LOGIN_SELECTORS.userMenu)
|
||||||
|
.click()
|
||||||
|
.get(LOGIN_SELECTORS.accountSettings)
|
||||||
|
.click();
|
||||||
|
cy.location("pathname").should("contains", "/staff/");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
37
cypress/integration/products.js
Normal file
37
cypress/integration/products.js
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import { LEFT_MENU_SELECTORS } from "../elements/account/left-menu/left-menu-selectors";
|
||||||
|
import { LOGIN_SELECTORS } from "../elements/account/login-selectors";
|
||||||
|
|
||||||
|
// <reference types="cypress" />
|
||||||
|
describe("Products", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.clearSessionData();
|
||||||
|
cy.visit("/");
|
||||||
|
cy.loginUser();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should add new visible product", () => {
|
||||||
|
cy.get(LEFT_MENU_SELECTORS.catalog)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.products)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.createProductBtn)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.productNameInput)
|
||||||
|
.click()
|
||||||
|
.type("Visible test product")
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.productTypeInput)
|
||||||
|
.click()
|
||||||
|
.type("Cushion{'enter'}")
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.categoryInput)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.categoryDropdown)
|
||||||
|
.first()
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.visibleRadioBtn)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.saveBtn)
|
||||||
|
.click()
|
||||||
|
.get(LEFT_MENU_SELECTORS.PRODUCTS_SELECTORS.confirmationMsg)
|
||||||
|
.contains("Product save");
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in a new issue