@labdigital/commercetools-mock 2.17.0 → 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 +4219 -3989
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +268 -415
  4. package/dist/index.d.ts +268 -415
  5. package/dist/index.js +4219 -3989
  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 +110 -67
  30. package/src/oauth/server.ts +161 -141
  31. package/src/oauth/store.ts +49 -44
  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 +31 -29
  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,228 +1,228 @@
1
- import assert from 'assert'
2
- import supertest from 'supertest'
3
- import { afterEach, beforeEach, describe, expect, test } from 'vitest'
4
- import { CommercetoolsMock } from '../index.js'
5
- import { CartDiscount, TypeDraft } from '@commercetools/platform-sdk'
1
+ import { CartDiscount, TypeDraft } 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 "..";
6
6
 
7
7
  const typeDraft: TypeDraft = {
8
- key: 'my-type',
8
+ key: "my-type",
9
9
  name: {
10
- en: 'TestType',
10
+ en: "TestType",
11
11
  },
12
12
  description: {
13
- en: 'Test Type',
13
+ en: "Test Type",
14
14
  },
15
- resourceTypeIds: ['cart-discount'],
15
+ resourceTypeIds: ["cart-discount"],
16
16
  fieldDefinitions: [
17
17
  {
18
- name: 'discount_name',
18
+ name: "discount_name",
19
19
  label: {
20
- en: 'Discount name',
20
+ en: "Discount name",
21
21
  },
22
22
  required: false,
23
23
  type: {
24
- name: 'String',
24
+ name: "String",
25
25
  },
26
- inputHint: 'SingleLine',
26
+ inputHint: "SingleLine",
27
27
  },
28
28
  {
29
- name: 'fixedAmount',
29
+ name: "fixedAmount",
30
30
  label: {
31
- en: 'Fixed Amount',
31
+ en: "Fixed Amount",
32
32
  },
33
33
  required: true,
34
34
  type: {
35
- name: 'Money',
35
+ name: "Money",
36
36
  },
37
- inputHint: 'SingleLine',
37
+ inputHint: "SingleLine",
38
38
  },
39
39
  ],
40
- }
40
+ };
41
41
 
42
42
  const getCartDiscountDraft = (typeId: string) => ({
43
43
  version: 1,
44
- key: 'my-relative-cart-discount',
45
- name: { en: 'myRelativeCartDiscount' },
44
+ key: "my-relative-cart-discount",
45
+ name: { en: "myRelativeCartDiscount" },
46
46
  value: {
47
- type: 'relative',
47
+ type: "relative",
48
48
  permyriad: 1000,
49
49
  },
50
- description: { en: 'My relative cart discount' },
51
- target: { type: 'lineItems', predicate: '1=1' },
50
+ description: { en: "My relative cart discount" },
51
+ target: { type: "lineItems", predicate: "1=1" },
52
52
  isActive: false,
53
53
  custom: {
54
54
  type: {
55
- typeId: 'type',
55
+ typeId: "type",
56
56
  id: typeId,
57
57
  },
58
58
  fields: {
59
- discount_name: 'MyDiscount',
59
+ discount_name: "MyDiscount",
60
60
  fixedAmount: {
61
- type: 'centPrecision',
62
- currencyCode: 'USD',
61
+ type: "centPrecision",
62
+ currencyCode: "USD",
63
63
  centAmount: 15000,
64
64
  fractionDigits: 2,
65
65
  },
66
66
  },
67
67
  },
68
- validFrom: '2000-01-01T00:00:01.000Z',
69
- validUntil: '2000-12-31T23:59:59.999Z',
70
- sortOrder: '0.1',
71
- })
68
+ validFrom: "2000-01-01T00:00:01.000Z",
69
+ validUntil: "2000-12-31T23:59:59.999Z",
70
+ sortOrder: "0.1",
71
+ });
72
72
 
73
- describe('Cart Discounts Query', () => {
74
- const ctMock = new CommercetoolsMock()
73
+ describe("Cart Discounts Query", () => {
74
+ const ctMock = new CommercetoolsMock();
75
75
 
76
76
  beforeEach(async () => {
77
- let response
78
- response = await supertest(ctMock.app).post('/dummy/types').send(typeDraft)
79
- expect(response.status).toBe(201)
80
- const typeId = response._body.id
77
+ let response;
78
+ response = await supertest(ctMock.app).post("/dummy/types").send(typeDraft);
79
+ expect(response.status).toBe(201);
80
+ const typeId = response.body.id;
81
81
 
82
82
  response = await supertest(ctMock.app)
83
- .post('/dummy/cart-discounts')
84
- .send(getCartDiscountDraft(typeId))
85
- expect(response.status).toBe(201)
86
- })
83
+ .post("/dummy/cart-discounts")
84
+ .send(getCartDiscountDraft(typeId));
85
+ expect(response.status).toBe(201);
86
+ });
87
87
 
88
- test('no filter', async () => {
88
+ test("no filter", async () => {
89
89
  const response = await supertest(ctMock.app)
90
- .get('/dummy/cart-discounts')
91
- .send()
90
+ .get("/dummy/cart-discounts")
91
+ .send();
92
92
 
93
- expect(response.status).toBe(200)
94
- expect(response.body.count).toBe(1)
93
+ expect(response.status).toBe(200);
94
+ expect(response.body.count).toBe(1);
95
95
 
96
- const myRelativeCartDiscount = response.body.results[0] as CartDiscount
97
- expect(myRelativeCartDiscount.key).toBe('my-relative-cart-discount')
96
+ const myRelativeCartDiscount = response.body.results[0] as CartDiscount;
97
+ expect(myRelativeCartDiscount.key).toBe("my-relative-cart-discount");
98
98
  expect(myRelativeCartDiscount.description).toStrictEqual({
99
- en: 'My relative cart discount',
100
- })
101
- expect(myRelativeCartDiscount.isActive).toBe(false)
99
+ en: "My relative cart discount",
100
+ });
101
+ expect(myRelativeCartDiscount.isActive).toBe(false);
102
102
  expect(myRelativeCartDiscount.name).toStrictEqual({
103
- en: 'myRelativeCartDiscount',
104
- })
105
- expect(myRelativeCartDiscount.stores).toStrictEqual([])
106
- expect(myRelativeCartDiscount.references).toStrictEqual([])
103
+ en: "myRelativeCartDiscount",
104
+ });
105
+ expect(myRelativeCartDiscount.stores).toStrictEqual([]);
106
+ expect(myRelativeCartDiscount.references).toStrictEqual([]);
107
107
  expect(myRelativeCartDiscount.target).toStrictEqual({
108
- type: 'lineItems',
109
- predicate: '1=1',
110
- })
111
- expect(myRelativeCartDiscount.requiresDiscountCode).toBe(false)
112
- expect(myRelativeCartDiscount.stackingMode).toBe('Stacking')
108
+ type: "lineItems",
109
+ predicate: "1=1",
110
+ });
111
+ expect(myRelativeCartDiscount.requiresDiscountCode).toBe(false);
112
+ expect(myRelativeCartDiscount.stackingMode).toBe("Stacking");
113
113
  expect(myRelativeCartDiscount.value).toStrictEqual({
114
- type: 'relative',
114
+ type: "relative",
115
115
  permyriad: 1000,
116
- })
116
+ });
117
117
 
118
- expect(myRelativeCartDiscount.custom?.type.id).not.toBeUndefined()
119
- expect(myRelativeCartDiscount.custom?.type.typeId).toBe('type')
118
+ expect(myRelativeCartDiscount.custom?.type.id).not.toBeUndefined();
119
+ expect(myRelativeCartDiscount.custom?.type.typeId).toBe("type");
120
120
  expect(myRelativeCartDiscount.custom?.fields).toStrictEqual({
121
- discount_name: 'MyDiscount',
121
+ discount_name: "MyDiscount",
122
122
  fixedAmount: {
123
123
  centAmount: 15000,
124
- currencyCode: 'USD',
124
+ currencyCode: "USD",
125
125
  fractionDigits: 2,
126
- type: 'centPrecision',
126
+ type: "centPrecision",
127
127
  },
128
- })
129
- })
130
- })
128
+ });
129
+ });
130
+ });
131
131
 
132
- describe('Cart Discounts Update Actions', () => {
133
- const ctMock = new CommercetoolsMock()
134
- let cartDiscount: CartDiscount | undefined
132
+ describe("Cart Discounts Update Actions", () => {
133
+ const ctMock = new CommercetoolsMock();
134
+ let cartDiscount: CartDiscount | undefined;
135
135
 
136
136
  const createType = async () => {
137
137
  const response = await supertest(ctMock.app)
138
- .post('/dummy/types')
139
- .send(typeDraft)
140
- expect(response.status).toBe(201)
141
- return response.body.id
142
- }
143
-
144
- const createCartDiscount = async (typeId) => {
145
- const cartDiscountDraft = getCartDiscountDraft(typeId)
138
+ .post("/dummy/types")
139
+ .send(typeDraft);
140
+ expect(response.status).toBe(201);
141
+ return response.body.id;
142
+ };
143
+
144
+ const createCartDiscount = async (typeId: string) => {
145
+ const cartDiscountDraft = getCartDiscountDraft(typeId);
146
146
  const response = await supertest(ctMock.app)
147
- .post('/dummy/cart-discounts')
148
- .send(cartDiscountDraft)
149
- expect(response.status).toBe(201)
150
- cartDiscount = response.body
151
- }
147
+ .post("/dummy/cart-discounts")
148
+ .send(cartDiscountDraft);
149
+ expect(response.status).toBe(201);
150
+ cartDiscount = response.body;
151
+ };
152
152
 
153
153
  beforeEach(async () => {
154
- const typeId = await createType()
155
- await createCartDiscount(typeId)
156
- })
154
+ const typeId = await createType();
155
+ await createCartDiscount(typeId);
156
+ });
157
157
 
158
158
  afterEach(() => {
159
- ctMock.clear()
160
- })
159
+ ctMock.clear();
160
+ });
161
161
 
162
- test('set key', async () => {
163
- assert(cartDiscount, 'cart discount not created')
162
+ test("set key", async () => {
163
+ assert(cartDiscount, "cart discount not created");
164
164
 
165
165
  const response = await supertest(ctMock.app)
166
166
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
167
167
  .send({
168
168
  version: 1,
169
- actions: [{ action: 'setKey', key: 'my-cart-discount' }],
170
- })
171
- expect(response.status).toBe(200)
172
- expect(response.body.version).toBe(2)
173
- expect(response.body.key).toBe('my-cart-discount')
174
- })
169
+ actions: [{ action: "setKey", key: "my-cart-discount" }],
170
+ });
171
+ expect(response.status).toBe(200);
172
+ expect(response.body.version).toBe(2);
173
+ expect(response.body.key).toBe("my-cart-discount");
174
+ });
175
175
 
176
- test('set description', async () => {
177
- assert(cartDiscount, 'cart discount not created')
176
+ test("set description", async () => {
177
+ assert(cartDiscount, "cart discount not created");
178
178
 
179
179
  const response = await supertest(ctMock.app)
180
180
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
181
181
  .send({
182
182
  version: 1,
183
183
  actions: [
184
- { action: 'setDescription', description: { en: 'Description' } },
184
+ { action: "setDescription", description: { en: "Description" } },
185
185
  ],
186
- })
187
- expect(response.status).toBe(200)
188
- expect(response.body.version).toBe(2)
189
- expect(response.body.description.en).toBe('Description')
190
- })
186
+ });
187
+ expect(response.status).toBe(200);
188
+ expect(response.body.version).toBe(2);
189
+ expect(response.body.description.en).toBe("Description");
190
+ });
191
191
 
192
- test('set valid from', async () => {
193
- assert(cartDiscount, 'cart discount not created')
192
+ test("set valid from", async () => {
193
+ assert(cartDiscount, "cart discount not created");
194
194
 
195
195
  const response = await supertest(ctMock.app)
196
196
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
197
197
  .send({
198
198
  version: 1,
199
199
  actions: [
200
- { action: 'setValidFrom', validFrom: '2020-01-01T00:00:01.000Z' },
200
+ { action: "setValidFrom", validFrom: "2020-01-01T00:00:01.000Z" },
201
201
  ],
202
- })
203
- expect(response.status).toBe(200)
204
- expect(response.body.version).toBe(2)
205
- expect(response.body.validFrom).toBe('2020-01-01T00:00:01.000Z')
206
- })
202
+ });
203
+ expect(response.status).toBe(200);
204
+ expect(response.body.version).toBe(2);
205
+ expect(response.body.validFrom).toBe("2020-01-01T00:00:01.000Z");
206
+ });
207
207
 
208
- test('set valid until', async () => {
209
- assert(cartDiscount, 'cart discount not created')
208
+ test("set valid until", async () => {
209
+ assert(cartDiscount, "cart discount not created");
210
210
 
211
211
  const response = await supertest(ctMock.app)
212
212
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
213
213
  .send({
214
214
  version: 1,
215
215
  actions: [
216
- { action: 'setValidUntil', validUntil: '2020-12-31T23:59:59.999Z' },
216
+ { action: "setValidUntil", validUntil: "2020-12-31T23:59:59.999Z" },
217
217
  ],
218
- })
219
- expect(response.status).toBe(200)
220
- expect(response.body.version).toBe(2)
221
- expect(response.body.validUntil).toBe('2020-12-31T23:59:59.999Z')
222
- })
218
+ });
219
+ expect(response.status).toBe(200);
220
+ expect(response.body.version).toBe(2);
221
+ expect(response.body.validUntil).toBe("2020-12-31T23:59:59.999Z");
222
+ });
223
223
 
224
- test('set valid from and until', async () => {
225
- assert(cartDiscount, 'cart discount not created')
224
+ test("set valid from and until", async () => {
225
+ assert(cartDiscount, "cart discount not created");
226
226
 
227
227
  const response = await supertest(ctMock.app)
228
228
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -230,48 +230,48 @@ describe('Cart Discounts Update Actions', () => {
230
230
  version: 1,
231
231
  actions: [
232
232
  {
233
- action: 'setValidFromAndUntil',
234
- validFrom: '2020-01-01T00:00:01.000Z',
235
- validUntil: '2020-12-31T23:59:59.999Z',
233
+ action: "setValidFromAndUntil",
234
+ validFrom: "2020-01-01T00:00:01.000Z",
235
+ validUntil: "2020-12-31T23:59:59.999Z",
236
236
  },
237
237
  ],
238
- })
239
- expect(response.status).toBe(200)
240
- expect(response.body.version).toBe(2)
241
- expect(response.body.validFrom).toBe('2020-01-01T00:00:01.000Z')
242
- expect(response.body.validUntil).toBe('2020-12-31T23:59:59.999Z')
243
- })
238
+ });
239
+ expect(response.status).toBe(200);
240
+ expect(response.body.version).toBe(2);
241
+ expect(response.body.validFrom).toBe("2020-01-01T00:00:01.000Z");
242
+ expect(response.body.validUntil).toBe("2020-12-31T23:59:59.999Z");
243
+ });
244
244
 
245
- test('change sort order', async () => {
246
- assert(cartDiscount, 'cart discount not created')
245
+ test("change sort order", async () => {
246
+ assert(cartDiscount, "cart discount not created");
247
247
 
248
248
  const response = await supertest(ctMock.app)
249
249
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
250
250
  .send({
251
251
  version: 1,
252
- actions: [{ action: 'changeSortOrder', sortOrder: '0.2' }],
253
- })
254
- expect(response.status).toBe(200)
255
- expect(response.body.version).toBe(2)
256
- expect(response.body.sortOrder).toBe('0.2')
257
- })
252
+ actions: [{ action: "changeSortOrder", sortOrder: "0.2" }],
253
+ });
254
+ expect(response.status).toBe(200);
255
+ expect(response.body.version).toBe(2);
256
+ expect(response.body.sortOrder).toBe("0.2");
257
+ });
258
258
 
259
- test('change isActive', async () => {
260
- assert(cartDiscount, 'cart discount not created')
259
+ test("change isActive", async () => {
260
+ assert(cartDiscount, "cart discount not created");
261
261
 
262
262
  const response = await supertest(ctMock.app)
263
263
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
264
264
  .send({
265
265
  version: 1,
266
- actions: [{ action: 'changeIsActive', isActive: true }],
267
- })
268
- expect(response.status).toBe(200)
269
- expect(response.body.version).toBe(2)
270
- expect(response.body.isActive).toBe(true)
271
- })
266
+ actions: [{ action: "changeIsActive", isActive: true }],
267
+ });
268
+ expect(response.status).toBe(200);
269
+ expect(response.body.version).toBe(2);
270
+ expect(response.body.isActive).toBe(true);
271
+ });
272
272
 
273
- test('change target', async () => {
274
- assert(cartDiscount, 'cart discount not created')
273
+ test("change target", async () => {
274
+ assert(cartDiscount, "cart discount not created");
275
275
 
276
276
  const response = await supertest(ctMock.app)
277
277
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -279,21 +279,21 @@ describe('Cart Discounts Update Actions', () => {
279
279
  version: 1,
280
280
  actions: [
281
281
  {
282
- action: 'changeTarget',
283
- target: { type: 'shippingInfo', predicate: '2=2' },
282
+ action: "changeTarget",
283
+ target: { type: "shippingInfo", predicate: "2=2" },
284
284
  },
285
285
  ],
286
- })
287
- expect(response.status).toBe(200)
288
- expect(response.body.version).toBe(2)
286
+ });
287
+ expect(response.status).toBe(200);
288
+ expect(response.body.version).toBe(2);
289
289
  expect(response.body.target).toStrictEqual({
290
- type: 'shippingInfo',
291
- predicate: '2=2',
292
- })
293
- })
290
+ type: "shippingInfo",
291
+ predicate: "2=2",
292
+ });
293
+ });
294
294
 
295
- test('set custom field', async () => {
296
- assert(cartDiscount, 'cart discount not created')
295
+ test("set custom field", async () => {
296
+ assert(cartDiscount, "cart discount not created");
297
297
 
298
298
  const response = await supertest(ctMock.app)
299
299
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -301,29 +301,29 @@ describe('Cart Discounts Update Actions', () => {
301
301
  version: 1,
302
302
  actions: [
303
303
  {
304
- action: 'setCustomField',
305
- name: 'fixedAmount',
304
+ action: "setCustomField",
305
+ name: "fixedAmount",
306
306
  value: {
307
- type: 'centPrecision',
308
- currencyCode: 'EUR',
307
+ type: "centPrecision",
308
+ currencyCode: "EUR",
309
309
  centAmount: 15,
310
310
  fractionDigits: 2,
311
311
  },
312
312
  },
313
313
  ],
314
- })
315
- expect(response.status).toBe(200)
316
- expect(response.body.version).toBe(2)
314
+ });
315
+ expect(response.status).toBe(200);
316
+ expect(response.body.version).toBe(2);
317
317
  expect(response.body.custom.fields.fixedAmount).toStrictEqual({
318
- type: 'centPrecision',
319
- currencyCode: 'EUR',
318
+ type: "centPrecision",
319
+ currencyCode: "EUR",
320
320
  centAmount: 15,
321
321
  fractionDigits: 2,
322
- })
323
- })
322
+ });
323
+ });
324
324
 
325
- test('reset custom field', async () => {
326
- assert(cartDiscount, 'cart discount not created')
325
+ test("reset custom field", async () => {
326
+ assert(cartDiscount, "cart discount not created");
327
327
 
328
328
  const response = await supertest(ctMock.app)
329
329
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -331,19 +331,19 @@ describe('Cart Discounts Update Actions', () => {
331
331
  version: 1,
332
332
  actions: [
333
333
  {
334
- action: 'setCustomField',
335
- name: 'fixedAmount',
334
+ action: "setCustomField",
335
+ name: "fixedAmount",
336
336
  value: null,
337
337
  },
338
338
  ],
339
- })
340
- expect(response.status).toBe(200)
341
- expect(response.body.version).toBe(2)
342
- expect(response.body.custom.fields.fixedAmount).toBeUndefined()
343
- })
339
+ });
340
+ expect(response.status).toBe(200);
341
+ expect(response.body.version).toBe(2);
342
+ expect(response.body.custom.fields.fixedAmount).toBeUndefined();
343
+ });
344
344
 
345
- test('reset non-existing custom field', async () => {
346
- assert(cartDiscount, 'cart discount not created')
345
+ test("reset non-existing custom field", async () => {
346
+ assert(cartDiscount, "cart discount not created");
347
347
 
348
348
  const response = await supertest(ctMock.app)
349
349
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -351,17 +351,17 @@ describe('Cart Discounts Update Actions', () => {
351
351
  version: 1,
352
352
  actions: [
353
353
  {
354
- action: 'setCustomField',
355
- name: 'nonExistingField',
354
+ action: "setCustomField",
355
+ name: "nonExistingField",
356
356
  value: null,
357
357
  },
358
358
  ],
359
- })
360
- expect(response.status).toBe(400)
361
- })
359
+ });
360
+ expect(response.status).toBe(400);
361
+ });
362
362
 
363
- test('remove all custom fields', async () => {
364
- assert(cartDiscount, 'cart discount not created')
363
+ test("remove all custom fields", async () => {
364
+ assert(cartDiscount, "cart discount not created");
365
365
 
366
366
  const response = await supertest(ctMock.app)
367
367
  .post(`/dummy/cart-discounts/${cartDiscount.id}`)
@@ -369,12 +369,12 @@ describe('Cart Discounts Update Actions', () => {
369
369
  version: 1,
370
370
  actions: [
371
371
  {
372
- action: 'setCustomType',
372
+ action: "setCustomType",
373
373
  },
374
374
  ],
375
- })
376
- expect(response.status).toBe(200)
377
- expect(response.body.version).toBe(2)
378
- expect(response.body.custom).toBeUndefined()
379
- })
380
- })
375
+ });
376
+ expect(response.status).toBe(200);
377
+ expect(response.body.version).toBe(2);
378
+ expect(response.body.custom).toBeUndefined();
379
+ });
380
+ });
@@ -1,16 +1,16 @@
1
- import { Router } from 'express'
2
- import { CartDiscountRepository } from '../repositories/cart-discount.js'
3
- import AbstractService from './abstract.js'
1
+ import { Router } from "express";
2
+ import { CartDiscountRepository } from "../repositories/cart-discount";
3
+ import AbstractService from "./abstract";
4
4
 
5
5
  export class CartDiscountService extends AbstractService {
6
- public repository: CartDiscountRepository
6
+ public repository: CartDiscountRepository;
7
7
 
8
8
  constructor(parent: Router, repository: CartDiscountRepository) {
9
- super(parent)
10
- this.repository = repository
9
+ super(parent);
10
+ this.repository = repository;
11
11
  }
12
12
 
13
13
  getBasePath() {
14
- return 'cart-discounts'
14
+ return "cart-discounts";
15
15
  }
16
16
  }