@labdigital/commercetools-mock 2.17.1 → 2.18.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.cjs +4186 -3974
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +266 -413
- package/dist/index.d.ts +266 -413
- package/dist/index.js +4186 -3974
- package/dist/index.js.map +1 -1
- package/package.json +44 -46
- package/src/constants.ts +2 -2
- package/src/ctMock.test.ts +11 -11
- package/src/ctMock.ts +141 -127
- package/src/deprecation.ts +8 -0
- package/src/exceptions.ts +17 -15
- package/src/helpers.ts +32 -32
- package/src/index.test.ts +128 -128
- package/src/index.ts +3 -3
- package/src/lib/expandParser.ts +13 -13
- package/src/lib/haversine.test.ts +9 -9
- package/src/lib/haversine.ts +11 -11
- package/src/lib/masking.ts +11 -11
- package/src/lib/parser.ts +2 -2
- package/src/lib/password.ts +23 -3
- package/src/lib/predicateParser.test.ts +185 -183
- package/src/lib/predicateParser.ts +234 -234
- package/src/lib/projectionSearchFilter.test.ts +103 -101
- package/src/lib/projectionSearchFilter.ts +152 -150
- package/src/lib/proxy.ts +5 -5
- package/src/oauth/errors.ts +4 -4
- package/src/oauth/helpers.ts +6 -6
- package/src/oauth/server.test.ts +86 -86
- package/src/oauth/server.ts +158 -144
- package/src/oauth/store.ts +44 -43
- package/src/priceSelector.test.ts +35 -35
- package/src/priceSelector.ts +30 -30
- package/src/product-projection-search.ts +136 -134
- package/src/projectAPI.test.ts +7 -7
- package/src/projectAPI.ts +24 -22
- package/src/repositories/abstract.ts +168 -116
- package/src/repositories/associate-role.ts +90 -77
- package/src/repositories/attribute-group.ts +51 -40
- package/src/repositories/business-unit.ts +168 -148
- package/src/repositories/cart/actions.ts +489 -0
- package/src/repositories/cart/helpers.ts +30 -0
- package/src/repositories/cart/index.ts +180 -0
- package/src/repositories/cart-discount/actions.ts +148 -0
- package/src/repositories/cart-discount/index.ts +86 -0
- package/src/repositories/category/actions.ts +231 -0
- package/src/repositories/category/index.ts +52 -0
- package/src/repositories/channel.ts +88 -90
- package/src/repositories/custom-object.ts +46 -45
- package/src/repositories/customer/actions.ts +165 -0
- package/src/repositories/customer/index.ts +79 -0
- package/src/repositories/customer-group.ts +66 -55
- package/src/repositories/discount-code/actions.ts +149 -0
- package/src/repositories/discount-code/index.ts +50 -0
- package/src/repositories/errors.ts +10 -10
- package/src/repositories/extension.ts +64 -62
- package/src/repositories/helpers.ts +117 -118
- package/src/repositories/index.ts +80 -79
- package/src/repositories/inventory-entry/actions.ts +84 -0
- package/src/repositories/inventory-entry/index.ts +44 -0
- package/src/repositories/my-customer.ts +114 -0
- package/src/repositories/my-order.ts +8 -8
- package/src/repositories/order/actions.ts +281 -0
- package/src/repositories/{order.test.ts → order/index.test.ts} +77 -77
- package/src/repositories/order/index.ts +260 -0
- package/src/repositories/order-edit.ts +10 -23
- package/src/repositories/payment/actions.ts +305 -0
- package/src/repositories/payment/helpers.ts +17 -0
- package/src/repositories/payment/index.ts +56 -0
- package/src/repositories/product/actions.ts +943 -0
- package/src/repositories/product/helpers.ts +98 -0
- package/src/repositories/product/index.ts +130 -0
- package/src/repositories/product-discount.ts +127 -117
- package/src/repositories/product-projection.ts +56 -62
- package/src/repositories/product-selection.ts +31 -28
- package/src/repositories/product-type.ts +136 -134
- package/src/repositories/project.ts +133 -118
- package/src/repositories/quote-request.ts +7 -19
- package/src/repositories/quote.ts +7 -22
- package/src/repositories/review.ts +13 -26
- package/src/repositories/shipping-method/actions.ts +198 -0
- package/src/repositories/shipping-method/helpers.ts +10 -0
- package/src/repositories/shipping-method/index.ts +138 -0
- package/src/repositories/shopping-list/actions.ts +295 -0
- package/src/repositories/shopping-list/index.ts +122 -0
- package/src/repositories/staged-quote.ts +7 -20
- package/src/repositories/standalone-price.ts +57 -44
- package/src/repositories/state.ts +113 -68
- package/src/repositories/store.ts +106 -94
- package/src/repositories/subscription.ts +46 -22
- package/src/repositories/tax-category/actions.ts +94 -0
- package/src/repositories/tax-category/helpers.ts +8 -0
- package/src/repositories/tax-category/index.ts +25 -0
- package/src/repositories/type/actions.ts +162 -0
- package/src/repositories/type/index.ts +24 -0
- package/src/repositories/zone.ts +62 -58
- package/src/server.ts +9 -9
- package/src/services/abstract.ts +75 -72
- package/src/services/associate-roles.test.ts +27 -27
- package/src/services/associate-roles.ts +7 -7
- package/src/services/attribute-group.ts +7 -7
- package/src/services/business-units.test.ts +28 -28
- package/src/services/business-units.ts +7 -7
- package/src/services/cart-discount.test.ts +199 -199
- package/src/services/cart-discount.ts +7 -7
- package/src/services/cart.test.ts +261 -261
- package/src/services/cart.ts +22 -21
- package/src/services/category.test.ts +121 -121
- package/src/services/category.ts +7 -7
- package/src/services/channel.ts +7 -7
- package/src/services/custom-object.test.ts +130 -130
- package/src/services/custom-object.ts +34 -31
- package/src/services/customer-group.ts +7 -7
- package/src/services/customer.test.ts +205 -205
- package/src/services/customer.ts +23 -36
- package/src/services/discount-code.ts +7 -7
- package/src/services/extension.ts +7 -7
- package/src/services/index.ts +85 -81
- package/src/services/inventory-entry.test.ts +106 -106
- package/src/services/inventory-entry.ts +7 -7
- package/src/services/my-cart.test.ts +56 -56
- package/src/services/my-cart.ts +20 -20
- package/src/services/my-customer.test.ts +155 -104
- package/src/services/my-customer.ts +61 -75
- package/src/services/my-order.ts +16 -16
- package/src/services/my-payment.test.ts +40 -40
- package/src/services/my-payment.ts +7 -7
- package/src/services/my-shopping-list.ts +7 -7
- package/src/services/order.test.ts +243 -243
- package/src/services/order.ts +23 -18
- package/src/services/payment.test.ts +40 -40
- package/src/services/payment.ts +7 -7
- package/src/services/product-discount.ts +7 -7
- package/src/services/product-projection.test.ts +190 -190
- package/src/services/product-projection.ts +34 -32
- package/src/services/product-selection.test.ts +19 -19
- package/src/services/product-selection.ts +7 -7
- package/src/services/product-type.test.ts +38 -38
- package/src/services/product-type.ts +7 -7
- package/src/services/product.test.ts +658 -656
- package/src/services/product.ts +7 -7
- package/src/services/project.test.ts +24 -24
- package/src/services/project.ts +17 -17
- package/src/services/reviews.ts +7 -7
- package/src/services/shipping-method.test.ts +78 -78
- package/src/services/shipping-method.ts +16 -16
- package/src/services/shopping-list.test.ts +170 -170
- package/src/services/shopping-list.ts +7 -7
- package/src/services/standalone-price.test.ts +112 -112
- package/src/services/standalone-price.ts +7 -7
- package/src/services/state.test.ts +30 -30
- package/src/services/state.ts +7 -7
- package/src/services/store.test.ts +40 -40
- package/src/services/store.ts +7 -7
- package/src/services/subscription.ts +7 -7
- package/src/services/tax-category.test.ts +43 -43
- package/src/services/tax-category.ts +7 -7
- package/src/services/type.ts +7 -7
- package/src/services/zone.ts +7 -7
- package/src/shippingCalculator.test.ts +43 -43
- package/src/shippingCalculator.ts +23 -23
- package/src/storage/abstract.ts +36 -34
- package/src/storage/in-memory.ts +237 -233
- package/src/storage/index.ts +2 -2
- package/src/types.ts +91 -91
- package/src/repositories/cart-discount.ts +0 -219
- package/src/repositories/cart.ts +0 -659
- package/src/repositories/category.ts +0 -256
- package/src/repositories/customer.ts +0 -228
- package/src/repositories/discount-code.ts +0 -181
- package/src/repositories/inventory-entry.ts +0 -109
- package/src/repositories/order.ts +0 -514
- package/src/repositories/payment.ts +0 -342
- package/src/repositories/product.ts +0 -1106
- package/src/repositories/shipping-method.ts +0 -312
- package/src/repositories/shopping-list.ts +0 -392
- package/src/repositories/tax-category.ts +0 -111
- package/src/repositories/type.ts +0 -172
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { DiscountCodeRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { DiscountCodeRepository } from "../repositories/discount-code/index";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class DiscountCodeService extends AbstractService {
|
|
6
|
-
public repository: DiscountCodeRepository
|
|
6
|
+
public repository: DiscountCodeRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: DiscountCodeRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "discount-codes";
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { ExtensionRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { ExtensionRepository } from "../repositories/extension";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class ExtensionServices extends AbstractService {
|
|
6
|
-
public repository: ExtensionRepository
|
|
6
|
+
public repository: ExtensionRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: ExtensionRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "extensions";
|
|
15
15
|
}
|
|
16
16
|
}
|
package/src/services/index.ts
CHANGED
|
@@ -1,100 +1,104 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { CartService } from
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { CustomerService } from
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
1
|
+
import { createRepositories } from "../repositories";
|
|
2
|
+
import { AssociateRoleServices } from "./associate-roles";
|
|
3
|
+
import { AttributeGroupService } from "./attribute-group";
|
|
4
|
+
import { BusinessUnitServices } from "./business-units";
|
|
5
|
+
import { CartService } from "./cart";
|
|
6
|
+
import { CartDiscountService } from "./cart-discount";
|
|
7
|
+
import { CategoryServices } from "./category";
|
|
8
|
+
import { ChannelService } from "./channel";
|
|
9
|
+
import { CustomObjectService } from "./custom-object";
|
|
10
|
+
import { CustomerService } from "./customer";
|
|
11
|
+
import { CustomerGroupService } from "./customer-group";
|
|
12
|
+
import { DiscountCodeService } from "./discount-code";
|
|
13
|
+
import { ExtensionServices } from "./extension";
|
|
14
|
+
import { InventoryEntryService } from "./inventory-entry";
|
|
15
|
+
import { MyCartService } from "./my-cart";
|
|
16
|
+
import { MyCustomerService } from "./my-customer";
|
|
17
|
+
import { MyOrderService } from "./my-order";
|
|
18
|
+
import { MyPaymentService } from "./my-payment";
|
|
19
|
+
import { MyShoppingListService } from "./my-shopping-list";
|
|
20
|
+
import { OrderService } from "./order";
|
|
21
|
+
import { PaymentService } from "./payment";
|
|
22
|
+
import { ProductService } from "./product";
|
|
23
|
+
import { ProductDiscountService } from "./product-discount";
|
|
24
|
+
import { ProductProjectionService } from "./product-projection";
|
|
25
|
+
import { ProductSelectionService } from "./product-selection";
|
|
26
|
+
import { ProductTypeService } from "./product-type";
|
|
27
|
+
import { ReviewService } from "./reviews";
|
|
28
|
+
import { ShippingMethodService } from "./shipping-method";
|
|
29
|
+
import { ShoppingListService } from "./shopping-list";
|
|
30
|
+
import { StandAlonePriceService } from "./standalone-price";
|
|
31
|
+
import { StateService } from "./state";
|
|
32
|
+
import { StoreService } from "./store";
|
|
33
|
+
import { SubscriptionService } from "./subscription";
|
|
34
|
+
import { TaxCategoryService } from "./tax-category";
|
|
35
|
+
import { TypeService } from "./type";
|
|
36
|
+
import { ZoneService } from "./zone";
|
|
36
37
|
|
|
37
|
-
export const createServices = (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
export const createServices = (
|
|
39
|
+
router: any,
|
|
40
|
+
repos: ReturnType<typeof createRepositories>,
|
|
41
|
+
) => ({
|
|
42
|
+
"associate-role": new AssociateRoleServices(router, repos["associate-role"]),
|
|
43
|
+
"business-unit": new BusinessUnitServices(router, repos["business-unit"]),
|
|
44
|
+
"category": new CategoryServices(router, repos["category"]),
|
|
45
|
+
"cart": new CartService(router, repos["cart"], repos["order"]),
|
|
46
|
+
"cart-discount": new CartDiscountService(router, repos["cart-discount"]),
|
|
47
|
+
"customer": new CustomerService(router, repos["customer"]),
|
|
48
|
+
"channel": new ChannelService(router, repos["channel"]),
|
|
49
|
+
"customer-group": new CustomerGroupService(router, repos["customer-group"]),
|
|
50
|
+
"discount-code": new DiscountCodeService(router, repos["discount-code"]),
|
|
51
|
+
"extension": new ExtensionServices(router, repos["extension"]),
|
|
52
|
+
"inventory-entry": new InventoryEntryService(
|
|
49
53
|
router,
|
|
50
|
-
repos[
|
|
54
|
+
repos["inventory-entry"],
|
|
51
55
|
),
|
|
52
|
-
|
|
56
|
+
"key-value-document": new CustomObjectService(
|
|
53
57
|
router,
|
|
54
|
-
repos[
|
|
58
|
+
repos["key-value-document"],
|
|
55
59
|
),
|
|
56
|
-
order: new OrderService(router, repos[
|
|
57
|
-
payment: new PaymentService(router, repos[
|
|
58
|
-
|
|
60
|
+
"order": new OrderService(router, repos["order"]),
|
|
61
|
+
"payment": new PaymentService(router, repos["payment"]),
|
|
62
|
+
"standalone-price": new StandAlonePriceService(
|
|
59
63
|
router,
|
|
60
|
-
repos[
|
|
64
|
+
repos["standalone-price"],
|
|
61
65
|
),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
"my-cart": new MyCartService(router, repos["my-cart"]),
|
|
67
|
+
"my-order": new MyOrderService(router, repos["my-order"]),
|
|
68
|
+
"my-customer": new MyCustomerService(router, repos["my-customer"]),
|
|
69
|
+
"my-payment": new MyPaymentService(router, repos["my-payment"]),
|
|
70
|
+
"my-shopping-list": new MyShoppingListService(
|
|
67
71
|
router,
|
|
68
|
-
repos[
|
|
72
|
+
repos["my-shopping-list"],
|
|
69
73
|
),
|
|
70
|
-
|
|
74
|
+
"shipping-method": new ShippingMethodService(
|
|
71
75
|
router,
|
|
72
|
-
repos[
|
|
76
|
+
repos["shipping-method"],
|
|
73
77
|
),
|
|
74
|
-
|
|
75
|
-
product: new ProductService(router, repos[
|
|
76
|
-
|
|
78
|
+
"product-type": new ProductTypeService(router, repos["product-type"]),
|
|
79
|
+
"product": new ProductService(router, repos["product"]),
|
|
80
|
+
"product-discount": new ProductDiscountService(
|
|
77
81
|
router,
|
|
78
|
-
repos[
|
|
82
|
+
repos["product-discount"],
|
|
79
83
|
),
|
|
80
|
-
|
|
84
|
+
"product-projection": new ProductProjectionService(
|
|
81
85
|
router,
|
|
82
|
-
repos[
|
|
86
|
+
repos["product-projection"],
|
|
83
87
|
),
|
|
84
|
-
|
|
88
|
+
"product-selection": new ProductSelectionService(
|
|
85
89
|
router,
|
|
86
|
-
repos[
|
|
90
|
+
repos["product-selection"],
|
|
87
91
|
),
|
|
88
|
-
reviews: new ReviewService(router, repos[
|
|
89
|
-
|
|
90
|
-
state: new StateService(router, repos[
|
|
91
|
-
store: new StoreService(router, repos[
|
|
92
|
-
subscription: new SubscriptionService(router, repos[
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
"reviews": new ReviewService(router, repos["review"]),
|
|
93
|
+
"shopping-list": new ShoppingListService(router, repos["shopping-list"]),
|
|
94
|
+
"state": new StateService(router, repos["state"]),
|
|
95
|
+
"store": new StoreService(router, repos["store"]),
|
|
96
|
+
"subscription": new SubscriptionService(router, repos["subscription"]),
|
|
97
|
+
"tax-category": new TaxCategoryService(router, repos["tax-category"]),
|
|
98
|
+
"attribute-group": new AttributeGroupService(
|
|
95
99
|
router,
|
|
96
|
-
repos[
|
|
100
|
+
repos["attribute-group"],
|
|
97
101
|
),
|
|
98
|
-
type: new TypeService(router, repos[
|
|
99
|
-
zone: new ZoneService(router, repos[
|
|
100
|
-
})
|
|
102
|
+
"type": new TypeService(router, repos["type"]),
|
|
103
|
+
"zone": new ZoneService(router, repos["zone"]),
|
|
104
|
+
});
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
import type { InventoryEntry, Type } from
|
|
2
|
-
import assert from
|
|
3
|
-
import supertest from
|
|
4
|
-
import { afterEach, beforeEach, describe, expect, test } from
|
|
5
|
-
import { CommercetoolsMock } from
|
|
1
|
+
import type { InventoryEntry, Type } from "@commercetools/platform-sdk";
|
|
2
|
+
import assert from "assert";
|
|
3
|
+
import supertest from "supertest";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, test } from "vitest";
|
|
5
|
+
import { CommercetoolsMock } from "../index";
|
|
6
6
|
|
|
7
|
-
describe(
|
|
8
|
-
const ctMock = new CommercetoolsMock()
|
|
9
|
-
let inventoryEntry: InventoryEntry | undefined
|
|
7
|
+
describe("Inventory Entry Query", () => {
|
|
8
|
+
const ctMock = new CommercetoolsMock();
|
|
9
|
+
let inventoryEntry: InventoryEntry | undefined;
|
|
10
10
|
|
|
11
11
|
beforeEach(async () => {
|
|
12
|
-
const response = await supertest(ctMock.app).post(
|
|
13
|
-
sku:
|
|
12
|
+
const response = await supertest(ctMock.app).post("/dummy/inventory").send({
|
|
13
|
+
sku: "1337",
|
|
14
14
|
quantityOnStock: 100,
|
|
15
|
-
})
|
|
16
|
-
expect(response.status).toBe(201)
|
|
17
|
-
inventoryEntry = response.body
|
|
18
|
-
})
|
|
15
|
+
});
|
|
16
|
+
expect(response.status).toBe(201);
|
|
17
|
+
inventoryEntry = response.body;
|
|
18
|
+
});
|
|
19
19
|
|
|
20
20
|
afterEach(() => {
|
|
21
|
-
ctMock.clear()
|
|
22
|
-
})
|
|
21
|
+
ctMock.clear();
|
|
22
|
+
});
|
|
23
23
|
|
|
24
|
-
test(
|
|
25
|
-
assert(inventoryEntry,
|
|
24
|
+
test("no filter", async () => {
|
|
25
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
26
26
|
|
|
27
|
-
const response = await supertest(ctMock.app).get(`/dummy/inventory`)
|
|
28
|
-
expect(response.status).toBe(200)
|
|
29
|
-
expect(response.body.count).toBe(1)
|
|
30
|
-
expect(response.body.total).toBe(1)
|
|
31
|
-
expect(response.body.offset).toBe(0)
|
|
32
|
-
expect(response.body.limit).toBe(20)
|
|
33
|
-
})
|
|
27
|
+
const response = await supertest(ctMock.app).get(`/dummy/inventory`);
|
|
28
|
+
expect(response.status).toBe(200);
|
|
29
|
+
expect(response.body.count).toBe(1);
|
|
30
|
+
expect(response.body.total).toBe(1);
|
|
31
|
+
expect(response.body.offset).toBe(0);
|
|
32
|
+
expect(response.body.limit).toBe(20);
|
|
33
|
+
});
|
|
34
34
|
|
|
35
|
-
test(
|
|
36
|
-
assert(inventoryEntry,
|
|
35
|
+
test("filter sku", async () => {
|
|
36
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
37
37
|
|
|
38
38
|
{
|
|
39
39
|
const response = await supertest(ctMock.app)
|
|
40
40
|
.get(`/dummy/inventory`)
|
|
41
|
-
.query({ where: 'sku="unknown"' })
|
|
42
|
-
expect(response.status).toBe(200)
|
|
43
|
-
expect(response.body.count).toBe(0)
|
|
41
|
+
.query({ where: 'sku="unknown"' });
|
|
42
|
+
expect(response.status).toBe(200);
|
|
43
|
+
expect(response.body.count).toBe(0);
|
|
44
44
|
}
|
|
45
45
|
{
|
|
46
46
|
const response = await supertest(ctMock.app)
|
|
47
47
|
.get(`/dummy/inventory`)
|
|
48
|
-
.query({ where: 'sku="1337"' })
|
|
49
|
-
expect(response.status).toBe(200)
|
|
50
|
-
expect(response.body.count).toBe(1)
|
|
48
|
+
.query({ where: 'sku="1337"' });
|
|
49
|
+
expect(response.status).toBe(200);
|
|
50
|
+
expect(response.body.count).toBe(1);
|
|
51
51
|
}
|
|
52
|
-
})
|
|
53
|
-
})
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
54
|
|
|
55
|
-
describe(
|
|
56
|
-
const ctMock = new CommercetoolsMock()
|
|
57
|
-
let inventoryEntry: InventoryEntry | undefined
|
|
58
|
-
let customType: Type | undefined
|
|
55
|
+
describe("Inventory Entry Update Actions", () => {
|
|
56
|
+
const ctMock = new CommercetoolsMock();
|
|
57
|
+
let inventoryEntry: InventoryEntry | undefined;
|
|
58
|
+
let customType: Type | undefined;
|
|
59
59
|
|
|
60
60
|
beforeEach(async () => {
|
|
61
|
-
let response = await supertest(ctMock.app).post(
|
|
62
|
-
sku:
|
|
61
|
+
let response = await supertest(ctMock.app).post("/dummy/inventory").send({
|
|
62
|
+
sku: "1337",
|
|
63
63
|
quantityOnStock: 100,
|
|
64
|
-
})
|
|
65
|
-
expect(response.status).toBe(201)
|
|
66
|
-
inventoryEntry = response.body
|
|
64
|
+
});
|
|
65
|
+
expect(response.status).toBe(201);
|
|
66
|
+
inventoryEntry = response.body;
|
|
67
67
|
|
|
68
68
|
response = await supertest(ctMock.app)
|
|
69
|
-
.post(
|
|
69
|
+
.post("/dummy/types")
|
|
70
70
|
.send({
|
|
71
|
-
key:
|
|
71
|
+
key: "custom-inventory",
|
|
72
72
|
name: {
|
|
73
|
-
|
|
73
|
+
"nl-NL": "custom-inventory",
|
|
74
74
|
},
|
|
75
|
-
resourceTypeIds: [
|
|
76
|
-
})
|
|
77
|
-
expect(response.status).toBe(201)
|
|
78
|
-
customType = response.body
|
|
79
|
-
})
|
|
75
|
+
resourceTypeIds: ["inventory-entry"],
|
|
76
|
+
});
|
|
77
|
+
expect(response.status).toBe(201);
|
|
78
|
+
customType = response.body;
|
|
79
|
+
});
|
|
80
80
|
|
|
81
|
-
test(
|
|
82
|
-
assert(inventoryEntry,
|
|
81
|
+
test("changeQuantity", async () => {
|
|
82
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
83
83
|
|
|
84
84
|
const response = await supertest(ctMock.app)
|
|
85
85
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
86
86
|
.send({
|
|
87
87
|
version: 1,
|
|
88
|
-
actions: [{ action:
|
|
89
|
-
})
|
|
90
|
-
expect(response.status).toBe(200)
|
|
91
|
-
expect(response.body.version).toBe(2)
|
|
92
|
-
expect(response.body.availableQuantity).toBe(300)
|
|
93
|
-
expect(response.body.quantityOnStock).toBe(300)
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
test(
|
|
97
|
-
assert(inventoryEntry,
|
|
98
|
-
assert(customType,
|
|
88
|
+
actions: [{ action: "changeQuantity", quantity: 300 }],
|
|
89
|
+
});
|
|
90
|
+
expect(response.status).toBe(200);
|
|
91
|
+
expect(response.body.version).toBe(2);
|
|
92
|
+
expect(response.body.availableQuantity).toBe(300);
|
|
93
|
+
expect(response.body.quantityOnStock).toBe(300);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
test("set custom type", async () => {
|
|
97
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
98
|
+
assert(customType, "custom type not created");
|
|
99
99
|
|
|
100
100
|
const response = await supertest(ctMock.app)
|
|
101
101
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
@@ -103,33 +103,33 @@ describe('Inventory Entry Update Actions', () => {
|
|
|
103
103
|
version: 1,
|
|
104
104
|
actions: [
|
|
105
105
|
{
|
|
106
|
-
action:
|
|
107
|
-
type: { typeId:
|
|
106
|
+
action: "setCustomType",
|
|
107
|
+
type: { typeId: "type", id: customType.id },
|
|
108
108
|
},
|
|
109
109
|
],
|
|
110
|
-
})
|
|
111
|
-
expect(response.status).toBe(200)
|
|
112
|
-
expect(response.body.version).toBe(2)
|
|
113
|
-
expect(response.body.custom.type.id).toBe(customType.id)
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
test(
|
|
117
|
-
assert(inventoryEntry,
|
|
118
|
-
const expectedDelivery =
|
|
110
|
+
});
|
|
111
|
+
expect(response.status).toBe(200);
|
|
112
|
+
expect(response.body.version).toBe(2);
|
|
113
|
+
expect(response.body.custom.type.id).toBe(customType.id);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test("set expected delivery", async () => {
|
|
117
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
118
|
+
const expectedDelivery = "2021-04-02T15:06:19.700Z";
|
|
119
119
|
const response = await supertest(ctMock.app)
|
|
120
120
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
121
121
|
.send({
|
|
122
122
|
version: 1,
|
|
123
|
-
actions: [{ action:
|
|
124
|
-
})
|
|
125
|
-
expect(response.status).toBe(200)
|
|
126
|
-
expect(response.body.version).toBe(2)
|
|
127
|
-
expect(response.body.expectedDelivery).toBe(expectedDelivery)
|
|
128
|
-
})
|
|
123
|
+
actions: [{ action: "setExpectedDelivery", expectedDelivery }],
|
|
124
|
+
});
|
|
125
|
+
expect(response.status).toBe(200);
|
|
126
|
+
expect(response.body.version).toBe(2);
|
|
127
|
+
expect(response.body.expectedDelivery).toBe(expectedDelivery);
|
|
128
|
+
});
|
|
129
129
|
|
|
130
|
-
test(
|
|
131
|
-
assert(inventoryEntry,
|
|
132
|
-
assert(customType,
|
|
130
|
+
test("set custom field", async () => {
|
|
131
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
132
|
+
assert(customType, "custom type not created");
|
|
133
133
|
|
|
134
134
|
const setCustomTypeResponse = await supertest(ctMock.app)
|
|
135
135
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
@@ -137,37 +137,37 @@ describe('Inventory Entry Update Actions', () => {
|
|
|
137
137
|
version: 1,
|
|
138
138
|
actions: [
|
|
139
139
|
{
|
|
140
|
-
action:
|
|
141
|
-
type: { typeId:
|
|
142
|
-
fields: { lol:
|
|
140
|
+
action: "setCustomType",
|
|
141
|
+
type: { typeId: "type", id: customType.id },
|
|
142
|
+
fields: { lol: "bar" },
|
|
143
143
|
},
|
|
144
144
|
],
|
|
145
|
-
})
|
|
146
|
-
expect(setCustomTypeResponse.status).toBe(200)
|
|
147
|
-
expect(setCustomTypeResponse.body.custom.type.id).toBe(customType.id)
|
|
145
|
+
});
|
|
146
|
+
expect(setCustomTypeResponse.status).toBe(200);
|
|
147
|
+
expect(setCustomTypeResponse.body.custom.type.id).toBe(customType.id);
|
|
148
148
|
|
|
149
149
|
const response = await supertest(ctMock.app)
|
|
150
150
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
151
151
|
.send({
|
|
152
152
|
version: 2,
|
|
153
|
-
actions: [{ action:
|
|
154
|
-
})
|
|
153
|
+
actions: [{ action: "setCustomField", name: "foo", value: "bar" }],
|
|
154
|
+
});
|
|
155
155
|
|
|
156
|
-
expect(response.status).toBe(200)
|
|
157
|
-
expect(response.body.version).toBe(3)
|
|
158
|
-
expect(response.body.custom.fields[
|
|
159
|
-
})
|
|
156
|
+
expect(response.status).toBe(200);
|
|
157
|
+
expect(response.body.version).toBe(3);
|
|
158
|
+
expect(response.body.custom.fields["foo"]).toBe("bar");
|
|
159
|
+
});
|
|
160
160
|
|
|
161
|
-
test(
|
|
162
|
-
assert(inventoryEntry,
|
|
161
|
+
test("set restockable in days", async () => {
|
|
162
|
+
assert(inventoryEntry, "inventory entry not created");
|
|
163
163
|
const response = await supertest(ctMock.app)
|
|
164
164
|
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
165
165
|
.send({
|
|
166
166
|
version: 1,
|
|
167
|
-
actions: [{ action:
|
|
168
|
-
})
|
|
169
|
-
expect(response.status).toEqual(200)
|
|
170
|
-
expect(response.body.version).toEqual(2)
|
|
171
|
-
expect(response.body.restockableInDays).toEqual(0)
|
|
172
|
-
})
|
|
173
|
-
})
|
|
167
|
+
actions: [{ action: "setRestockableInDays", restockableInDays: 0 }],
|
|
168
|
+
});
|
|
169
|
+
expect(response.status).toEqual(200);
|
|
170
|
+
expect(response.body.version).toEqual(2);
|
|
171
|
+
expect(response.body.restockableInDays).toEqual(0);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { InventoryEntryRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { InventoryEntryRepository } from "../repositories/inventory-entry";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class InventoryEntryService extends AbstractService {
|
|
6
|
-
public repository: InventoryEntryRepository
|
|
6
|
+
public repository: InventoryEntryRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: InventoryEntryRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "inventory";
|
|
15
15
|
}
|
|
16
16
|
}
|