@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.
Files changed (178) hide show
  1. package/dist/index.cjs +4186 -3974
  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 +4186 -3974
  6. package/dist/index.js.map +1 -1
  7. package/package.json +44 -46
  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/server.ts +9 -9
  98. package/src/services/abstract.ts +75 -72
  99. package/src/services/associate-roles.test.ts +27 -27
  100. package/src/services/associate-roles.ts +7 -7
  101. package/src/services/attribute-group.ts +7 -7
  102. package/src/services/business-units.test.ts +28 -28
  103. package/src/services/business-units.ts +7 -7
  104. package/src/services/cart-discount.test.ts +199 -199
  105. package/src/services/cart-discount.ts +7 -7
  106. package/src/services/cart.test.ts +261 -261
  107. package/src/services/cart.ts +22 -21
  108. package/src/services/category.test.ts +121 -121
  109. package/src/services/category.ts +7 -7
  110. package/src/services/channel.ts +7 -7
  111. package/src/services/custom-object.test.ts +130 -130
  112. package/src/services/custom-object.ts +34 -31
  113. package/src/services/customer-group.ts +7 -7
  114. package/src/services/customer.test.ts +205 -205
  115. package/src/services/customer.ts +23 -36
  116. package/src/services/discount-code.ts +7 -7
  117. package/src/services/extension.ts +7 -7
  118. package/src/services/index.ts +85 -81
  119. package/src/services/inventory-entry.test.ts +106 -106
  120. package/src/services/inventory-entry.ts +7 -7
  121. package/src/services/my-cart.test.ts +56 -56
  122. package/src/services/my-cart.ts +20 -20
  123. package/src/services/my-customer.test.ts +155 -104
  124. package/src/services/my-customer.ts +61 -75
  125. package/src/services/my-order.ts +16 -16
  126. package/src/services/my-payment.test.ts +40 -40
  127. package/src/services/my-payment.ts +7 -7
  128. package/src/services/my-shopping-list.ts +7 -7
  129. package/src/services/order.test.ts +243 -243
  130. package/src/services/order.ts +23 -18
  131. package/src/services/payment.test.ts +40 -40
  132. package/src/services/payment.ts +7 -7
  133. package/src/services/product-discount.ts +7 -7
  134. package/src/services/product-projection.test.ts +190 -190
  135. package/src/services/product-projection.ts +34 -32
  136. package/src/services/product-selection.test.ts +19 -19
  137. package/src/services/product-selection.ts +7 -7
  138. package/src/services/product-type.test.ts +38 -38
  139. package/src/services/product-type.ts +7 -7
  140. package/src/services/product.test.ts +658 -656
  141. package/src/services/product.ts +7 -7
  142. package/src/services/project.test.ts +24 -24
  143. package/src/services/project.ts +17 -17
  144. package/src/services/reviews.ts +7 -7
  145. package/src/services/shipping-method.test.ts +78 -78
  146. package/src/services/shipping-method.ts +16 -16
  147. package/src/services/shopping-list.test.ts +170 -170
  148. package/src/services/shopping-list.ts +7 -7
  149. package/src/services/standalone-price.test.ts +112 -112
  150. package/src/services/standalone-price.ts +7 -7
  151. package/src/services/state.test.ts +30 -30
  152. package/src/services/state.ts +7 -7
  153. package/src/services/store.test.ts +40 -40
  154. package/src/services/store.ts +7 -7
  155. package/src/services/subscription.ts +7 -7
  156. package/src/services/tax-category.test.ts +43 -43
  157. package/src/services/tax-category.ts +7 -7
  158. package/src/services/type.ts +7 -7
  159. package/src/services/zone.ts +7 -7
  160. package/src/shippingCalculator.test.ts +43 -43
  161. package/src/shippingCalculator.ts +23 -23
  162. package/src/storage/abstract.ts +36 -34
  163. package/src/storage/in-memory.ts +237 -233
  164. package/src/storage/index.ts +2 -2
  165. package/src/types.ts +91 -91
  166. package/src/repositories/cart-discount.ts +0 -219
  167. package/src/repositories/cart.ts +0 -659
  168. package/src/repositories/category.ts +0 -256
  169. package/src/repositories/customer.ts +0 -228
  170. package/src/repositories/discount-code.ts +0 -181
  171. package/src/repositories/inventory-entry.ts +0 -109
  172. package/src/repositories/order.ts +0 -514
  173. package/src/repositories/payment.ts +0 -342
  174. package/src/repositories/product.ts +0 -1106
  175. package/src/repositories/shipping-method.ts +0 -312
  176. package/src/repositories/shopping-list.ts +0 -392
  177. package/src/repositories/tax-category.ts +0 -111
  178. package/src/repositories/type.ts +0 -172
@@ -1,383 +1,383 @@
1
- import assert from 'assert'
2
- import type { Order, Payment, State } from '@commercetools/platform-sdk'
3
- import supertest from 'supertest'
4
- import { afterEach, beforeEach, describe, expect, test } from 'vitest'
5
- import { CommercetoolsMock, getBaseResourceProperties } from '../index.js'
1
+ import type { Order, Payment, State } 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, getBaseResourceProperties } from "../index";
6
6
 
7
- describe('Order Query', () => {
8
- const ctMock = new CommercetoolsMock()
9
- let order: Order | undefined
7
+ describe("Order Query", () => {
8
+ const ctMock = new CommercetoolsMock();
9
+ let order: Order | undefined;
10
10
 
11
11
  beforeEach(async () => {
12
12
  let response = await supertest(ctMock.app)
13
- .post('/dummy/carts')
13
+ .post("/dummy/carts")
14
14
  .send({
15
- currency: 'EUR',
15
+ currency: "EUR",
16
16
  custom: {
17
17
  type: {
18
- key: 'my-cart',
18
+ key: "my-cart",
19
19
  },
20
20
  fields: {
21
- description: 'example description',
21
+ description: "example description",
22
22
  },
23
23
  },
24
- })
25
- expect(response.status).toBe(201)
26
- const cart = response.body
24
+ });
25
+ expect(response.status).toBe(201);
26
+ const cart = response.body;
27
27
 
28
28
  response = await supertest(ctMock.app)
29
- .post('/dummy/orders')
29
+ .post("/dummy/orders")
30
30
  .send({
31
31
  cart: {
32
- typeId: 'cart',
32
+ typeId: "cart",
33
33
  id: cart.id,
34
34
  },
35
- orderNumber: 'foobar',
36
- })
37
- expect(response.status).toBe(201)
38
- order = response.body
39
- })
35
+ orderNumber: "foobar",
36
+ });
37
+ expect(response.status).toBe(201);
38
+ order = response.body;
39
+ });
40
40
 
41
41
  afterEach(() => {
42
- ctMock.clear()
43
- })
42
+ ctMock.clear();
43
+ });
44
44
 
45
- test('no filter', async () => {
46
- assert(order, 'order not created')
45
+ test("no filter", async () => {
46
+ assert(order, "order not created");
47
47
 
48
- const response = await supertest(ctMock.app).get(`/dummy/orders`)
49
- expect(response.status).toBe(200)
50
- expect(response.body.count).toBe(1)
51
- expect(response.body.total).toBe(1)
52
- expect(response.body.offset).toBe(0)
53
- expect(response.body.limit).toBe(20)
54
- })
48
+ const response = await supertest(ctMock.app).get(`/dummy/orders`);
49
+ expect(response.status).toBe(200);
50
+ expect(response.body.count).toBe(1);
51
+ expect(response.body.total).toBe(1);
52
+ expect(response.body.offset).toBe(0);
53
+ expect(response.body.limit).toBe(20);
54
+ });
55
55
 
56
- test('filter orderNumber', async () => {
57
- assert(order, 'order not created')
56
+ test("filter orderNumber", async () => {
57
+ assert(order, "order not created");
58
58
 
59
59
  {
60
60
  const response = await supertest(ctMock.app)
61
61
  .get(`/dummy/orders`)
62
- .query({ where: 'orderNumber="nomatch"' })
63
- expect(response.status).toBe(200)
64
- expect(response.body.count).toBe(0)
62
+ .query({ where: 'orderNumber="nomatch"' });
63
+ expect(response.status).toBe(200);
64
+ expect(response.body.count).toBe(0);
65
65
  }
66
66
  {
67
67
  const response = await supertest(ctMock.app)
68
68
  .get(`/dummy/orders`)
69
- .query({ where: 'orderNumber="foobar"' })
70
- expect(response.status).toBe(200)
71
- expect(response.body.count).toBe(1)
69
+ .query({ where: 'orderNumber="foobar"' });
70
+ expect(response.status).toBe(200);
71
+ expect(response.body.count).toBe(1);
72
72
  }
73
- })
73
+ });
74
74
 
75
- test('expand payment without payments', async () => {
76
- assert(order, 'order not created')
75
+ test("expand payment without payments", async () => {
76
+ assert(order, "order not created");
77
77
 
78
78
  const response = await supertest(ctMock.app)
79
79
  .get(`/dummy/orders/${order.id}`)
80
- .query({ expand: 'paymentInfo.payments[*].paymentStatus.state' })
80
+ .query({ expand: "paymentInfo.payments[*].paymentStatus.state" });
81
81
 
82
- expect(response.status).toBe(200)
83
- expect(response.body.id).toBe(order.id)
84
- })
85
- })
82
+ expect(response.status).toBe(200);
83
+ expect(response.body.id).toBe(order.id);
84
+ });
85
+ });
86
86
 
87
- describe('Order payment tests', () => {
87
+ describe("Order payment tests", () => {
88
88
  const ctMock = new CommercetoolsMock({
89
- defaultProjectKey: 'dummy',
90
- })
89
+ defaultProjectKey: "dummy",
90
+ });
91
91
 
92
92
  afterEach(() => {
93
- ctMock.clear()
94
- })
93
+ ctMock.clear();
94
+ });
95
95
 
96
- test('query payment id', async () => {
96
+ test("query payment id", async () => {
97
97
  const state: State = {
98
98
  ...getBaseResourceProperties(),
99
99
  builtIn: false,
100
100
  initial: false,
101
- key: 'PaymentSuccess',
102
- type: 'PaymentState',
103
- }
101
+ key: "PaymentSuccess",
102
+ type: "PaymentState",
103
+ };
104
104
 
105
105
  const payment: Payment = {
106
106
  ...getBaseResourceProperties(),
107
107
  interfaceInteractions: [],
108
108
  paymentStatus: {
109
109
  state: {
110
- typeId: 'state',
110
+ typeId: "state",
111
111
  id: state.id,
112
112
  },
113
113
  },
114
114
  amountPlanned: {
115
- type: 'centPrecision',
115
+ type: "centPrecision",
116
116
  fractionDigits: 2,
117
117
  centAmount: 1234,
118
- currencyCode: 'EUR',
118
+ currencyCode: "EUR",
119
119
  },
120
120
  paymentMethodInfo: {
121
- paymentInterface: 'buckaroo',
122
- method: 'mastercard',
121
+ paymentInterface: "buckaroo",
122
+ method: "mastercard",
123
123
  },
124
124
  version: 2,
125
125
  transactions: [
126
126
  {
127
- id: 'fake-transaction-id',
128
- type: 'Charge',
127
+ id: "fake-transaction-id",
128
+ type: "Charge",
129
129
  amount: {
130
130
  centAmount: 1234,
131
- currencyCode: 'EUR',
132
- type: 'centPrecision',
131
+ currencyCode: "EUR",
132
+ type: "centPrecision",
133
133
  fractionDigits: 2,
134
134
  },
135
- state: 'Success',
135
+ state: "Success",
136
136
  },
137
137
  ],
138
- }
138
+ };
139
139
 
140
140
  const order: Order = {
141
141
  ...getBaseResourceProperties(),
142
142
  customLineItems: [],
143
143
  lastMessageSequenceNumber: 0,
144
144
  lineItems: [],
145
- orderNumber: '1337',
146
- orderState: 'Open',
147
- origin: 'Customer',
145
+ orderNumber: "1337",
146
+ orderState: "Open",
147
+ origin: "Customer",
148
148
  paymentInfo: {
149
149
  payments: [
150
150
  {
151
- typeId: 'payment',
151
+ typeId: "payment",
152
152
  id: payment.id,
153
153
  },
154
154
  ],
155
155
  },
156
156
  refusedGifts: [],
157
157
  shipping: [],
158
- shippingMode: 'Single',
158
+ shippingMode: "Single",
159
159
  syncInfo: [],
160
160
  totalPrice: {
161
- type: 'centPrecision',
161
+ type: "centPrecision",
162
162
  fractionDigits: 2,
163
163
  centAmount: 2000,
164
- currencyCode: 'EUR',
164
+ currencyCode: "EUR",
165
165
  },
166
- }
166
+ };
167
167
 
168
- ctMock.project().add('state', state)
169
- ctMock.project().add('payment', payment)
170
- ctMock.project().add('order', order)
168
+ ctMock.project().add("state", state);
169
+ ctMock.project().add("payment", payment);
170
+ ctMock.project().add("order", order);
171
171
 
172
172
  const response = await supertest(ctMock.app)
173
173
  .get(`/dummy/orders`)
174
- .query({ where: `paymentInfo(payments(id="${payment.id}"))` })
174
+ .query({ where: `paymentInfo(payments(id="${payment.id}"))` });
175
175
 
176
- expect(response.status).toBe(200)
177
- expect(response.body.results[0].id).toBe(order.id)
176
+ expect(response.status).toBe(200);
177
+ expect(response.body.results[0].id).toBe(order.id);
178
178
 
179
179
  {
180
180
  const response = await supertest(ctMock.app)
181
181
  .get(`/dummy/orders`)
182
- .query({ where: `paymentInfo(payments(id is defined))` })
182
+ .query({ where: `paymentInfo(payments(id is defined))` });
183
183
 
184
- expect(response.status).toBe(200)
185
- expect(response.body.results[0].id).toBe(order.id)
184
+ expect(response.status).toBe(200);
185
+ expect(response.body.results[0].id).toBe(order.id);
186
186
  }
187
- })
187
+ });
188
188
 
189
- test('expand payment states', async () => {
189
+ test("expand payment states", async () => {
190
190
  const state: State = {
191
191
  ...getBaseResourceProperties(),
192
192
  builtIn: false,
193
193
  initial: false,
194
- key: 'PaymentSuccess',
195
- type: 'PaymentState',
196
- }
194
+ key: "PaymentSuccess",
195
+ type: "PaymentState",
196
+ };
197
197
 
198
198
  const payment: Payment = {
199
199
  ...getBaseResourceProperties(),
200
200
  interfaceInteractions: [],
201
201
  paymentStatus: {
202
202
  state: {
203
- typeId: 'state',
203
+ typeId: "state",
204
204
  id: state.id,
205
205
  },
206
206
  },
207
207
  amountPlanned: {
208
- type: 'centPrecision',
208
+ type: "centPrecision",
209
209
  fractionDigits: 2,
210
210
  centAmount: 1234,
211
- currencyCode: 'EUR',
211
+ currencyCode: "EUR",
212
212
  },
213
213
  paymentMethodInfo: {
214
- paymentInterface: 'buckaroo',
215
- method: 'mastercard',
214
+ paymentInterface: "buckaroo",
215
+ method: "mastercard",
216
216
  },
217
217
  version: 2,
218
218
  transactions: [
219
219
  {
220
- id: 'fake-transaction-id',
221
- type: 'Charge',
220
+ id: "fake-transaction-id",
221
+ type: "Charge",
222
222
  amount: {
223
223
  centAmount: 1234,
224
- currencyCode: 'EUR',
225
- type: 'centPrecision',
224
+ currencyCode: "EUR",
225
+ type: "centPrecision",
226
226
  fractionDigits: 2,
227
227
  },
228
- state: 'Success',
228
+ state: "Success",
229
229
  },
230
230
  ],
231
- }
231
+ };
232
232
 
233
233
  const order: Order = {
234
234
  ...getBaseResourceProperties(),
235
235
  customLineItems: [],
236
236
  lastMessageSequenceNumber: 0,
237
237
  lineItems: [],
238
- orderNumber: '1337',
239
- orderState: 'Open',
240
- origin: 'Customer',
238
+ orderNumber: "1337",
239
+ orderState: "Open",
240
+ origin: "Customer",
241
241
  paymentInfo: {
242
242
  payments: [
243
243
  {
244
- typeId: 'payment',
244
+ typeId: "payment",
245
245
  id: payment.id,
246
246
  },
247
247
  ],
248
248
  },
249
249
  refusedGifts: [],
250
250
  shipping: [],
251
- shippingMode: 'Single',
251
+ shippingMode: "Single",
252
252
  syncInfo: [],
253
253
  totalPrice: {
254
- type: 'centPrecision',
254
+ type: "centPrecision",
255
255
  fractionDigits: 2,
256
256
  centAmount: 2000,
257
- currencyCode: 'EUR',
257
+ currencyCode: "EUR",
258
258
  },
259
- }
259
+ };
260
260
 
261
- ctMock.project().add('state', state)
262
- ctMock.project().add('payment', payment)
263
- ctMock.project().add('order', order)
261
+ ctMock.project().add("state", state);
262
+ ctMock.project().add("payment", payment);
263
+ ctMock.project().add("order", order);
264
264
 
265
265
  const response = await supertest(ctMock.app)
266
266
  .get(`/dummy/orders/order-number=${order.orderNumber}`)
267
- .query({ expand: 'paymentInfo.payments[*].paymentStatus.state' })
267
+ .query({ expand: "paymentInfo.payments[*].paymentStatus.state" });
268
268
 
269
- expect(response.status).toBe(200)
270
- expect(response.body.id).toBe(order.id)
271
- const maybePayment = response.body.paymentInfo.payments[0].obj
272
- expect(maybePayment).toBeDefined()
273
- expect(maybePayment.paymentStatus.state.obj).toBeDefined()
274
- })
275
- })
269
+ expect(response.status).toBe(200);
270
+ expect(response.body.id).toBe(order.id);
271
+ const maybePayment = response.body.paymentInfo.payments[0].obj;
272
+ expect(maybePayment).toBeDefined();
273
+ expect(maybePayment.paymentStatus.state.obj).toBeDefined();
274
+ });
275
+ });
276
276
 
277
- describe('Order Update Actions', () => {
278
- const ctMock = new CommercetoolsMock()
279
- let order: Order | undefined
277
+ describe("Order Update Actions", () => {
278
+ const ctMock = new CommercetoolsMock();
279
+ let order: Order | undefined;
280
280
 
281
281
  beforeEach(async () => {
282
- let response = await supertest(ctMock.app).post('/dummy/carts').send({
283
- currency: 'EUR',
284
- })
285
- expect(response.status).toBe(201)
286
- const cart = response.body
282
+ let response = await supertest(ctMock.app).post("/dummy/carts").send({
283
+ currency: "EUR",
284
+ });
285
+ expect(response.status).toBe(201);
286
+ const cart = response.body;
287
287
 
288
288
  response = await supertest(ctMock.app)
289
- .post('/dummy/orders')
289
+ .post("/dummy/orders")
290
290
  .send({
291
291
  cart: {
292
- typeId: 'cart',
292
+ typeId: "cart",
293
293
  id: cart.id,
294
294
  },
295
- })
296
- expect(response.status).toBe(201)
297
- order = response.body
298
- })
295
+ });
296
+ expect(response.status).toBe(201);
297
+ order = response.body;
298
+ });
299
299
 
300
- test('no update', async () => {
301
- assert(order, 'order not created')
300
+ test("no update", async () => {
301
+ assert(order, "order not created");
302
302
 
303
303
  const response = await supertest(ctMock.app)
304
304
  .post(`/dummy/orders/${order.id}`)
305
305
  .send({
306
306
  version: 1,
307
- actions: [{ action: 'setLocale', locale: 'nl-NL' }],
308
- })
309
- expect(response.status).toBe(200)
310
- expect(response.body.version).toBe(2)
311
- expect(response.body.locale).toBe('nl-NL')
307
+ actions: [{ action: "setLocale", locale: "nl-NL" }],
308
+ });
309
+ expect(response.status).toBe(200);
310
+ expect(response.body.version).toBe(2);
311
+ expect(response.body.locale).toBe("nl-NL");
312
312
 
313
313
  const responseAgain = await supertest(ctMock.app)
314
314
  .post(`/dummy/orders/${order.id}`)
315
315
  .send({
316
316
  version: 2,
317
- actions: [{ action: 'setLocale', locale: 'nl-NL' }],
318
- })
319
- expect(responseAgain.status).toBe(200)
320
- expect(responseAgain.body.version).toBe(2)
321
- expect(responseAgain.body.locale).toBe('nl-NL')
322
- })
317
+ actions: [{ action: "setLocale", locale: "nl-NL" }],
318
+ });
319
+ expect(responseAgain.status).toBe(200);
320
+ expect(responseAgain.body.version).toBe(2);
321
+ expect(responseAgain.body.locale).toBe("nl-NL");
322
+ });
323
323
 
324
- test('setOrderNumber', async () => {
325
- assert(order, 'order not created')
324
+ test("setOrderNumber", async () => {
325
+ assert(order, "order not created");
326
326
 
327
327
  const response = await supertest(ctMock.app)
328
328
  .post(`/dummy/orders/${order.id}`)
329
329
  .send({
330
330
  version: 1,
331
- actions: [{ action: 'setOrderNumber', orderNumber: '5000123' }],
332
- })
333
- expect(response.status).toBe(200)
334
- expect(response.body.version).toBe(2)
335
- expect(response.body.orderNumber).toBe('5000123')
336
- })
331
+ actions: [{ action: "setOrderNumber", orderNumber: "5000123" }],
332
+ });
333
+ expect(response.status).toBe(200);
334
+ expect(response.body.version).toBe(2);
335
+ expect(response.body.orderNumber).toBe("5000123");
336
+ });
337
337
 
338
- test('changeOrderState', async () => {
339
- assert(order, 'order not created')
338
+ test("changeOrderState", async () => {
339
+ assert(order, "order not created");
340
340
 
341
341
  const response = await supertest(ctMock.app)
342
342
  .post(`/dummy/orders/${order.id}`)
343
343
  .send({
344
344
  version: 1,
345
- actions: [{ action: 'changeOrderState', orderState: 'Complete' }],
346
- })
347
- expect(response.status).toBe(200)
348
- expect(response.body.version).toBe(2)
349
- expect(response.body.orderState).toBe('Complete')
350
- })
345
+ actions: [{ action: "changeOrderState", orderState: "Complete" }],
346
+ });
347
+ expect(response.status).toBe(200);
348
+ expect(response.body.version).toBe(2);
349
+ expect(response.body.orderState).toBe("Complete");
350
+ });
351
351
 
352
- test('changePaymentState | changeOrderState', async () => {
353
- assert(order, 'order not created')
352
+ test("changePaymentState | changeOrderState", async () => {
353
+ assert(order, "order not created");
354
354
 
355
355
  const response = await supertest(ctMock.app)
356
356
  .post(`/dummy/orders/${order.id}`)
357
357
  .send({
358
358
  version: 1,
359
359
  actions: [
360
- { action: 'changeOrderState', orderState: 'Cancelled' },
361
- { action: 'changePaymentState', paymentState: 'Failed' },
360
+ { action: "changeOrderState", orderState: "Cancelled" },
361
+ { action: "changePaymentState", paymentState: "Failed" },
362
362
  ],
363
- })
364
- expect(response.status).toBe(200)
365
- expect(response.body.version).toBe(3)
366
- expect(response.body.orderState).toBe('Cancelled')
367
- expect(response.body.paymentState).toBe('Failed')
368
- })
363
+ });
364
+ expect(response.status).toBe(200);
365
+ expect(response.body.version).toBe(3);
366
+ expect(response.body.orderState).toBe("Cancelled");
367
+ expect(response.body.paymentState).toBe("Failed");
368
+ });
369
369
 
370
- test('updateSyncInfo', async () => {
371
- assert(order, 'order not created')
370
+ test("updateSyncInfo", async () => {
371
+ assert(order, "order not created");
372
372
 
373
373
  const channelResponse = await supertest(ctMock.app)
374
- .post('/dummy/channels')
374
+ .post("/dummy/channels")
375
375
  .send({
376
- key: 'order-sync',
377
- roles: ['OrderImport', 'OrderExport'],
378
- })
379
- expect(channelResponse.status).toBe(201)
380
- const channel = channelResponse.body
376
+ key: "order-sync",
377
+ roles: ["OrderImport", "OrderExport"],
378
+ });
379
+ expect(channelResponse.status).toBe(201);
380
+ const channel = channelResponse.body;
381
381
 
382
382
  const response = await supertest(ctMock.app)
383
383
  .post(`/dummy/orders/${order.id}`)
@@ -385,61 +385,61 @@ describe('Order Update Actions', () => {
385
385
  version: 1,
386
386
  actions: [
387
387
  {
388
- action: 'updateSyncInfo',
389
- channel: { typeId: 'channel', key: 'order-sync' },
390
- externalId: '1234',
388
+ action: "updateSyncInfo",
389
+ channel: { typeId: "channel", key: "order-sync" },
390
+ externalId: "1234",
391
391
  },
392
392
  ],
393
- })
394
- expect(response.status).toBe(200)
395
- expect(response.body.version).toBe(2)
393
+ });
394
+ expect(response.status).toBe(200);
395
+ expect(response.body.version).toBe(2);
396
396
  expect(response.body.syncInfo).toMatchObject([
397
397
  {
398
- channel: { typeId: 'channel', id: channel.id },
399
- externalId: '1234',
398
+ channel: { typeId: "channel", id: channel.id },
399
+ externalId: "1234",
400
400
  },
401
- ])
402
- })
403
- })
404
-
405
- describe('Order Import', () => {
406
- const ctMock = new CommercetoolsMock()
407
- ctMock.project('dummy').add('product', {
408
- id: '15fc56ba-a74e-4cf8-b4b0-bada5c101541',
401
+ ]);
402
+ });
403
+ });
404
+
405
+ describe("Order Import", () => {
406
+ const ctMock = new CommercetoolsMock();
407
+ ctMock.project("dummy").add("product", {
408
+ id: "15fc56ba-a74e-4cf8-b4b0-bada5c101541",
409
409
  // @ts-ignore
410
410
  masterData: {
411
411
  // @ts-ignore
412
412
  current: {
413
- name: { 'nl-NL': 'Dummy' },
414
- slug: { 'nl-NL': 'Dummy' },
413
+ name: { "nl-NL": "Dummy" },
414
+ slug: { "nl-NL": "Dummy" },
415
415
  categories: [],
416
416
  masterVariant: {
417
417
  id: 0,
418
- sku: 'MYSKU',
418
+ sku: "MYSKU",
419
419
  },
420
420
  variants: [],
421
421
  },
422
422
  },
423
- })
423
+ });
424
424
 
425
- test('Import', async () => {
425
+ test("Import", async () => {
426
426
  const response = await supertest(ctMock.app)
427
427
  .post(`/dummy/orders/import`)
428
428
  .send({
429
- orderNumber: '100000001',
429
+ orderNumber: "100000001",
430
430
  totalPrice: {
431
431
  centAmount: 1000,
432
- currencyCode: 'EUR',
432
+ currencyCode: "EUR",
433
433
  },
434
434
  customLineItems: [
435
435
  {
436
436
  name: {
437
- 'nl-NL': 'Something',
437
+ "nl-NL": "Something",
438
438
  },
439
- slug: 'my-slug',
439
+ slug: "my-slug",
440
440
  money: {
441
441
  centAmount: 1475,
442
- currencyCode: 'EUR',
442
+ currencyCode: "EUR",
443
443
  },
444
444
  quantity: 1,
445
445
  // custom: {
@@ -455,31 +455,31 @@ describe('Order Import', () => {
455
455
  ],
456
456
  lineItems: [
457
457
  {
458
- id: '15fc56ba-a74e-4cf8-b4b0-bada5c101541',
459
- productId: 'PRODUCTID',
458
+ id: "15fc56ba-a74e-4cf8-b4b0-bada5c101541",
459
+ productId: "PRODUCTID",
460
460
  name: {
461
- 'en-US': 'The product',
461
+ "en-US": "The product",
462
462
  },
463
463
  productType: {
464
- typeId: 'product-type',
465
- id: '109caecb-abe6-4900-ab03-7af5af985ff3',
464
+ typeId: "product-type",
465
+ id: "109caecb-abe6-4900-ab03-7af5af985ff3",
466
466
  // @ts-ignore
467
467
  version: 1,
468
468
  },
469
469
  variant: {
470
470
  id: 1,
471
- sku: 'MYSKU',
472
- key: 'MYKEY',
471
+ sku: "MYSKU",
472
+ key: "MYKEY",
473
473
  prices: [
474
474
  {
475
475
  value: {
476
- type: 'centPrecision',
477
- currencyCode: 'EUR',
476
+ type: "centPrecision",
477
+ currencyCode: "EUR",
478
478
  centAmount: 14900,
479
479
  fractionDigits: 2,
480
480
  },
481
- id: '87943be5-c7e6-44eb-b867-f127f94ccfe7',
482
- country: 'NL',
481
+ id: "87943be5-c7e6-44eb-b867-f127f94ccfe7",
482
+ country: "NL",
483
483
  // channel: {
484
484
  // typeId: 'channel',
485
485
  // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
@@ -499,13 +499,13 @@ describe('Order Import', () => {
499
499
  },
500
500
  price: {
501
501
  value: {
502
- type: 'centPrecision',
503
- currencyCode: 'EUR',
502
+ type: "centPrecision",
503
+ currencyCode: "EUR",
504
504
  centAmount: 14900,
505
505
  fractionDigits: 2,
506
506
  },
507
- id: '87943be5-c7e6-44eb-b867-f127f94ccfe7',
508
- country: 'NL',
507
+ id: "87943be5-c7e6-44eb-b867-f127f94ccfe7",
508
+ country: "NL",
509
509
  // channel: {
510
510
  // typeId: 'channel',
511
511
  // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
@@ -525,15 +525,15 @@ describe('Order Import', () => {
525
525
  // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
526
526
  // },
527
527
  taxRate: {
528
- name: '21% BTW',
528
+ name: "21% BTW",
529
529
  amount: 0.21,
530
530
  includedInPrice: true,
531
- country: 'NL',
532
- id: 'Z0wLUuYw',
531
+ country: "NL",
532
+ id: "Z0wLUuYw",
533
533
  subRates: [],
534
534
  },
535
- addedAt: '2020-12-08T09:10:27.085Z',
536
- lastModifiedAt: '2020-12-08T09:10:27.085Z',
535
+ addedAt: "2020-12-08T09:10:27.085Z",
536
+ lastModifiedAt: "2020-12-08T09:10:27.085Z",
537
537
  // state: [
538
538
  // {
539
539
  // quantity: 3,
@@ -543,36 +543,36 @@ describe('Order Import', () => {
543
543
  // },
544
544
  // },
545
545
  // ],
546
- priceMode: 'Platform',
546
+ priceMode: "Platform",
547
547
  totalPrice: {
548
- type: 'centPrecision',
549
- currencyCode: 'EUR',
548
+ type: "centPrecision",
549
+ currencyCode: "EUR",
550
550
  centAmount: 44700,
551
551
  fractionDigits: 2,
552
552
  },
553
553
  taxedPrice: {
554
554
  totalNet: {
555
- type: 'centPrecision',
556
- currencyCode: 'EUR',
555
+ type: "centPrecision",
556
+ currencyCode: "EUR",
557
557
  centAmount: 36942,
558
558
  fractionDigits: 2,
559
559
  },
560
560
  totalGross: {
561
- type: 'centPrecision',
562
- currencyCode: 'EUR',
561
+ type: "centPrecision",
562
+ currencyCode: "EUR",
563
563
  centAmount: 44700,
564
564
  fractionDigits: 2,
565
565
  },
566
566
  },
567
- lineItemMode: 'Standard',
567
+ lineItemMode: "Standard",
568
568
  },
569
569
  ],
570
- })
570
+ });
571
571
 
572
- expect(response.status).toBe(200)
572
+ expect(response.status).toBe(200);
573
573
 
574
- const created: Order = response.body
575
- expect(created.lineItems).toHaveLength(1)
576
- expect(created.customLineItems).toHaveLength(1)
577
- })
578
- })
574
+ const created: Order = response.body;
575
+ expect(created.lineItems).toHaveLength(1);
576
+ expect(created.customLineItems).toHaveLength(1);
577
+ });
578
+ });