@labdigital/commercetools-mock 2.57.1 → 2.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +207 -133
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/repositories/cart/actions.ts +87 -168
- package/src/repositories/cart/index.test.ts +376 -2
- package/src/repositories/cart/index.ts +203 -3
- package/src/repositories/order/actions.ts +81 -0
- package/src/repositories/order/index.ts +1 -0
- package/src/services/cart.test.ts +170 -0
- package/src/services/order.test.ts +236 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
CustomLineItemReturnItem,
|
|
3
|
+
GeneralError,
|
|
3
4
|
LineItemReturnItem,
|
|
4
5
|
Order,
|
|
5
6
|
OrderAddPaymentAction,
|
|
@@ -9,10 +10,13 @@ import type {
|
|
|
9
10
|
OrderChangeShipmentStateAction,
|
|
10
11
|
OrderSetBillingAddressAction,
|
|
11
12
|
OrderSetCustomFieldAction,
|
|
13
|
+
OrderSetCustomLineItemCustomTypeAction,
|
|
12
14
|
OrderSetCustomTypeAction,
|
|
13
15
|
OrderSetCustomerEmailAction,
|
|
14
16
|
OrderSetCustomerIdAction,
|
|
15
17
|
OrderSetDeliveryCustomFieldAction,
|
|
18
|
+
OrderSetLineItemCustomFieldAction,
|
|
19
|
+
OrderSetLineItemCustomTypeAction,
|
|
16
20
|
OrderSetLocaleAction,
|
|
17
21
|
OrderSetOrderNumberAction,
|
|
18
22
|
OrderSetParcelCustomFieldAction,
|
|
@@ -27,6 +31,7 @@ import type {
|
|
|
27
31
|
Store,
|
|
28
32
|
SyncInfo,
|
|
29
33
|
} from "@commercetools/platform-sdk";
|
|
34
|
+
import { CommercetoolsError } from "~src/exceptions";
|
|
30
35
|
import { getBaseResourceProperties } from "~src/helpers";
|
|
31
36
|
import type { Writable } from "~src/types";
|
|
32
37
|
import type { RepositoryContext, UpdateHandlerInterface } from "../abstract";
|
|
@@ -205,6 +210,82 @@ export class OrderUpdateHandler
|
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
212
|
|
|
213
|
+
setLineItemCustomField(
|
|
214
|
+
context: RepositoryContext,
|
|
215
|
+
resource: Order,
|
|
216
|
+
{
|
|
217
|
+
lineItemId,
|
|
218
|
+
lineItemKey,
|
|
219
|
+
name,
|
|
220
|
+
value,
|
|
221
|
+
action,
|
|
222
|
+
}: OrderSetLineItemCustomFieldAction,
|
|
223
|
+
) {
|
|
224
|
+
const lineItem = resource.lineItems.find(
|
|
225
|
+
(x) =>
|
|
226
|
+
(lineItemId && x.id === lineItemId) ||
|
|
227
|
+
(lineItemKey && x.key === lineItemKey),
|
|
228
|
+
);
|
|
229
|
+
|
|
230
|
+
if (!lineItem) {
|
|
231
|
+
// Check if line item is found
|
|
232
|
+
throw new CommercetoolsError<GeneralError>({
|
|
233
|
+
code: "General",
|
|
234
|
+
message: lineItemKey
|
|
235
|
+
? `A line item with key '${lineItemKey}' not found.`
|
|
236
|
+
: `A line item with ID '${lineItemId}' not found.`,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
if (!lineItem.custom) {
|
|
241
|
+
throw new Error("Resource has no custom field");
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
lineItem.custom.fields[name] = value;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
setLineItemCustomType(
|
|
248
|
+
context: RepositoryContext,
|
|
249
|
+
resource: Writable<Order>,
|
|
250
|
+
{ lineItemId, lineItemKey, type, fields }: OrderSetLineItemCustomTypeAction,
|
|
251
|
+
) {
|
|
252
|
+
const lineItem = resource.lineItems.find(
|
|
253
|
+
(x) =>
|
|
254
|
+
(lineItemId && x.id === lineItemId) ||
|
|
255
|
+
(lineItemKey && x.key === lineItemKey),
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
if (!lineItem) {
|
|
259
|
+
// Check if line item is found
|
|
260
|
+
throw new CommercetoolsError<GeneralError>({
|
|
261
|
+
code: "General",
|
|
262
|
+
message: lineItemKey
|
|
263
|
+
? `A line item with key '${lineItemKey}' not found.`
|
|
264
|
+
: `A line item with ID '${lineItemId}' not found.`,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if (!type) {
|
|
269
|
+
lineItem.custom = undefined;
|
|
270
|
+
} else {
|
|
271
|
+
const resolvedType = this._storage.getByResourceIdentifier(
|
|
272
|
+
context.projectKey,
|
|
273
|
+
type,
|
|
274
|
+
);
|
|
275
|
+
if (!resolvedType) {
|
|
276
|
+
throw new Error(`Type ${type} not found`);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
lineItem.custom = {
|
|
280
|
+
type: {
|
|
281
|
+
typeId: "type",
|
|
282
|
+
id: resolvedType.id,
|
|
283
|
+
},
|
|
284
|
+
fields: fields || {},
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
208
289
|
setLocale(
|
|
209
290
|
context: RepositoryContext,
|
|
210
291
|
resource: Writable<Order>,
|
|
@@ -711,6 +711,176 @@ describe("Cart Update Actions", () => {
|
|
|
711
711
|
]);
|
|
712
712
|
});
|
|
713
713
|
|
|
714
|
+
test("setLineItemCustomField", async () => {
|
|
715
|
+
const product = await supertest(ctMock.app)
|
|
716
|
+
.post("/dummy/products")
|
|
717
|
+
.send(productDraft)
|
|
718
|
+
.then((x) => x.body);
|
|
719
|
+
|
|
720
|
+
assert(product, "product not created");
|
|
721
|
+
|
|
722
|
+
const type = await supertest(ctMock.app)
|
|
723
|
+
.post("/dummy/types")
|
|
724
|
+
.send({
|
|
725
|
+
key: "my-type",
|
|
726
|
+
name: {
|
|
727
|
+
en: "My Type",
|
|
728
|
+
},
|
|
729
|
+
description: {
|
|
730
|
+
en: "My Type Description",
|
|
731
|
+
},
|
|
732
|
+
fieldDefinitions: [
|
|
733
|
+
{
|
|
734
|
+
name: "foo",
|
|
735
|
+
label: {
|
|
736
|
+
en: "foo",
|
|
737
|
+
},
|
|
738
|
+
required: false,
|
|
739
|
+
type: {
|
|
740
|
+
name: "String",
|
|
741
|
+
},
|
|
742
|
+
inputHint: "SingleLine",
|
|
743
|
+
},
|
|
744
|
+
],
|
|
745
|
+
})
|
|
746
|
+
.then((x) => x.body);
|
|
747
|
+
|
|
748
|
+
assert(type, "type not created");
|
|
749
|
+
|
|
750
|
+
const myCart = await supertest(ctMock.app)
|
|
751
|
+
.post("/dummy/carts")
|
|
752
|
+
.send({
|
|
753
|
+
currency: "EUR",
|
|
754
|
+
lineItems: [
|
|
755
|
+
{
|
|
756
|
+
sku: product.masterData.current.masterVariant.sku,
|
|
757
|
+
quantity: 1,
|
|
758
|
+
custom: {
|
|
759
|
+
type: {
|
|
760
|
+
typeId: "type",
|
|
761
|
+
key: "my-type",
|
|
762
|
+
},
|
|
763
|
+
fields: {},
|
|
764
|
+
},
|
|
765
|
+
},
|
|
766
|
+
],
|
|
767
|
+
})
|
|
768
|
+
.then((x) => x.body);
|
|
769
|
+
|
|
770
|
+
const lineItem = myCart.lineItems[0];
|
|
771
|
+
assert(lineItem, "lineItem not created");
|
|
772
|
+
|
|
773
|
+
const response = await supertest(ctMock.app)
|
|
774
|
+
.post(`/dummy/carts/${myCart.id}`)
|
|
775
|
+
.send({
|
|
776
|
+
version: myCart.version,
|
|
777
|
+
actions: [
|
|
778
|
+
{
|
|
779
|
+
action: "setLineItemCustomField",
|
|
780
|
+
lineItemId: lineItem.id,
|
|
781
|
+
name: "foo",
|
|
782
|
+
value: "bar",
|
|
783
|
+
},
|
|
784
|
+
],
|
|
785
|
+
});
|
|
786
|
+
|
|
787
|
+
expect(response.status).toBe(200);
|
|
788
|
+
expect(response.body.version).toBe(2);
|
|
789
|
+
expect(response.body.lineItems).toMatchObject([
|
|
790
|
+
{
|
|
791
|
+
id: lineItem.id,
|
|
792
|
+
custom: {
|
|
793
|
+
fields: {
|
|
794
|
+
foo: "bar",
|
|
795
|
+
},
|
|
796
|
+
},
|
|
797
|
+
},
|
|
798
|
+
]);
|
|
799
|
+
});
|
|
800
|
+
|
|
801
|
+
test("setLineItemCustomType", async () => {
|
|
802
|
+
const product = await supertest(ctMock.app)
|
|
803
|
+
.post("/dummy/products")
|
|
804
|
+
.send(productDraft)
|
|
805
|
+
.then((x) => x.body);
|
|
806
|
+
|
|
807
|
+
assert(product, "product not created");
|
|
808
|
+
|
|
809
|
+
const type = await supertest(ctMock.app)
|
|
810
|
+
.post("/dummy/types")
|
|
811
|
+
.send({
|
|
812
|
+
key: "my-type",
|
|
813
|
+
name: {
|
|
814
|
+
en: "My Type",
|
|
815
|
+
},
|
|
816
|
+
description: {
|
|
817
|
+
en: "My Type Description",
|
|
818
|
+
},
|
|
819
|
+
fieldDefinitions: [
|
|
820
|
+
{
|
|
821
|
+
name: "foo",
|
|
822
|
+
label: {
|
|
823
|
+
en: "foo",
|
|
824
|
+
},
|
|
825
|
+
required: false,
|
|
826
|
+
type: {
|
|
827
|
+
name: "String",
|
|
828
|
+
},
|
|
829
|
+
inputHint: "SingleLine",
|
|
830
|
+
},
|
|
831
|
+
],
|
|
832
|
+
})
|
|
833
|
+
.then((x) => x.body);
|
|
834
|
+
|
|
835
|
+
assert(type, "type not created");
|
|
836
|
+
|
|
837
|
+
const myCart = await supertest(ctMock.app)
|
|
838
|
+
.post("/dummy/carts")
|
|
839
|
+
.send({
|
|
840
|
+
currency: "EUR",
|
|
841
|
+
lineItems: [
|
|
842
|
+
{
|
|
843
|
+
sku: product.masterData.current.masterVariant.sku,
|
|
844
|
+
quantity: 1,
|
|
845
|
+
},
|
|
846
|
+
],
|
|
847
|
+
})
|
|
848
|
+
.then((x) => x.body);
|
|
849
|
+
|
|
850
|
+
const lineItem = myCart.lineItems[0];
|
|
851
|
+
assert(lineItem, "lineItem not created");
|
|
852
|
+
|
|
853
|
+
const response = await supertest(ctMock.app)
|
|
854
|
+
.post(`/dummy/carts/${myCart.id}`)
|
|
855
|
+
.send({
|
|
856
|
+
version: myCart.version,
|
|
857
|
+
actions: [
|
|
858
|
+
{
|
|
859
|
+
action: "setLineItemCustomType",
|
|
860
|
+
lineItemId: lineItem.id,
|
|
861
|
+
type: {
|
|
862
|
+
typeId: "type",
|
|
863
|
+
key: "my-type",
|
|
864
|
+
},
|
|
865
|
+
},
|
|
866
|
+
],
|
|
867
|
+
});
|
|
868
|
+
|
|
869
|
+
expect(response.status).toBe(200);
|
|
870
|
+
expect(response.body.version).toBe(2);
|
|
871
|
+
expect(response.body.lineItems).toMatchObject([
|
|
872
|
+
{
|
|
873
|
+
id: lineItem.id,
|
|
874
|
+
custom: {
|
|
875
|
+
type: {
|
|
876
|
+
typeId: "type",
|
|
877
|
+
id: type.id,
|
|
878
|
+
},
|
|
879
|
+
},
|
|
880
|
+
},
|
|
881
|
+
]);
|
|
882
|
+
});
|
|
883
|
+
|
|
714
884
|
test("setCustomerEmail", async () => {
|
|
715
885
|
assert(cart, "cart not created");
|
|
716
886
|
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
CentPrecisionMoney,
|
|
4
|
+
Order,
|
|
5
|
+
Payment,
|
|
6
|
+
State,
|
|
7
|
+
} from "@commercetools/platform-sdk";
|
|
3
8
|
import supertest from "supertest";
|
|
4
9
|
import { afterEach, beforeEach, describe, expect, test } from "vitest";
|
|
5
10
|
import { generateRandomString } from "~src/helpers";
|
|
@@ -611,6 +616,236 @@ describe("Order Update Actions", () => {
|
|
|
611
616
|
).toBe("dhl");
|
|
612
617
|
});
|
|
613
618
|
|
|
619
|
+
test("setLineItemCustomField", async () => {
|
|
620
|
+
const order: Order = {
|
|
621
|
+
...getBaseResourceProperties(),
|
|
622
|
+
version: 1,
|
|
623
|
+
customLineItems: [],
|
|
624
|
+
directDiscounts: [],
|
|
625
|
+
discountCodes: [],
|
|
626
|
+
lineItems: [
|
|
627
|
+
{
|
|
628
|
+
id: "d70b14c8-72cf-4cab-82ba-6339cebe1e79",
|
|
629
|
+
productId: "06028a97-d622-47ac-a194-a3d90baa2b3c",
|
|
630
|
+
productSlug: { "nl-NL": "test-product" },
|
|
631
|
+
productType: { typeId: "product-type", id: "some-uuid" },
|
|
632
|
+
name: { "nl-NL": "test product" },
|
|
633
|
+
custom: {
|
|
634
|
+
type: {
|
|
635
|
+
typeId: "type",
|
|
636
|
+
id: "a493b7bb-d415-450c-b421-e128a8b26569",
|
|
637
|
+
},
|
|
638
|
+
fields: {},
|
|
639
|
+
},
|
|
640
|
+
variant: {
|
|
641
|
+
id: 1,
|
|
642
|
+
sku: "1337",
|
|
643
|
+
attributes: [{ name: "test", value: "test" }],
|
|
644
|
+
prices: [],
|
|
645
|
+
assets: [],
|
|
646
|
+
images: [],
|
|
647
|
+
},
|
|
648
|
+
price: {
|
|
649
|
+
id: "2f59a6c9-6a86-48d3-87f9-fabb3b12fd93",
|
|
650
|
+
value: {
|
|
651
|
+
type: "centPrecision",
|
|
652
|
+
centAmount: 14900,
|
|
653
|
+
currencyCode: "EUR",
|
|
654
|
+
fractionDigits: 2,
|
|
655
|
+
},
|
|
656
|
+
},
|
|
657
|
+
totalPrice: {
|
|
658
|
+
type: "centPrecision",
|
|
659
|
+
currencyCode: "EUR",
|
|
660
|
+
fractionDigits: 2,
|
|
661
|
+
centAmount: 14900,
|
|
662
|
+
},
|
|
663
|
+
taxedPricePortions: [],
|
|
664
|
+
perMethodTaxRate: [],
|
|
665
|
+
quantity: 1,
|
|
666
|
+
discountedPricePerQuantity: [],
|
|
667
|
+
lineItemMode: "Standard",
|
|
668
|
+
priceMode: "Platform",
|
|
669
|
+
state: [],
|
|
670
|
+
},
|
|
671
|
+
],
|
|
672
|
+
orderState: "Open",
|
|
673
|
+
origin: "Customer",
|
|
674
|
+
refusedGifts: [],
|
|
675
|
+
shipping: [],
|
|
676
|
+
shippingMode: "Single",
|
|
677
|
+
syncInfo: [],
|
|
678
|
+
taxCalculationMode: "LineItemLevel",
|
|
679
|
+
taxMode: "Platform",
|
|
680
|
+
taxRoundingMode: "HalfEven",
|
|
681
|
+
totalPrice: {
|
|
682
|
+
type: "centPrecision",
|
|
683
|
+
centAmount: 14900,
|
|
684
|
+
currencyCode: "EUR",
|
|
685
|
+
fractionDigits: 0,
|
|
686
|
+
},
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
ctMock.project("dummy").add("order", order);
|
|
690
|
+
|
|
691
|
+
const lineItem = order.lineItems[0];
|
|
692
|
+
assert(lineItem, "lineItem not created");
|
|
693
|
+
|
|
694
|
+
const response = await supertest(ctMock.app)
|
|
695
|
+
.post(`/dummy/orders/${order.id}`)
|
|
696
|
+
.send({
|
|
697
|
+
version: order.version,
|
|
698
|
+
actions: [
|
|
699
|
+
{
|
|
700
|
+
action: "setLineItemCustomField",
|
|
701
|
+
lineItemId: lineItem.id,
|
|
702
|
+
name: "foo",
|
|
703
|
+
value: "bar",
|
|
704
|
+
},
|
|
705
|
+
],
|
|
706
|
+
});
|
|
707
|
+
|
|
708
|
+
expect(response.status).toBe(200);
|
|
709
|
+
expect(response.body.version).toBe(2);
|
|
710
|
+
expect(response.body.lineItems).toMatchObject([
|
|
711
|
+
{
|
|
712
|
+
id: lineItem.id,
|
|
713
|
+
custom: {
|
|
714
|
+
fields: {
|
|
715
|
+
foo: "bar",
|
|
716
|
+
},
|
|
717
|
+
},
|
|
718
|
+
},
|
|
719
|
+
]);
|
|
720
|
+
});
|
|
721
|
+
|
|
722
|
+
test("setLineItemCustomType", async () => {
|
|
723
|
+
const order: Order = {
|
|
724
|
+
...getBaseResourceProperties(),
|
|
725
|
+
version: 1,
|
|
726
|
+
customLineItems: [],
|
|
727
|
+
directDiscounts: [],
|
|
728
|
+
discountCodes: [],
|
|
729
|
+
lineItems: [
|
|
730
|
+
{
|
|
731
|
+
id: "d70b14c8-72cf-4cab-82ba-6339cebe1e79",
|
|
732
|
+
productId: "06028a97-d622-47ac-a194-a3d90baa2b3c",
|
|
733
|
+
productSlug: { "nl-NL": "test-product" },
|
|
734
|
+
productType: { typeId: "product-type", id: "some-uuid" },
|
|
735
|
+
name: { "nl-NL": "test product" },
|
|
736
|
+
variant: {
|
|
737
|
+
id: 1,
|
|
738
|
+
sku: "1337",
|
|
739
|
+
attributes: [{ name: "test", value: "test" }],
|
|
740
|
+
prices: [],
|
|
741
|
+
assets: [],
|
|
742
|
+
images: [],
|
|
743
|
+
},
|
|
744
|
+
price: {
|
|
745
|
+
id: "2f59a6c9-6a86-48d3-87f9-fabb3b12fd93",
|
|
746
|
+
value: {
|
|
747
|
+
type: "centPrecision",
|
|
748
|
+
centAmount: 14900,
|
|
749
|
+
currencyCode: "EUR",
|
|
750
|
+
fractionDigits: 2,
|
|
751
|
+
},
|
|
752
|
+
},
|
|
753
|
+
totalPrice: {
|
|
754
|
+
type: "centPrecision",
|
|
755
|
+
currencyCode: "EUR",
|
|
756
|
+
fractionDigits: 2,
|
|
757
|
+
centAmount: 14900,
|
|
758
|
+
},
|
|
759
|
+
taxedPricePortions: [],
|
|
760
|
+
perMethodTaxRate: [],
|
|
761
|
+
quantity: 1,
|
|
762
|
+
discountedPricePerQuantity: [],
|
|
763
|
+
lineItemMode: "Standard",
|
|
764
|
+
priceMode: "Platform",
|
|
765
|
+
state: [],
|
|
766
|
+
},
|
|
767
|
+
],
|
|
768
|
+
orderState: "Open",
|
|
769
|
+
origin: "Customer",
|
|
770
|
+
refusedGifts: [],
|
|
771
|
+
shipping: [],
|
|
772
|
+
shippingMode: "Single",
|
|
773
|
+
syncInfo: [],
|
|
774
|
+
taxCalculationMode: "LineItemLevel",
|
|
775
|
+
taxMode: "Platform",
|
|
776
|
+
taxRoundingMode: "HalfEven",
|
|
777
|
+
totalPrice: {
|
|
778
|
+
type: "centPrecision",
|
|
779
|
+
centAmount: 14900,
|
|
780
|
+
currencyCode: "EUR",
|
|
781
|
+
fractionDigits: 0,
|
|
782
|
+
},
|
|
783
|
+
};
|
|
784
|
+
|
|
785
|
+
ctMock.project("dummy").add("order", order);
|
|
786
|
+
|
|
787
|
+
const type = await supertest(ctMock.app)
|
|
788
|
+
.post("/dummy/types")
|
|
789
|
+
.send({
|
|
790
|
+
key: "my-type",
|
|
791
|
+
name: {
|
|
792
|
+
en: "My Type",
|
|
793
|
+
},
|
|
794
|
+
description: {
|
|
795
|
+
en: "My Type Description",
|
|
796
|
+
},
|
|
797
|
+
fieldDefinitions: [
|
|
798
|
+
{
|
|
799
|
+
name: "foo",
|
|
800
|
+
label: {
|
|
801
|
+
en: "foo",
|
|
802
|
+
},
|
|
803
|
+
required: false,
|
|
804
|
+
type: {
|
|
805
|
+
name: "String",
|
|
806
|
+
},
|
|
807
|
+
inputHint: "SingleLine",
|
|
808
|
+
},
|
|
809
|
+
],
|
|
810
|
+
})
|
|
811
|
+
.then((x) => x.body);
|
|
812
|
+
|
|
813
|
+
assert(type, "type not created");
|
|
814
|
+
|
|
815
|
+
const lineItem = order.lineItems[0];
|
|
816
|
+
assert(lineItem, "lineItem not created");
|
|
817
|
+
|
|
818
|
+
const response = await supertest(ctMock.app)
|
|
819
|
+
.post(`/dummy/orders/${order.id}`)
|
|
820
|
+
.send({
|
|
821
|
+
version: order.version,
|
|
822
|
+
actions: [
|
|
823
|
+
{
|
|
824
|
+
action: "setLineItemCustomType",
|
|
825
|
+
lineItemId: lineItem.id,
|
|
826
|
+
type: {
|
|
827
|
+
typeId: "type",
|
|
828
|
+
id: type.id,
|
|
829
|
+
},
|
|
830
|
+
},
|
|
831
|
+
],
|
|
832
|
+
});
|
|
833
|
+
|
|
834
|
+
expect(response.status).toBe(200);
|
|
835
|
+
expect(response.body.version).toBe(2);
|
|
836
|
+
expect(response.body.lineItems).toMatchObject([
|
|
837
|
+
{
|
|
838
|
+
id: lineItem.id,
|
|
839
|
+
custom: {
|
|
840
|
+
type: {
|
|
841
|
+
typeId: "type",
|
|
842
|
+
id: type.id,
|
|
843
|
+
},
|
|
844
|
+
},
|
|
845
|
+
},
|
|
846
|
+
]);
|
|
847
|
+
});
|
|
848
|
+
|
|
614
849
|
test("setParcelCustomField", async () => {
|
|
615
850
|
const order: Order = {
|
|
616
851
|
...getBaseResourceProperties(),
|