@labdigital/commercetools-mock 2.17.1 → 2.18.1

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