all tests for site settings (#1236)

This commit is contained in:
Karolina Rakoczy 2021-07-20 13:59:23 +03:00 committed by GitHub
parent e830d199c2
commit 0ec88cdb1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 132 additions and 8 deletions

View file

@ -1,3 +1,5 @@
import { getDefaultAddress } from "./utils/Utils";
export function updateShopWeightUnit(weightUnit) { export function updateShopWeightUnit(weightUnit) {
const mutation = `mutation{ const mutation = `mutation{
shopSettingsUpdate(input:{ shopSettingsUpdate(input:{
@ -14,3 +16,42 @@ export function updateShopWeightUnit(weightUnit) {
}`; }`;
return cy.sendRequestWithQuery(mutation).its("body.data.shopSettingsUpdate"); return cy.sendRequestWithQuery(mutation).its("body.data.shopSettingsUpdate");
} }
export function updateShopAddress(address) {
const input = getDefaultAddress(address, "input");
const mutation = `mutation{
shopAddressUpdate(${input}){
errors{
field
message
}
}
}`;
return cy.sendRequestWithQuery(mutation);
}
export function getShopInfo() {
const query = `query{
shop{
name
domain{
host
}
description
companyAddress{
companyName
streetAddress1
streetAddress2
city
cityArea
postalCode
country{
code
}
countryArea
phone
}
}
}`;
return cy.sendRequestWithQuery(query).its("body.data.shop");
}

View file

@ -0,0 +1,5 @@
export const SITE_SETTINGS_DETAILS = {
nameInput: '[name="name"]',
urlInput: '[name="domain"]',
descriptionInput: '[name="description"]'
};

View file

@ -0,0 +1,78 @@
import faker from "faker";
import {
getShopInfo,
updateShopAddress
} from "../../../apiRequests/shopSettings";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { SITE_SETTINGS_DETAILS } from "../../../elements/siteSettings/site-settings-details";
import { fillUpBasicAddress } from "../../../steps/shared/addressForm";
import { confirmationMessageShouldDisappear } from "../../../steps/shared/confirmationMessage";
import { urlList } from "../../../url/urlList";
describe("Tests for site settings", () => {
let address;
before(() => {
cy.clearSessionData().loginUserViaRequest();
cy.fixture("addresses").then(({ usAddress, plAddress }) => {
address = usAddress;
updateShopAddress(plAddress);
});
});
beforeEach(() => {
cy.clearSessionData()
.loginUserViaRequest()
.visit(urlList.siteSettings);
});
it("should change store name", () => {
const name = `Cypress-${faker.datatype.number()}`;
cy.get(SITE_SETTINGS_DETAILS.nameInput)
.clearAndType(name)
.get(BUTTON_SELECTORS.confirm)
.click();
confirmationMessageShouldDisappear();
getShopInfo().then(shopInfo => {
expect(shopInfo.name).to.eq(name);
});
});
it("should change site url", () => {
const url = `http://cypress${faker.datatype.number()}.saleor.com`;
cy.get(SITE_SETTINGS_DETAILS.urlInput)
.clearAndType(url)
.get(BUTTON_SELECTORS.confirm)
.click();
confirmationMessageShouldDisappear();
getShopInfo().then(shopInfo => {
expect(shopInfo.domain.host).to.eq(url);
});
});
it("should change store description", () => {
const description = faker.lorem.sentence();
cy.get(SITE_SETTINGS_DETAILS.descriptionInput)
.clearAndType(description)
.get(BUTTON_SELECTORS.confirm)
.click();
confirmationMessageShouldDisappear();
getShopInfo().then(shopInfo => {
expect(shopInfo.description).to.eq(description);
});
});
it("should change store address", () => {
fillUpBasicAddress(address);
cy.get(BUTTON_SELECTORS.confirm).click();
confirmationMessageShouldDisappear();
getShopInfo().then(({ companyAddress }) => {
expect(companyAddress.companyName).to.eq(address.companyName);
cy.expectCorrectBasicAddress(companyAddress, address);
});
});
});

View file

@ -17,17 +17,17 @@ export function fillUpAddressForm(address) {
export function fillUpBasicAddress(address) { export function fillUpBasicAddress(address) {
cy.get(ADDRESS_SELECTORS.companyName) cy.get(ADDRESS_SELECTORS.companyName)
.type(address.companyName) .clearAndType(address.companyName)
.get(ADDRESS_SELECTORS.phone) .get(ADDRESS_SELECTORS.phone)
.type(address.phone) .clearAndType(address.phone)
.get(ADDRESS_SELECTORS.streetAddress1) .get(ADDRESS_SELECTORS.streetAddress1)
.type(address.streetAddress1) .clearAndType(address.streetAddress1)
.get(ADDRESS_SELECTORS.streetAddress2) .get(ADDRESS_SELECTORS.streetAddress2)
.type(address.streetAddress2) .clearAndType(address.streetAddress2)
.get(ADDRESS_SELECTORS.city) .get(ADDRESS_SELECTORS.city)
.type(address.city) .clearAndType(address.city)
.get(ADDRESS_SELECTORS.postalCode) .get(ADDRESS_SELECTORS.postalCode)
.type(address.postalCode); .clearAndType(address.postalCode);
fillAutocompleteSelect(ADDRESS_SELECTORS.country, address.countryFullName); fillAutocompleteSelect(ADDRESS_SELECTORS.country, address.countryFullName);
cy.get(ADDRESS_SELECTORS.countryArea).type(address.countryArea); cy.get(ADDRESS_SELECTORS.countryArea).clearAndType(address.countryArea);
} }

View file

@ -17,9 +17,9 @@ export const urlList = {
permissionsGroups: "permission-groups/", permissionsGroups: "permission-groups/",
products: "products/", products: "products/",
productTypes: "product-types/", productTypes: "product-types/",
shippingMethods: "shipping/",
sales: "discounts/sales/", sales: "discounts/sales/",
shippingMethods: "shipping/", shippingMethods: "shipping/",
siteSettings: "site-settings/",
staffMembers: "staff/", staffMembers: "staff/",
vouchers: "discounts/vouchers/", vouchers: "discounts/vouchers/",
warehouses: "warehouses/", warehouses: "warehouses/",