@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
@@ -2,20 +2,20 @@ import {
2
2
  Product,
3
3
  ShoppingList,
4
4
  ShoppingListDraft,
5
- } from '@commercetools/platform-sdk'
6
- import supertest from 'supertest'
7
- import { afterEach, beforeEach, describe, expect, test } from 'vitest'
8
- import { CommercetoolsMock } from '../ctMock'
5
+ } from "@commercetools/platform-sdk";
6
+ import supertest from "supertest";
7
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
8
+ import { CommercetoolsMock } from "../ctMock";
9
9
 
10
10
  const shoppingList: ShoppingList = {
11
- id: 'f15b4a80-7def-4381-bf6a-c66cab258a2b',
11
+ id: "f15b4a80-7def-4381-bf6a-c66cab258a2b",
12
12
  version: 1,
13
13
  lineItems: [
14
14
  {
15
- addedAt: '2021-08-03T14:19:29.496Z',
16
- productType: { typeId: 'product-type', id: 'product-type-id' },
17
- id: '42ea3c57-aced-49ea-ae70-7005a47c7463',
18
- productId: '303bf5d8-1201-4fb9-8157-ff6efb8c04b4',
15
+ addedAt: "2021-08-03T14:19:29.496Z",
16
+ productType: { typeId: "product-type", id: "product-type-id" },
17
+ id: "42ea3c57-aced-49ea-ae70-7005a47c7463",
18
+ productId: "303bf5d8-1201-4fb9-8157-ff6efb8c04b4",
19
19
  name: {},
20
20
  quantity: 1,
21
21
  productSlug: {},
@@ -23,19 +23,19 @@ const shoppingList: ShoppingList = {
23
23
  },
24
24
  ],
25
25
  textLineItems: [],
26
- createdAt: '2021-07-22T12:23:33.472Z',
27
- lastModifiedAt: '2021-08-03T14:19:29.496Z',
26
+ createdAt: "2021-07-22T12:23:33.472Z",
27
+ lastModifiedAt: "2021-08-03T14:19:29.496Z",
28
28
  name: {},
29
- }
29
+ };
30
30
 
31
31
  export const product: Product = {
32
- id: '303bf5d8-1201-4fb9-8157-ff6efb8c04b4',
33
- createdAt: '2022-05-30T13:21:26.777Z',
34
- lastModifiedAt: '2022-05-30T13:21:26.777Z',
32
+ id: "303bf5d8-1201-4fb9-8157-ff6efb8c04b4",
33
+ createdAt: "2022-05-30T13:21:26.777Z",
34
+ lastModifiedAt: "2022-05-30T13:21:26.777Z",
35
35
  version: 1,
36
36
  productType: {
37
- typeId: 'product-type',
38
- id: '303bf5d8-1201-4fb9-8157-ff6efb8c04b4',
37
+ typeId: "product-type",
38
+ id: "303bf5d8-1201-4fb9-8157-ff6efb8c04b4",
39
39
  },
40
40
  masterData: {
41
41
  staged: {
@@ -44,7 +44,7 @@ export const product: Product = {
44
44
  slug: {},
45
45
  masterVariant: {
46
46
  id: 1,
47
- sku: '1',
47
+ sku: "1",
48
48
  },
49
49
  variants: [],
50
50
  searchKeywords: {},
@@ -60,7 +60,7 @@ export const product: Product = {
60
60
  variants: [
61
61
  {
62
62
  id: 2,
63
- sku: '22241940260',
63
+ sku: "22241940260",
64
64
  },
65
65
  ],
66
66
  searchKeywords: {},
@@ -68,79 +68,79 @@ export const product: Product = {
68
68
  hasStagedChanges: true,
69
69
  published: true,
70
70
  },
71
- }
71
+ };
72
72
 
73
- describe('Shopping List', () => {
73
+ describe("Shopping List", () => {
74
74
  const ctMock = new CommercetoolsMock({
75
- defaultProjectKey: 'dummy',
76
- })
75
+ defaultProjectKey: "dummy",
76
+ });
77
77
 
78
78
  beforeEach(() => {
79
- ctMock.project().add('product', product)
80
- ctMock.project().add('shopping-list', shoppingList)
81
- })
79
+ ctMock.project().add("product", product);
80
+ ctMock.project().add("shopping-list", shoppingList);
81
+ });
82
82
 
83
- test('Adds variant ID on lineItems when creating', async () => {
83
+ test("Adds variant ID on lineItems when creating", async () => {
84
84
  const draft: ShoppingListDraft = {
85
85
  name: {},
86
- lineItems: [{ sku: '22241940260' }],
87
- }
86
+ lineItems: [{ sku: "22241940260" }],
87
+ };
88
88
  const response = await supertest(ctMock.app)
89
- .post('/dummy/shopping-lists')
90
- .send(draft)
89
+ .post("/dummy/shopping-lists")
90
+ .send(draft);
91
91
 
92
- expect(response.status).toBe(201)
93
- expect(response.body.lineItems[0].variantId).toBe(2)
94
- })
92
+ expect(response.status).toBe(201);
93
+ expect(response.body.lineItems[0].variantId).toBe(2);
94
+ });
95
95
 
96
- test('Expands variant on lineItems when getting', async () => {
96
+ test("Expands variant on lineItems when getting", async () => {
97
97
  const response = await supertest(ctMock.app)
98
98
  .get(`/dummy/shopping-lists/${shoppingList.id}`)
99
- .query({ expand: 'lineItems[*].variant' })
99
+ .query({ expand: "lineItems[*].variant" });
100
100
 
101
- expect(response.status).toBe(200)
101
+ expect(response.status).toBe(200);
102
102
  expect(response.body.lineItems[0].variant).toEqual({
103
103
  id: 2,
104
- sku: '22241940260',
105
- })
106
- })
104
+ sku: "22241940260",
105
+ });
106
+ });
107
107
 
108
- test('Expands variant on lineItems when creating', async () => {
108
+ test("Expands variant on lineItems when creating", async () => {
109
109
  const draft: ShoppingListDraft = {
110
110
  name: {},
111
- lineItems: [{ sku: '22241940260' }],
112
- }
111
+ lineItems: [{ sku: "22241940260" }],
112
+ };
113
113
  const response = await supertest(ctMock.app)
114
- .post('/dummy/shopping-lists')
115
- .query({ expand: 'lineItems[*].variant' })
116
- .send(draft)
114
+ .post("/dummy/shopping-lists")
115
+ .query({ expand: "lineItems[*].variant" })
116
+ .send(draft);
117
117
 
118
- expect(response.status).toBe(201)
118
+ expect(response.status).toBe(201);
119
119
  expect(response.body.lineItems[0].variant).toEqual({
120
120
  id: 2,
121
- sku: '22241940260',
122
- })
123
- })
124
- })
121
+ sku: "22241940260",
122
+ });
123
+ });
124
+ });
125
125
 
126
- describe('Shopping List Update Actions', () => {
126
+ describe("Shopping List Update Actions", () => {
127
127
  const ctMock = new CommercetoolsMock({
128
- defaultProjectKey: 'dummy',
129
- })
128
+ defaultProjectKey: "dummy",
129
+ });
130
130
 
131
131
  beforeEach(() => {
132
- ctMock.project().add('product', product)
133
- ctMock.project().add('shopping-list', shoppingList)
134
- })
132
+ ctMock.project().add("product", product);
133
+ ctMock.project().add("shopping-list", shoppingList);
134
+ });
135
135
 
136
136
  afterEach(() => {
137
- ctMock.clear()
138
- })
137
+ ctMock.clear();
138
+ });
139
139
 
140
- test('addLineItem by productID & variantID', async () => {
141
- ctMock.clear()
142
- ctMock.project().add('product', product)
143
- ctMock.project().add('shopping-list', { ...shoppingList, lineItems: [] })
140
+ test("addLineItem by productID & variantID", async () => {
141
+ ctMock.clear();
142
+ ctMock.project().add("product", product);
143
+ ctMock.project().add("shopping-list", { ...shoppingList, lineItems: [] });
144
144
 
145
145
  const response = await supertest(ctMock.app)
146
146
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
@@ -148,22 +148,22 @@ describe('Shopping List Update Actions', () => {
148
148
  version: 1,
149
149
  actions: [
150
150
  {
151
- action: 'addLineItem',
151
+ action: "addLineItem",
152
152
  productId: product.id,
153
153
  variantId: product.masterData.current.variants[0].id,
154
154
  },
155
155
  ],
156
- })
157
- expect(response.status).toBe(200)
158
- expect(response.body.version).toBe(2)
159
- expect(response.body.lineItems).toHaveLength(1)
160
- expect(response.body.lineItems[0].variantId).toEqual(2)
161
- })
156
+ });
157
+ expect(response.status).toBe(200);
158
+ expect(response.body.version).toBe(2);
159
+ expect(response.body.lineItems).toHaveLength(1);
160
+ expect(response.body.lineItems[0].variantId).toEqual(2);
161
+ });
162
162
 
163
- test('addLineItem by productID', async () => {
164
- ctMock.clear()
165
- ctMock.project().add('product', product)
166
- ctMock.project().add('shopping-list', { ...shoppingList, lineItems: [] })
163
+ test("addLineItem by productID", async () => {
164
+ ctMock.clear();
165
+ ctMock.project().add("product", product);
166
+ ctMock.project().add("shopping-list", { ...shoppingList, lineItems: [] });
167
167
 
168
168
  const response = await supertest(ctMock.app)
169
169
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
@@ -171,21 +171,21 @@ describe('Shopping List Update Actions', () => {
171
171
  version: 1,
172
172
  actions: [
173
173
  {
174
- action: 'addLineItem',
174
+ action: "addLineItem",
175
175
  productId: product.id,
176
176
  },
177
177
  ],
178
- })
179
- expect(response.status).toBe(200)
180
- expect(response.body.version).toBe(2)
181
- expect(response.body.lineItems).toHaveLength(1)
182
- expect(response.body.lineItems[0].variantId).toEqual(1)
183
- })
178
+ });
179
+ expect(response.status).toBe(200);
180
+ expect(response.body.version).toBe(2);
181
+ expect(response.body.lineItems).toHaveLength(1);
182
+ expect(response.body.lineItems[0].variantId).toEqual(1);
183
+ });
184
184
 
185
- test('addLineItem by sku', async () => {
186
- ctMock.clear()
187
- ctMock.project().add('product', product)
188
- ctMock.project().add('shopping-list', { ...shoppingList, lineItems: [] })
185
+ test("addLineItem by sku", async () => {
186
+ ctMock.clear();
187
+ ctMock.project().add("product", product);
188
+ ctMock.project().add("shopping-list", { ...shoppingList, lineItems: [] });
189
189
 
190
190
  const response = await supertest(ctMock.app)
191
191
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
@@ -193,76 +193,76 @@ describe('Shopping List Update Actions', () => {
193
193
  version: 1,
194
194
  actions: [
195
195
  {
196
- action: 'addLineItem',
197
- sku: '22241940260',
196
+ action: "addLineItem",
197
+ sku: "22241940260",
198
198
  },
199
199
  ],
200
- })
201
- expect(response.status).toBe(200)
202
- expect(response.body.version).toBe(2)
203
- expect(response.body.lineItems).toHaveLength(1)
204
- expect(response.body.lineItems[0].variantId).toEqual(2)
205
- })
200
+ });
201
+ expect(response.status).toBe(200);
202
+ expect(response.body.version).toBe(2);
203
+ expect(response.body.lineItems).toHaveLength(1);
204
+ expect(response.body.lineItems[0].variantId).toEqual(2);
205
+ });
206
206
 
207
- test('addLineItem increases quantity', async () => {
207
+ test("addLineItem increases quantity", async () => {
208
208
  const response = await supertest(ctMock.app)
209
209
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
210
210
  .send({
211
211
  version: 1,
212
212
  actions: [
213
213
  {
214
- action: 'addLineItem',
215
- sku: '22241940260',
214
+ action: "addLineItem",
215
+ sku: "22241940260",
216
216
  },
217
217
  ],
218
- })
219
- expect(response.status).toBe(200)
220
- expect(response.body.version).toBe(2)
221
- expect(response.body.lineItems).toHaveLength(1)
222
- expect(response.body.lineItems[0].variantId).toEqual(2)
223
- expect(response.body.lineItems[0].quantity).toEqual(2)
224
- })
218
+ });
219
+ expect(response.status).toBe(200);
220
+ expect(response.body.version).toBe(2);
221
+ expect(response.body.lineItems).toHaveLength(1);
222
+ expect(response.body.lineItems[0].variantId).toEqual(2);
223
+ expect(response.body.lineItems[0].quantity).toEqual(2);
224
+ });
225
225
 
226
- test('addLineItem unknown product', async () => {
226
+ test("addLineItem unknown product", async () => {
227
227
  const response = await supertest(ctMock.app)
228
228
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
229
229
  .send({
230
230
  version: 1,
231
- actions: [{ action: 'addLineItem', productId: '123', variantId: 1 }],
232
- })
233
- expect(response.status).toBe(400)
234
- expect(response.body.message).toBe("A product with ID '123' not found.")
235
- })
231
+ actions: [{ action: "addLineItem", productId: "123", variantId: 1 }],
232
+ });
233
+ expect(response.status).toBe(400);
234
+ expect(response.body.message).toBe("A product with ID '123' not found.");
235
+ });
236
236
 
237
- test('removeLineItem', async () => {
237
+ test("removeLineItem", async () => {
238
238
  const response = await supertest(ctMock.app)
239
239
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
240
240
  .send({
241
241
  version: 1,
242
242
  actions: [
243
243
  {
244
- action: 'removeLineItem',
244
+ action: "removeLineItem",
245
245
  lineItemId: shoppingList.lineItems[0].id,
246
246
  },
247
247
  ],
248
- })
249
- expect(response.status).toBe(200)
250
- expect(response.body.version).toBe(2)
251
- expect(response.body.lineItems).toHaveLength(0)
252
- })
248
+ });
249
+ expect(response.status).toBe(200);
250
+ expect(response.body.version).toBe(2);
251
+ expect(response.body.lineItems).toHaveLength(0);
252
+ });
253
253
 
254
- test('removeLineItem decreases quantity', async () => {
254
+ test("removeLineItem decreases quantity", async () => {
255
255
  await supertest(ctMock.app)
256
256
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
257
257
  .send({
258
258
  version: 1,
259
259
  actions: [
260
260
  {
261
- action: 'addLineItem',
262
- sku: '22241940260',
261
+ action: "addLineItem",
262
+ sku: "22241940260",
263
263
  },
264
264
  ],
265
- })
265
+ });
266
266
 
267
267
  const response = await supertest(ctMock.app)
268
268
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
@@ -270,100 +270,100 @@ describe('Shopping List Update Actions', () => {
270
270
  version: 2,
271
271
  actions: [
272
272
  {
273
- action: 'removeLineItem',
273
+ action: "removeLineItem",
274
274
  lineItemId: shoppingList.lineItems[0].id,
275
275
  quantity: 1,
276
276
  },
277
277
  ],
278
- })
279
- expect(response.status).toBe(200)
280
- expect(response.body.version).toBe(3)
281
- expect(response.body.lineItems).toHaveLength(1)
282
- expect(response.body.lineItems[0].quantity).toBe(1)
283
- })
278
+ });
279
+ expect(response.status).toBe(200);
280
+ expect(response.body.version).toBe(3);
281
+ expect(response.body.lineItems).toHaveLength(1);
282
+ expect(response.body.lineItems[0].quantity).toBe(1);
283
+ });
284
284
 
285
- test('changeLineItemQuantity sets quantity', async () => {
285
+ test("changeLineItemQuantity sets quantity", async () => {
286
286
  const response = await supertest(ctMock.app)
287
287
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
288
288
  .send({
289
289
  version: 1,
290
290
  actions: [
291
291
  {
292
- action: 'changeLineItemQuantity',
292
+ action: "changeLineItemQuantity",
293
293
  lineItemId: shoppingList.lineItems[0].id,
294
294
  quantity: 2,
295
295
  },
296
296
  ],
297
- })
298
- expect(response.status).toBe(200)
299
- expect(response.body.version).toBe(2)
300
- expect(response.body.lineItems.length).toBe(1)
301
- expect(response.body.lineItems[0].quantity).toBe(2)
302
- })
297
+ });
298
+ expect(response.status).toBe(200);
299
+ expect(response.body.version).toBe(2);
300
+ expect(response.body.lineItems.length).toBe(1);
301
+ expect(response.body.lineItems[0].quantity).toBe(2);
302
+ });
303
303
 
304
- test('changeLineItemQuantity removes line item if quantity is 0', async () => {
304
+ test("changeLineItemQuantity removes line item if quantity is 0", async () => {
305
305
  const response = await supertest(ctMock.app)
306
306
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
307
307
  .send({
308
308
  version: 1,
309
309
  actions: [
310
310
  {
311
- action: 'changeLineItemQuantity',
311
+ action: "changeLineItemQuantity",
312
312
  lineItemId: shoppingList.lineItems[0].id,
313
313
  quantity: 0,
314
314
  },
315
315
  ],
316
- })
317
- expect(response.status).toBe(200)
318
- expect(response.body.version).toBe(2)
319
- expect(response.body.lineItems.length).toBe(0)
320
- })
316
+ });
317
+ expect(response.status).toBe(200);
318
+ expect(response.body.version).toBe(2);
319
+ expect(response.body.lineItems.length).toBe(0);
320
+ });
321
321
 
322
- test('various setters', async () => {
322
+ test("various setters", async () => {
323
323
  const response = await supertest(ctMock.app)
324
324
  .post(`/dummy/shopping-lists/${shoppingList.id}`)
325
325
  .send({
326
326
  version: 1,
327
327
  actions: [
328
328
  {
329
- action: 'setKey',
330
- key: 'new-key',
329
+ action: "setKey",
330
+ key: "new-key",
331
331
  },
332
332
  {
333
- action: 'setSlug',
334
- slug: 'new-slug',
333
+ action: "setSlug",
334
+ slug: "new-slug",
335
335
  },
336
336
  {
337
- action: 'changeName',
338
- name: { en: 'new name' },
337
+ action: "changeName",
338
+ name: { en: "new name" },
339
339
  },
340
340
  {
341
- action: 'setDescription',
342
- description: { en: 'new description' },
341
+ action: "setDescription",
342
+ description: { en: "new description" },
343
343
  },
344
344
  {
345
- action: 'setCustomer',
346
- customer: { typeId: 'customer', id: 'customer-id' },
345
+ action: "setCustomer",
346
+ customer: { typeId: "customer", id: "customer-id" },
347
347
  },
348
- { action: 'setStore', store: { typeId: 'store', key: 'store-key' } },
349
- { action: 'setAnonymousId', anonymousId: 'new-anonymous-id' },
348
+ { action: "setStore", store: { typeId: "store", key: "store-key" } },
349
+ { action: "setAnonymousId", anonymousId: "new-anonymous-id" },
350
350
  {
351
- action: 'setDeleteDaysAfterLastModification',
351
+ action: "setDeleteDaysAfterLastModification",
352
352
  deleteDaysAfterLastModification: 1,
353
353
  },
354
354
  ],
355
- })
356
- expect(response.status).toBe(200)
357
- expect(response.body.key).toBe('new-key')
358
- expect(response.body.slug).toBe('new-slug')
359
- expect(response.body.name).toEqual({ en: 'new name' })
360
- expect(response.body.description).toEqual({ en: 'new description' })
355
+ });
356
+ expect(response.status).toBe(200);
357
+ expect(response.body.key).toBe("new-key");
358
+ expect(response.body.slug).toBe("new-slug");
359
+ expect(response.body.name).toEqual({ en: "new name" });
360
+ expect(response.body.description).toEqual({ en: "new description" });
361
361
  expect(response.body.customer).toEqual({
362
- typeId: 'customer',
363
- id: 'customer-id',
364
- })
365
- expect(response.body.store).toEqual({ typeId: 'store', key: 'store-key' })
366
- expect(response.body.anonymousId).toEqual('new-anonymous-id')
367
- expect(response.body.deleteDaysAfterLastModification).toEqual(1)
368
- })
369
- })
362
+ typeId: "customer",
363
+ id: "customer-id",
364
+ });
365
+ expect(response.body.store).toEqual({ typeId: "store", key: "store-key" });
366
+ expect(response.body.anonymousId).toEqual("new-anonymous-id");
367
+ expect(response.body.deleteDaysAfterLastModification).toEqual(1);
368
+ });
369
+ });
@@ -1,16 +1,16 @@
1
- import { Router } from 'express'
2
- import { ShoppingListRepository } from './../repositories/shopping-list.js'
3
- import AbstractService from './abstract.js'
1
+ import { Router } from "express";
2
+ import { ShoppingListRepository } from "../repositories/shopping-list";
3
+ import AbstractService from "./abstract";
4
4
 
5
5
  export class ShoppingListService extends AbstractService {
6
- public repository: ShoppingListRepository
6
+ public repository: ShoppingListRepository;
7
7
 
8
8
  constructor(parent: Router, repository: ShoppingListRepository) {
9
- super(parent)
10
- this.repository = repository
9
+ super(parent);
10
+ this.repository = repository;
11
11
  }
12
12
 
13
13
  getBasePath() {
14
- return 'shopping-lists'
14
+ return "shopping-lists";
15
15
  }
16
16
  }