Add tests for updating vouchers (#1845)

This commit is contained in:
Karolina Rakoczy 2022-02-11 15:58:40 +01:00 committed by GitHub
parent f86a3559b0
commit 74508ed93b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 317 additions and 356 deletions

View file

@ -7,6 +7,12 @@ export const VOUCHERS_SELECTORS = {
fixedDiscountRadioButton: "[name='discountType'][value='VALUE_FIXED']", fixedDiscountRadioButton: "[name='discountType'][value='VALUE_FIXED']",
shippingDiscountRadioButton: "[name='discountType'][value='SHIPPING']", shippingDiscountRadioButton: "[name='discountType'][value='SHIPPING']",
discountValueInputs: "[name='value']", discountValueInputs: "[name='value']",
startDateInput: '[name="startDate"]',
endDateInput: '[name="endDate"]',
hasEndDateCheckbox: '[name="hasEndDate"]',
endTimeInput: '[name="endTime"]',
assignCountryButton: '[data-test-id="assign-country"]',
countriesDropdownIcon: '[data-test-id="countries-drop-down-icon"]',
limits: { limits: {
usageLimitCheckbox: '[data-test-id="has-usage-limit"]', usageLimitCheckbox: '[data-test-id="has-usage-limit"]',
usageLimitTextField: '[data-test-id="usage-limit"]', usageLimitTextField: '[data-test-id="usage-limit"]',

View file

@ -1,244 +0,0 @@
/// <reference types="cypress"/>
/// <reference types="../../support"/>
import faker from "faker";
import { BUTTON_SELECTORS } from "../../elements/shared/button-selectors";
import { urlList, voucherDetailsUrl } from "../../fixtures/urlList";
import { ONE_PERMISSION_USERS } from "../../fixtures/users";
import { createChannel } from "../../support/api/requests/Channels";
import { completeCheckout } from "../../support/api/requests/Checkout";
import * as channelsUtils from "../../support/api/utils/channelsUtils";
import {
createVoucherInChannel,
deleteVouchersStartsWith
} from "../../support/api/utils/discounts/vouchersUtils";
import {
addPayment,
createCheckoutWithVoucher
} from "../../support/api/utils/ordersUtils";
import * as productsUtils from "../../support/api/utils/products/productsUtils";
import { deleteShippingStartsWith } from "../../support/api/utils/shippingUtils";
import filterTests from "../../support/filterTests";
import {
createVoucher,
discountOptions
} from "../../support/pages/discounts/vouchersPage";
filterTests({ definedTags: ["all"] }, () => {
describe("Vouchers discounts", () => {
const startsWith = "CyVou-";
const productPrice = 100;
const shippingPrice = 100;
let defaultChannel;
let createdChannel;
let shippingMethod;
let variants;
let product;
let address;
before(() => {
cy.clearSessionData().loginUserViaRequest();
channelsUtils.deleteChannelsStartsWith(startsWith);
deleteVouchersStartsWith(startsWith);
deleteShippingStartsWith(startsWith);
const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
({
variantsList: variantsResp,
defaultChannel: channel,
shippingMethod: shippingMethodResp,
address: addressResp,
product: productResp
}) => {
variants = variantsResp;
defaultChannel = channel;
shippingMethod = shippingMethodResp;
address = addressResp;
product = productResp;
createChannel({ name });
}
)
.then(channel => {
createdChannel = channel;
});
});
it("should create percentage voucher", () => {
const voucherValue = 50;
const voucherCode = `${startsWith}${faker.datatype.number()}`;
const expectedAmount =
(productPrice * voucherValue) / 100 + shippingPrice;
let checkout;
loginAndCreateCheckoutForVoucherWithDiscount(
discountOptions.PERCENTAGE,
voucherValue,
voucherCode
)
.then(amount => {
expect(amount).to.be.eq(expectedAmount);
createCheckoutForCreatedVoucher(voucherCode);
})
.then(resp => {
expect(resp.addPromoCodeResp.checkout.totalPrice.gross.amount).to.eq(
expectedAmount
);
checkout = resp.checkout;
addPayment(checkout.id);
})
.then(() => {
completeCheckout(checkout.id);
})
.then(({ order }) => {
expect(order.id).to.be.ok;
});
});
it("should create fixed price voucher", () => {
const voucherValue = 50;
const voucherCode = `${startsWith}${faker.datatype.number()}`;
const expectedAmount = productPrice + shippingPrice - voucherValue;
let checkout;
loginAndCreateCheckoutForVoucherWithDiscount(
discountOptions.FIXED,
voucherValue,
voucherCode
)
.then(amount => {
expect(amount).to.be.eq(expectedAmount);
createCheckoutForCreatedVoucher(voucherCode);
})
.then(resp => {
expect(resp.addPromoCodeResp.checkout.totalPrice.gross.amount).to.eq(
expectedAmount
);
checkout = resp.checkout;
addPayment(checkout.id);
})
.then(() => {
completeCheckout(checkout.id);
})
.then(({ order }) => {
expect(order.id).to.be.ok;
});
});
it("should create free shipping voucher", () => {
const voucherCode = `${startsWith}${faker.datatype.number()}`;
const expectedAmount = productPrice;
let checkout;
loginAndCreateCheckoutForVoucherWithDiscount(
discountOptions.SHIPPING,
null,
voucherCode
)
.then(amount => {
expect(amount).to.be.eq(expectedAmount);
createCheckoutForCreatedVoucher(voucherCode);
})
.then(resp => {
expect(resp.addPromoCodeResp.checkout.totalPrice.gross.amount).to.eq(
expectedAmount
);
checkout = resp.checkout;
addPayment(checkout.id);
})
.then(() => {
completeCheckout(checkout.id);
})
.then(({ order }) => {
expect(order.id).to.be.ok;
});
});
it("should create voucher not available for selected channel", () => {
const randomName = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
cy.clearSessionData()
.loginUserViaRequest()
.visit(urlList.vouchers);
cy.softExpectSkeletonIsVisible();
createVoucher({
voucherCode: randomName,
voucherValue,
discountOption: discountOptions.PERCENTAGE,
channelName: createdChannel.name
});
createCheckoutForCreatedVoucher(randomName).then(
({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.checkoutErrors[0].field;
expect(errorField).to.be.eq("promoCode");
}
);
});
it("should delete voucher", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
cy.visit(voucherDetailsUrl(voucher.id))
.addAliasToGraphRequest("VoucherDelete")
.get(BUTTON_SELECTORS.deleteButton)
.click()
.get(BUTTON_SELECTORS.submit)
.click()
.wait("@VoucherDelete");
createCheckoutForCreatedVoucher(voucher.code);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.checkoutErrors[0].field;
expect(errorField).to.be.eq("promoCode");
});
});
function createCheckoutForCreatedVoucher(voucherCode) {
return createCheckoutWithVoucher({
channelSlug: defaultChannel.slug,
variantsList: variants,
address,
shippingMethodName: shippingMethod.name,
voucherCode,
auth: "token"
});
}
function loginAndCreateCheckoutForVoucherWithDiscount(
discount,
voucherValue,
voucherCode
) {
cy.clearSessionData()
.loginUserViaRequest("auth", ONE_PERMISSION_USERS.discount)
.visit(urlList.vouchers);
cy.softExpectSkeletonIsVisible();
createVoucher({
voucherCode,
voucherValue,
discountOption: discount,
channelName: defaultChannel.name
});
return createCheckoutForCreatedVoucher(voucherCode).its(
"addPromoCodeResp.checkout.totalPrice.gross.amount"
);
}
});
});

View file

@ -1,5 +1,5 @@
// / <reference types="cypress"/> /// <reference types="cypress"/>
// / <reference types="../../../support"/> /// <reference types="../../../support"/>
import faker from "faker"; import faker from "faker";

View file

@ -0,0 +1,256 @@
/// <reference types="cypress"/>
/// <reference types="../../../support"/>
import faker from "faker";
import { VOUCHERS_SELECTORS } from "../../../elements/discounts/vouchers";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { voucherDetailsUrl } from "../../../fixtures/urlList";
import {
createVoucherInChannel,
deleteVouchersStartsWith
} from "../../../support/api/utils/discounts/vouchersUtils";
import { createCheckoutWithVoucher } from "../../../support/api/utils/ordersUtils";
import * as productsUtils from "../../../support/api/utils/products/productsUtils";
import filterTests from "../../../support/filterTests";
import { formatDate, formatTime } from "../../../support/formatData/formatDate";
import { setVoucherDate } from "../../../support/pages/discounts/vouchersPage";
filterTests({ definedTags: ["all"] }, () => {
describe("As an admin I want to update vouchers", () => {
const startsWith = "CyVou-";
const productPrice = 100;
const shippingPrice = 100;
let defaultChannel;
let product;
let dataForCheckout;
before(() => {
cy.clearSessionData().loginUserViaRequest();
deleteVouchersStartsWith(startsWith);
const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
({
variantsList: variantsResp,
defaultChannel: channel,
shippingMethod: shippingMethodResp,
address: addressResp,
product: productResp
}) => {
defaultChannel = channel;
product = productResp;
dataForCheckout = {
channelSlug: defaultChannel.slug,
variantsList: variantsResp,
address: addressResp,
shippingMethodName: shippingMethodResp.name,
auth: "token"
};
}
);
});
it("should delete voucher. TC: SALEOR_1905", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
cy.visit(voucherDetailsUrl(voucher.id))
.addAliasToGraphRequest("VoucherDelete")
.get(BUTTON_SELECTORS.deleteButton)
.click()
.get(BUTTON_SELECTORS.submit)
.click()
.wait("@VoucherDelete");
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.errors[0].field;
expect(errorField).to.be.eq("promoCode");
});
});
it("should update voucher. TC: SALEOR_1906", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
const voucherUpdatedValue = 20;
const expectedOrderAmount =
productPrice +
shippingPrice -
(productPrice * voucherUpdatedValue) / 100;
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
cy.visit(voucherDetailsUrl(voucher.id))
.addAliasToGraphRequest("VoucherUpdate")
.get(VOUCHERS_SELECTORS.percentageDiscountRadioButton)
.click()
.get(VOUCHERS_SELECTORS.discountValueInputs)
.clearAndType(voucherUpdatedValue)
.get(BUTTON_SELECTORS.confirm)
.click()
.wait("@VoucherUpdate");
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
const amount = addPromoCodeResp.checkout.totalPrice.gross.amount;
expect(amount).to.be.eq(expectedOrderAmount);
});
});
it("should set date on voucher. TC: SALEOR_1912", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
const today = new Date();
const tomorrow = new Date(today);
const todayDate = formatDate(today);
const tomorrowDate = formatDate(tomorrow.setDate(tomorrow.getDate() + 1));
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
setVoucherDate({ voucherId: voucher.id, startDate: tomorrowDate });
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.errors[0].field;
expect(errorField).to.be.eq("promoCode");
setVoucherDate({ voucherId: voucher.id, startDate: todayDate });
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
expect(addPromoCodeResp.errors).to.be.empty;
});
});
it("should set end date on voucher. TC: SALEOR_1913", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
const today = new Date();
const todayDate = formatDate(today);
const tomorrow = new Date(today);
const tomorrowDate = formatDate(tomorrow.setDate(tomorrow.getDate() + 1));
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
setVoucherDate({
voucherId: voucher.id,
endDate: todayDate,
endTime: formatTime(today),
hasEndDate: true
});
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.errors[0].field;
expect(errorField).to.be.eq("promoCode");
setVoucherDate({
voucherId: voucher.id,
endDate: tomorrowDate,
endTime: formatTime(tomorrow)
});
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
expect(addPromoCodeResp.errors).to.be.empty;
});
});
it("should set country on voucher. TC: SALEOR_1914", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue,
type: "SHIPPING",
country: "US"
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
dataForCheckout.voucherCode = voucher.code;
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
expect(addPromoCodeResp.errors).to.be.empty;
cy.visit(voucherDetailsUrl(voucher.id))
.get(VOUCHERS_SELECTORS.shippingDiscountRadioButton)
.click()
.get(VOUCHERS_SELECTORS.countriesDropdownIcon)
.click()
.get(BUTTON_SELECTORS.deleteIcon)
.click()
.get(BUTTON_SELECTORS.deleteIcon)
.should("not.exist")
.get(VOUCHERS_SELECTORS.assignCountryButton)
.click()
.assignElements("Poland", false)
.addAliasToGraphRequest("VoucherUpdate")
.get(BUTTON_SELECTORS.confirm)
.click()
.wait("@VoucherUpdate");
createCheckoutWithVoucher(dataForCheckout);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.errors[0].field;
expect(errorField).to.be.eq("promoCode");
});
});
});
});

View file

@ -1,101 +0,0 @@
// / <reference types="cypress"/>
// / <reference types="../../../support"/>
import faker from "faker";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { voucherDetailsUrl } from "../../../fixtures/urlList";
import { createChannel } from "../../../support/api/requests/Channels";
import * as channelsUtils from "../../../support/api/utils/channelsUtils";
import {
createVoucherInChannel,
deleteVouchersStartsWith
} from "../../../support/api/utils/discounts/vouchersUtils";
import { createCheckoutWithVoucher } from "../../../support/api/utils/ordersUtils";
import * as productsUtils from "../../../support/api/utils/products/productsUtils";
import filterTests from "../../../support/filterTests";
filterTests({ definedTags: ["all"] }, () => {
describe("Vouchers discounts", () => {
const startsWith = "CyVou-";
const productPrice = 100;
const shippingPrice = 100;
let defaultChannel;
let createdChannel;
let shippingMethod;
let variants;
let product;
let address;
before(() => {
cy.clearSessionData().loginUserViaRequest();
channelsUtils.deleteChannelsStartsWith(startsWith);
deleteVouchersStartsWith(startsWith);
const name = `${startsWith}${faker.datatype.number()}`;
productsUtils
.createProductWithShipping({ name, productPrice, shippingPrice })
.then(
({
variantsList: variantsResp,
defaultChannel: channel,
shippingMethod: shippingMethodResp,
address: addressResp,
product: productResp
}) => {
variants = variantsResp;
defaultChannel = channel;
shippingMethod = shippingMethodResp;
address = addressResp;
product = productResp;
createChannel({ name });
}
)
.then(channel => {
createdChannel = channel;
});
});
it("should delete voucher", () => {
const name = `${startsWith}${faker.datatype.number()}`;
const voucherValue = 50;
let voucher;
cy.clearSessionData().loginUserViaRequest();
createVoucherInChannel({
name,
productId: product.id,
channelId: defaultChannel.id,
value: voucherValue
})
.then(voucherResp => {
voucher = voucherResp;
expect(voucher.id).to.be.ok;
cy.visit(voucherDetailsUrl(voucher.id))
.addAliasToGraphRequest("VoucherDelete")
.get(BUTTON_SELECTORS.deleteButton)
.click()
.get(BUTTON_SELECTORS.submit)
.click()
.wait("@VoucherDelete");
createCheckoutForCreatedVoucher(voucher.code);
})
.then(({ addPromoCodeResp }) => {
const errorField = addPromoCodeResp.errors[0].field;
expect(errorField).to.be.eq("promoCode");
});
});
function createCheckoutForCreatedVoucher(voucherCode) {
return createCheckoutWithVoucher({
channelSlug: defaultChannel.slug,
variantsList: variants,
address,
shippingMethodName: shippingMethod.name,
voucherCode,
auth: "token"
});
}
});
});

View file

@ -1,3 +1,5 @@
import { getValueWithDefault } from "../utils/Utils";
export function getVouchers(first, startsWith) { export function getVouchers(first, startsWith) {
const query = `query getVouchers{ const query = `query getVouchers{
vouchers(first:${first}, filter:{ vouchers(first:${first}, filter:{
@ -28,9 +30,14 @@ export function deleteVouchers(voucherId) {
return cy.sendRequestWithQuery(mutation); return cy.sendRequestWithQuery(mutation);
} }
export function createVoucher({ name, productId, code = name }) { export function createVoucher({ name, productId, code = name, type, country }) {
const discountTypeLines = getValueWithDefault(type, `type:${type}`);
const countryLine = getValueWithDefault(country, `countries:["${country}"]`);
const mutation = `mutation{ const mutation = `mutation{
voucherCreate(input:{ voucherCreate(input:{
${discountTypeLines}
${countryLine}
name:"${name}", name:"${name}",
code:"${code}" code:"${code}"
products:["${productId}"] products:["${productId}"]

View file

@ -63,7 +63,7 @@ export function createCheckoutWithDisabledGiftCard({
voucherCode, voucherCode,
auth auth
}).then(({ addPromoCodeResp, checkout }) => { }).then(({ addPromoCodeResp, checkout }) => {
expect(addPromoCodeResp.checkoutErrors[0].field).to.eq("promoCode"); expect(addPromoCodeResp.errors[0].field).to.eq("promoCode");
return checkout; return checkout;
}); });
} }

View file

@ -14,10 +14,12 @@ export function createVoucherInChannel({
productId, productId,
channelId, channelId,
value, value,
code = name code = name,
type,
country
}) { }) {
let voucher; let voucher;
return createVoucher({ name, productId, code }) return createVoucher({ name, productId, code, type, country })
.then(({ voucher: voucherResp }) => { .then(({ voucher: voucherResp }) => {
voucher = voucherResp; voucher = voucherResp;
addChannelToVoucher(voucher.id, channelId, value); addChannelToVoucher(voucher.id, channelId, value);

View file

@ -12,9 +12,9 @@ function getPeriodValue(date, option) {
} }
export function formatTime(date) { export function formatTime(date) {
const formatter = new Intl.DateTimeFormat(["pl-Pl"], { const hour = getPeriodValue(date, { hour: "2-digit", hour12: false });
hour: "numeric", const minute = getPeriodValue(date, { minute: "2-digit" });
minute: "numeric" const formattedMinute = minute.length === 1 ? `0${minute}` : minute;
});
return formatter.format(date); return new Array(hour, formattedMinute).join(":");
} }

View file

@ -1,5 +1,6 @@
import { VOUCHERS_SELECTORS } from "../../../elements/discounts/vouchers"; import { VOUCHERS_SELECTORS } from "../../../elements/discounts/vouchers";
import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors"; import { BUTTON_SELECTORS } from "../../../elements/shared/button-selectors";
import { voucherDetailsUrl } from "../../../fixtures/urlList";
import { urlList } from "../../../fixtures/urlList"; import { urlList } from "../../../fixtures/urlList";
import { ONE_PERMISSION_USERS } from "../../../fixtures/users"; import { ONE_PERMISSION_USERS } from "../../../fixtures/users";
import { createCheckoutWithVoucher } from "../../api/utils/ordersUtils"; import { createCheckoutWithVoucher } from "../../api/utils/ordersUtils";
@ -59,6 +60,32 @@ export function createVoucher({
.confirmationMessageShouldDisappear(); .confirmationMessageShouldDisappear();
} }
export function setVoucherDate({
voucherId,
startDate,
endDate,
endTime,
hasEndDate = false
}) {
cy.visit(voucherDetailsUrl(voucherId)).waitForProgressBarToNotBeVisible();
if (startDate) {
cy.get(VOUCHERS_SELECTORS.startDateInput).type(startDate);
}
if (endDate) {
if (hasEndDate) {
cy.get(VOUCHERS_SELECTORS.hasEndDateCheckbox).click();
}
cy.get(VOUCHERS_SELECTORS.endDateInput)
.type(endDate)
.get(VOUCHERS_SELECTORS.endTimeInput)
.type(endTime);
}
cy.addAliasToGraphRequest("VoucherUpdate")
.get(BUTTON_SELECTORS.confirm)
.click()
.wait("@VoucherUpdate");
}
export function loginAndCreateCheckoutForVoucherWithDiscount({ export function loginAndCreateCheckoutForVoucherWithDiscount({
discount, discount,
voucherValue, voucherValue,

View file

@ -122,6 +122,7 @@ const CountryList: React.FC<CountryListProps> = props => {
> >
<IconButton variant="secondary"> <IconButton variant="secondary">
<ArrowDropDownIcon <ArrowDropDownIcon
data-test-id="countries-drop-down-icon"
className={classNames({ className={classNames({
[classes.rotate]: !isCollapsed [classes.rotate]: !isCollapsed
})} })}
@ -155,6 +156,7 @@ const CountryList: React.FC<CountryListProps> = props => {
className={classNames(classes.textRight, classes.iconCell)} className={classNames(classes.textRight, classes.iconCell)}
> >
<IconButton <IconButton
data-test-id="delete-icon"
color="primary" color="primary"
disabled={!country || disabled} disabled={!country || disabled}
onClick={() => onCountryUnassign(country.code)} onClick={() => onCountryUnassign(country.code)}

View file

@ -227090,6 +227090,7 @@ exports[`Storyshots Views / Shipping / Create shipping zone default 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -227320,6 +227321,7 @@ exports[`Storyshots Views / Shipping / Create shipping zone form errors 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -227548,6 +227550,7 @@ exports[`Storyshots Views / Shipping / Create shipping zone loading 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -233710,6 +233713,7 @@ exports[`Storyshots Views / Shipping / Shipping zone details default 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -234814,6 +234818,7 @@ exports[`Storyshots Views / Shipping / Shipping zone details form errors 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >
@ -235914,6 +235919,7 @@ exports[`Storyshots Views / Shipping / Shipping zone details loading 1`] = `
<svg <svg
aria-hidden="true" aria-hidden="true"
class="MuiSvgIcon-root-id" class="MuiSvgIcon-root-id"
data-test-id="countries-drop-down-icon"
focusable="false" focusable="false"
viewBox="0 0 24 24" viewBox="0 0 24 24"
> >