Saleor 1740 tests for draft orders (#1002)
* first test for draft orders * tests for channels in draft orders * tests for channels in draft orders * tests for channels in draft orders * test for moving draft order to orders * test for orders * test for orders * tests for draft orders * tests for draft orders * tests for draft orders * tests for draft orders * test for moving draft order
This commit is contained in:
parent
746ce8b95f
commit
0157914edb
21 changed files with 592 additions and 8 deletions
|
@ -38,7 +38,7 @@ export function createCustomer(email, customerName, address, isActive = false) {
|
||||||
return cy.sendRequestWithQuery(mutation);
|
return cy.sendRequestWithQuery(mutation);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deleteCustomers(startsWith) {
|
export function deleteCustomersStartsWith(startsWith) {
|
||||||
getCustomers(startsWith).then(resp => {
|
getCustomers(startsWith).then(resp => {
|
||||||
if (resp.body.data.customers) {
|
if (resp.body.data.customers) {
|
||||||
const customers = resp.body.data.customers.edges;
|
const customers = resp.body.data.customers.edges;
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
export const DRAFT_ORDER_SELECTORS = {
|
export const DRAFT_ORDER_SELECTORS = {
|
||||||
addProducts: "[data-test-id='add-products-button']"
|
addProducts: "[data-test-id='add-products-button']",
|
||||||
|
salesChannel: "[data-test-id='sales-channel']",
|
||||||
|
editCustomerButton: "[data-test-id='edit-customer']",
|
||||||
|
selectCustomer: "[data-test-id='select-customer']",
|
||||||
|
selectCustomerOption: "[data-test-type='option']",
|
||||||
|
addShippingCarrierLink: "[data-test-id='add-shipping-carrier']",
|
||||||
|
finalizeButton: "[data-test='button-bar-confirm']",
|
||||||
|
pageHeader: "[data-test-id='page-header']"
|
||||||
};
|
};
|
||||||
|
|
3
cypress/elements/orders/draft-orders-list-selectors.js
Normal file
3
cypress/elements/orders/draft-orders-list-selectors.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
export const DRAFT_ORDERS_LIST_SELECTORS = {
|
||||||
|
draftOrderRow: "[data-test-id='draft-order-table-row']"
|
||||||
|
};
|
|
@ -1,4 +1,5 @@
|
||||||
export const ORDERS_SELECTORS = {
|
export const ORDERS_SELECTORS = {
|
||||||
orders: "[data-test='submenu-item-label'][data-test-id='orders']",
|
orders: "[data-test='submenu-item-label'][data-test-id='orders']",
|
||||||
createOrder: "[data-test-id='create-order-button']"
|
createOrder: "[data-test-id='create-order-button']",
|
||||||
|
orderRow: "[data-test-id='order-table-row']"
|
||||||
};
|
};
|
||||||
|
|
5
cypress/elements/shipping/select-shipping-method-form.js
Normal file
5
cypress/elements/shipping/select-shipping-method-form.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
export const SELECT_SHIPPING_METHOD_FORM = {
|
||||||
|
selectShippingMethod: "[id='mui-component-select-shippingMethod']",
|
||||||
|
shippingMethodOption: "[data-test='selectFieldOption']",
|
||||||
|
submitButton: "[type='submit']"
|
||||||
|
};
|
|
@ -1,6 +1,9 @@
|
||||||
import faker from "faker";
|
import faker from "faker";
|
||||||
|
|
||||||
import { createCustomer, deleteCustomers } from "../apiRequests/Customer";
|
import {
|
||||||
|
createCustomer,
|
||||||
|
deleteCustomersStartsWith
|
||||||
|
} from "../apiRequests/Customer";
|
||||||
import { HOMEPAGE_SELECTORS } from "../elements/homePage/homePage-selectors";
|
import { HOMEPAGE_SELECTORS } from "../elements/homePage/homePage-selectors";
|
||||||
import { changeChannel } from "../steps/homePageSteps";
|
import { changeChannel } from "../steps/homePageSteps";
|
||||||
import { urlList } from "../url/urlList";
|
import { urlList } from "../url/urlList";
|
||||||
|
@ -34,7 +37,7 @@ describe("Homepage analytics", () => {
|
||||||
before(() => {
|
before(() => {
|
||||||
cy.clearSessionData().loginUserViaRequest();
|
cy.clearSessionData().loginUserViaRequest();
|
||||||
productsUtils.deleteProductsStartsWith(startsWith);
|
productsUtils.deleteProductsStartsWith(startsWith);
|
||||||
deleteCustomers(startsWith);
|
deleteCustomersStartsWith(startsWith);
|
||||||
shippingUtils.deleteShippingStartsWith(startsWith);
|
shippingUtils.deleteShippingStartsWith(startsWith);
|
||||||
let addresses;
|
let addresses;
|
||||||
|
|
||||||
|
|
97
cypress/integration/orders/channelsInDraftOrders.js
Normal file
97
cypress/integration/orders/channelsInDraftOrders.js
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
// <reference types="cypress" />
|
||||||
|
import faker from "faker";
|
||||||
|
|
||||||
|
import { CHANNEL_FORM_SELECTORS } from "../../elements/channels/channel-form-selectors";
|
||||||
|
import { HEADER_SELECTORS } from "../../elements/header/header-selectors";
|
||||||
|
import { DRAFT_ORDER_SELECTORS } from "../../elements/orders/draft-order-selectors";
|
||||||
|
import { ORDERS_SELECTORS } from "../../elements/orders/orders-selectors";
|
||||||
|
import {
|
||||||
|
selectChannelInHeader,
|
||||||
|
selectChannelInPicker
|
||||||
|
} from "../../steps/channelsSteps";
|
||||||
|
import { urlList } from "../../url/urlList";
|
||||||
|
import * as channelsUtils from "../../utils/channelsUtils";
|
||||||
|
|
||||||
|
describe("Channels in draft orders", () => {
|
||||||
|
const startsWith = "Cy-";
|
||||||
|
const randomName = startsWith + faker.random.number();
|
||||||
|
|
||||||
|
let defaultChannel;
|
||||||
|
let otherChannel;
|
||||||
|
|
||||||
|
before(() => {
|
||||||
|
cy.clearSessionData().loginUserViaRequest();
|
||||||
|
channelsUtils.deleteChannelsStartsWith(startsWith);
|
||||||
|
channelsUtils
|
||||||
|
.getDefaultChannel()
|
||||||
|
.then(channel => {
|
||||||
|
defaultChannel = channel;
|
||||||
|
channelsUtils.createChannel({ name: randomName });
|
||||||
|
})
|
||||||
|
.then(channelResp => {
|
||||||
|
otherChannel = channelResp;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.clearSessionData().loginUserViaRequest();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Draft order channel should be taken from global channel picker", () => {
|
||||||
|
let channelName;
|
||||||
|
cy.visit(urlList.homePage);
|
||||||
|
cy.getTextFromElement(HEADER_SELECTORS.channelSelect).then(
|
||||||
|
channelInHeader => {
|
||||||
|
channelName = channelInHeader;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
cy.visit(urlList.orders)
|
||||||
|
.get(ORDERS_SELECTORS.createOrder)
|
||||||
|
.click();
|
||||||
|
cy.getTextFromElement(CHANNEL_FORM_SELECTORS.channelSelect).then(
|
||||||
|
selectedChannelName => {
|
||||||
|
expect(channelName).to.contains(selectedChannelName);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
cy.get(CHANNEL_FORM_SELECTORS.confirmButton).click();
|
||||||
|
cy.getTextFromElement(DRAFT_ORDER_SELECTORS.salesChannel).then(
|
||||||
|
channelNameInDraftOrder => {
|
||||||
|
expect(channelName).to.contains(channelNameInDraftOrder);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
it("Draft order channel should be taken from global channel picker when changed", () => {
|
||||||
|
cy.visit(urlList.homePage);
|
||||||
|
selectChannelInHeader(otherChannel.name);
|
||||||
|
cy.visit(urlList.orders);
|
||||||
|
cy.get(ORDERS_SELECTORS.createOrder).click();
|
||||||
|
cy.getTextFromElement(CHANNEL_FORM_SELECTORS.channelSelect).then(
|
||||||
|
channelInSelect => {
|
||||||
|
expect(channelInSelect).to.be.eq(otherChannel.name);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
cy.get(CHANNEL_FORM_SELECTORS.confirmButton).click();
|
||||||
|
cy.getTextFromElement(DRAFT_ORDER_SELECTORS.salesChannel).then(
|
||||||
|
channelInDraftOrder => {
|
||||||
|
expect(channelInDraftOrder).to.be.eq(otherChannel.name);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
it("should create draft order with chosen channel", () => {
|
||||||
|
cy.visit(urlList.homePage);
|
||||||
|
selectChannelInHeader(defaultChannel.name);
|
||||||
|
cy.visit(urlList.orders);
|
||||||
|
cy.get(ORDERS_SELECTORS.createOrder).click();
|
||||||
|
cy.getTextFromElement(CHANNEL_FORM_SELECTORS.channelSelect).then(
|
||||||
|
channelInSelect => {
|
||||||
|
expect(channelInSelect).to.be.eq(defaultChannel.name);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
selectChannelInPicker(otherChannel.name);
|
||||||
|
cy.getTextFromElement(DRAFT_ORDER_SELECTORS.salesChannel).then(
|
||||||
|
channelInDraftOrder => {
|
||||||
|
expect(channelInDraftOrder).to.be.eq(otherChannel.name);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
101
cypress/integration/orders/draftOrders.js
Normal file
101
cypress/integration/orders/draftOrders.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
// <reference types="cypress" />
|
||||||
|
import faker from "faker";
|
||||||
|
|
||||||
|
import {
|
||||||
|
createCustomer,
|
||||||
|
deleteCustomersStartsWith
|
||||||
|
} from "../../apiRequests/Customer";
|
||||||
|
import { DRAFT_ORDERS_LIST_SELECTORS } from "../../elements/orders/draft-orders-list-selectors";
|
||||||
|
import { ORDERS_SELECTORS } from "../../elements/orders/orders-selectors";
|
||||||
|
import { selectChannelInPicker } from "../../steps/channelsSteps";
|
||||||
|
import { finalizeDraftOrder } from "../../steps/draftOrderSteps";
|
||||||
|
import { urlList } from "../../url/urlList";
|
||||||
|
import { getDefaultChannel } from "../../utils/channelsUtils";
|
||||||
|
import * as productsUtils from "../../utils/productsUtils";
|
||||||
|
import {
|
||||||
|
createShipping,
|
||||||
|
deleteShippingStartsWith
|
||||||
|
} from "../../utils/shippingUtils";
|
||||||
|
|
||||||
|
describe("Draft orders", () => {
|
||||||
|
const startsWith = "Cy-";
|
||||||
|
const randomName = startsWith + faker.random.number();
|
||||||
|
|
||||||
|
let defaultChannel;
|
||||||
|
let warehouse;
|
||||||
|
|
||||||
|
before(() => {
|
||||||
|
cy.clearSessionData().loginUserViaRequest();
|
||||||
|
deleteCustomersStartsWith(startsWith);
|
||||||
|
deleteShippingStartsWith(startsWith);
|
||||||
|
productsUtils.deleteProductsStartsWith(startsWith);
|
||||||
|
|
||||||
|
getDefaultChannel()
|
||||||
|
.then(channel => {
|
||||||
|
defaultChannel = channel;
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
cy.fixture("addresses");
|
||||||
|
})
|
||||||
|
.then(addresses => {
|
||||||
|
createCustomer(
|
||||||
|
`${randomName}@example.com`,
|
||||||
|
randomName,
|
||||||
|
addresses.plAddress,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
createShipping({
|
||||||
|
channelId: defaultChannel.id,
|
||||||
|
name: randomName,
|
||||||
|
address: addresses.plAddress
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then(({ warehouse: warehouseResp }) => {
|
||||||
|
warehouse = warehouseResp;
|
||||||
|
productsUtils.createTypeAttributeAndCategoryForProduct(randomName);
|
||||||
|
})
|
||||||
|
.then(
|
||||||
|
({
|
||||||
|
productType: productTypeResp,
|
||||||
|
attribute: attributeResp,
|
||||||
|
category: categoryResp
|
||||||
|
}) => {
|
||||||
|
productsUtils.createProductInChannel({
|
||||||
|
name: randomName,
|
||||||
|
channelId: defaultChannel.id,
|
||||||
|
warehouseId: warehouse.id,
|
||||||
|
productTypeId: productTypeResp.id,
|
||||||
|
attributeId: attributeResp.id,
|
||||||
|
categoryId: categoryResp.id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.clearSessionData().loginUserViaRequest();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should move draft order to orders", () => {
|
||||||
|
cy.visit(urlList.orders)
|
||||||
|
.get(ORDERS_SELECTORS.createOrder)
|
||||||
|
.click();
|
||||||
|
selectChannelInPicker(defaultChannel.name);
|
||||||
|
finalizeDraftOrder(randomName).then(draftOrderNumber => {
|
||||||
|
cy.visit(urlList.orders);
|
||||||
|
cy.contains(ORDERS_SELECTORS.orderRow, draftOrderNumber).should(
|
||||||
|
$order => {
|
||||||
|
/* eslint-disable no-unused-expressions */
|
||||||
|
expect($order).to.be.visible;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
cy.visit(urlList.draftOrders);
|
||||||
|
cy.contains(
|
||||||
|
DRAFT_ORDERS_LIST_SELECTORS.draftOrderRow,
|
||||||
|
draftOrderNumber
|
||||||
|
).should($draftOrder => {
|
||||||
|
expect($draftOrder).to.not.exist;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,5 +1,7 @@
|
||||||
import { ADD_CHANNEL_FORM_SELECTORS } from "../elements/channels/add-channel-form-selectors";
|
import { ADD_CHANNEL_FORM_SELECTORS } from "../elements/channels/add-channel-form-selectors";
|
||||||
|
import { CHANNEL_FORM_SELECTORS } from "../elements/channels/channel-form-selectors";
|
||||||
import { CHANNELS_SELECTORS } from "../elements/channels/channels-selectors";
|
import { CHANNELS_SELECTORS } from "../elements/channels/channels-selectors";
|
||||||
|
import { HEADER_SELECTORS } from "../elements/header/header-selectors";
|
||||||
|
|
||||||
export function createChannelByView(name, currency, slug = name) {
|
export function createChannelByView(name, currency, slug = name) {
|
||||||
cy.get(CHANNELS_SELECTORS.createChannelButton)
|
cy.get(CHANNELS_SELECTORS.createChannelButton)
|
||||||
|
@ -20,3 +22,17 @@ export function createChannelByView(name, currency, slug = name) {
|
||||||
});
|
});
|
||||||
cy.get(ADD_CHANNEL_FORM_SELECTORS.saveButton).click();
|
cy.get(ADD_CHANNEL_FORM_SELECTORS.saveButton).click();
|
||||||
}
|
}
|
||||||
|
export function selectChannelInPicker(channelName) {
|
||||||
|
cy.get(CHANNEL_FORM_SELECTORS.channelSelect).click();
|
||||||
|
cy.contains(CHANNEL_FORM_SELECTORS.channelOption, channelName)
|
||||||
|
.click()
|
||||||
|
.get(CHANNEL_FORM_SELECTORS.confirmButton)
|
||||||
|
.click();
|
||||||
|
}
|
||||||
|
export function selectChannelInHeader(channelName) {
|
||||||
|
cy.get(HEADER_SELECTORS.channelSelect)
|
||||||
|
.click()
|
||||||
|
.get(HEADER_SELECTORS.channelSelectList)
|
||||||
|
.contains(channelName)
|
||||||
|
.click();
|
||||||
|
}
|
||||||
|
|
39
cypress/steps/draftOrderSteps.js
Normal file
39
cypress/steps/draftOrderSteps.js
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
import { ASSIGN_PRODUCTS_SELECTORS } from "../elements/catalog/products/assign-products-selectors";
|
||||||
|
import { DRAFT_ORDER_SELECTORS } from "../elements/orders/draft-order-selectors";
|
||||||
|
import { SELECT_SHIPPING_METHOD_FORM } from "../elements/shipping/select-shipping-method-form";
|
||||||
|
|
||||||
|
export function finalizeDraftOrder(name) {
|
||||||
|
cy.get(DRAFT_ORDER_SELECTORS.addProducts)
|
||||||
|
.click()
|
||||||
|
.get(ASSIGN_PRODUCTS_SELECTORS.searchInput)
|
||||||
|
.type(name);
|
||||||
|
cy.contains(ASSIGN_PRODUCTS_SELECTORS.tableRow, name)
|
||||||
|
.find(ASSIGN_PRODUCTS_SELECTORS.checkbox)
|
||||||
|
.click()
|
||||||
|
.get(ASSIGN_PRODUCTS_SELECTORS.submitButton)
|
||||||
|
.click()
|
||||||
|
.get(DRAFT_ORDER_SELECTORS.editCustomerButton)
|
||||||
|
.click()
|
||||||
|
.get(DRAFT_ORDER_SELECTORS.selectCustomer)
|
||||||
|
.type(name);
|
||||||
|
cy.contains(DRAFT_ORDER_SELECTORS.selectCustomerOption, name)
|
||||||
|
.click()
|
||||||
|
.get(DRAFT_ORDER_SELECTORS.addShippingCarrierLink)
|
||||||
|
.click()
|
||||||
|
.get(SELECT_SHIPPING_METHOD_FORM.selectShippingMethod)
|
||||||
|
.click()
|
||||||
|
.get(SELECT_SHIPPING_METHOD_FORM.shippingMethodOption)
|
||||||
|
.first()
|
||||||
|
.click();
|
||||||
|
cy.addAliasToGraphRequest("OrderShippingMethodUpdate")
|
||||||
|
.get(SELECT_SHIPPING_METHOD_FORM.submitButton)
|
||||||
|
.click();
|
||||||
|
cy.wait("@OrderShippingMethodUpdate");
|
||||||
|
cy.getTextFromElement(DRAFT_ORDER_SELECTORS.pageHeader).as(
|
||||||
|
"draftOrderNumber"
|
||||||
|
);
|
||||||
|
cy.addAliasToGraphRequest("OrderDraftFinalize");
|
||||||
|
cy.get(DRAFT_ORDER_SELECTORS.finalizeButton).click();
|
||||||
|
cy.wait("@OrderDraftFinalize");
|
||||||
|
return cy.get("@draftOrderNumber");
|
||||||
|
}
|
3
cypress/support/elements/index.js
Normal file
3
cypress/support/elements/index.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Cypress.Commands.add("getTextFromElement", element =>
|
||||||
|
cy.get(element).invoke("text")
|
||||||
|
);
|
|
@ -1,6 +1,7 @@
|
||||||
import "./user";
|
import "./user";
|
||||||
import "./softAssertions";
|
import "./softAssertions";
|
||||||
import "./deleteElement/index.js";
|
import "./deleteElement/index.js";
|
||||||
|
import "./elements/index";
|
||||||
|
|
||||||
import { urlList } from "../url/urlList";
|
import { urlList } from "../url/urlList";
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ export const urlList = {
|
||||||
apiUri: Cypress.env("API_URI"),
|
apiUri: Cypress.env("API_URI"),
|
||||||
channels: "channels/",
|
channels: "channels/",
|
||||||
configuration: "configuration/",
|
configuration: "configuration/",
|
||||||
|
draftOrders: "orders/drafts/",
|
||||||
homePage: "/",
|
homePage: "/",
|
||||||
orders: "orders/",
|
orders: "orders/",
|
||||||
products: "products/",
|
products: "products/",
|
||||||
|
|
|
@ -51,15 +51,17 @@ interface ExtendedPageHeaderProps {
|
||||||
className?: string;
|
className?: string;
|
||||||
inline?: boolean;
|
inline?: boolean;
|
||||||
title?: React.ReactNode;
|
title?: React.ReactNode;
|
||||||
|
testId?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ExtendedPageHeader: React.FC<ExtendedPageHeaderProps> = props => {
|
const ExtendedPageHeader: React.FC<ExtendedPageHeaderProps> = props => {
|
||||||
const { children, className, inline, title } = props;
|
const { children, className, inline, title, testId } = props;
|
||||||
|
|
||||||
const classes = useStyles(props);
|
const classes = useStyles(props);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
data-test-id={testId}
|
||||||
className={classNames(classes.root, className, {
|
className={classNames(classes.root, className, {
|
||||||
[classes.block]: !inline
|
[classes.block]: !inline
|
||||||
})}
|
})}
|
||||||
|
|
|
@ -38,6 +38,7 @@ const PageHeader: React.FC<PageHeaderProps> = props => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ExtendedPageHeader
|
<ExtendedPageHeader
|
||||||
|
testId="page-header"
|
||||||
className={className}
|
className={className}
|
||||||
inline={inline}
|
inline={inline}
|
||||||
title={
|
title={
|
||||||
|
|
|
@ -21,7 +21,7 @@ export const DraftOrderChannelSectionCard: React.FC<DraftOrderChannelSectionCard
|
||||||
description: "section header"
|
description: "section header"
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<CardContent>
|
<CardContent data-test-id="sales-channel">
|
||||||
{!channelName ? <Skeleton /> : <Typography>{channelName}</Typography>}
|
{!channelName ? <Skeleton /> : <Typography>{channelName}</Typography>}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
|
@ -109,6 +109,7 @@ const OrderCustomer: React.FC<OrderCustomerProps> = props => {
|
||||||
requiredPermissions={[PermissionEnum.MANAGE_USERS]}
|
requiredPermissions={[PermissionEnum.MANAGE_USERS]}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
|
data-test-id="edit-customer"
|
||||||
color="primary"
|
color="primary"
|
||||||
variant="text"
|
variant="text"
|
||||||
disabled={!onCustomerEdit}
|
disabled={!onCustomerEdit}
|
||||||
|
@ -146,6 +147,7 @@ const OrderCustomer: React.FC<OrderCustomerProps> = props => {
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<SingleAutocompleteSelectField
|
<SingleAutocompleteSelectField
|
||||||
|
data-test-id="select-customer"
|
||||||
allowCustomValues={true}
|
allowCustomValues={true}
|
||||||
choices={userChoices}
|
choices={userChoices}
|
||||||
displayValue={userDisplayName}
|
displayValue={userDisplayName}
|
||||||
|
|
|
@ -171,7 +171,14 @@ const OrderDraftDetailsSummary: React.FC<OrderDraftDetailsSummaryProps> = props
|
||||||
const shippingCarrierBase = intl.formatMessage(messages.addShippingCarrier);
|
const shippingCarrierBase = intl.formatMessage(messages.addShippingCarrier);
|
||||||
|
|
||||||
if (!!shippingAddress) {
|
if (!!shippingAddress) {
|
||||||
return <Link onClick={onShippingMethodEdit}>{shippingCarrierBase}</Link>;
|
return (
|
||||||
|
<Link
|
||||||
|
onClick={onShippingMethodEdit}
|
||||||
|
data-test-id="add-shipping-carrier"
|
||||||
|
>
|
||||||
|
{shippingCarrierBase}
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const addCustomerInfo = intl.formatMessage(messages.addCustomerInfo);
|
const addCustomerInfo = intl.formatMessage(messages.addCustomerInfo);
|
||||||
|
|
|
@ -170,6 +170,7 @@ export const OrderDraftList: React.FC<OrderDraftListProps> = props => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableRow
|
<TableRow
|
||||||
|
data-test-id="draft-order-table-row"
|
||||||
hover={!!order}
|
hover={!!order}
|
||||||
className={!!order ? classes.link : undefined}
|
className={!!order ? classes.link : undefined}
|
||||||
onClick={order ? onRowClick(order.id) : undefined}
|
onClick={order ? onRowClick(order.id) : undefined}
|
||||||
|
|
|
@ -191,6 +191,7 @@ export const OrderList: React.FC<OrderListProps> = props => {
|
||||||
orderList,
|
orderList,
|
||||||
order => (
|
order => (
|
||||||
<TableRow
|
<TableRow
|
||||||
|
data-test-id="order-table-row"
|
||||||
hover={!!order}
|
hover={!!order}
|
||||||
className={!!order ? classes.link : undefined}
|
className={!!order ? classes.link : undefined}
|
||||||
onClick={order ? onRowClick(order.id) : undefined}
|
onClick={order ? onRowClick(order.id) : undefined}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue