@labdigital/commercetools-mock 1.5.0 → 1.6.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 (129) hide show
  1. package/README.md +5 -4
  2. package/dist/index.cjs +105 -17
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +29 -7
  5. package/dist/index.d.ts +29 -7
  6. package/dist/index.js +105 -17
  7. package/dist/index.js.map +1 -1
  8. package/package.json +4 -3
  9. package/src/constants.ts +2 -2
  10. package/src/ctMock.ts +176 -176
  11. package/src/exceptions.ts +10 -10
  12. package/src/helpers.ts +26 -26
  13. package/src/index.test.ts +173 -173
  14. package/src/index.ts +3 -3
  15. package/src/lib/expandParser.ts +19 -19
  16. package/src/lib/haversine.test.ts +13 -13
  17. package/src/lib/haversine.ts +14 -14
  18. package/src/lib/masking.ts +15 -15
  19. package/src/lib/parser.ts +2 -2
  20. package/src/lib/predicateParser.test.ts +204 -204
  21. package/src/lib/predicateParser.ts +398 -398
  22. package/src/lib/projectionSearchFilter.test.ts +168 -168
  23. package/src/lib/projectionSearchFilter.ts +272 -269
  24. package/src/lib/proxy.ts +8 -8
  25. package/src/oauth/errors.ts +4 -4
  26. package/src/oauth/helpers.ts +6 -6
  27. package/src/oauth/server.ts +103 -101
  28. package/src/oauth/store.ts +27 -27
  29. package/src/priceSelector.test.ts +68 -68
  30. package/src/priceSelector.ts +70 -70
  31. package/src/product-projection-search.ts +296 -296
  32. package/src/projectAPI.test.ts +3 -3
  33. package/src/projectAPI.ts +46 -46
  34. package/src/repositories/abstract.ts +190 -190
  35. package/src/repositories/associate-role.ts +10 -7
  36. package/src/repositories/attribute-group.ts +63 -8
  37. package/src/repositories/business-unit.ts +10 -7
  38. package/src/repositories/cart-discount.ts +134 -134
  39. package/src/repositories/cart.ts +517 -514
  40. package/src/repositories/category.ts +170 -167
  41. package/src/repositories/channel.ts +114 -111
  42. package/src/repositories/custom-object.ts +66 -63
  43. package/src/repositories/customer-group.ts +72 -69
  44. package/src/repositories/customer.ts +90 -90
  45. package/src/repositories/discount-code.ts +171 -168
  46. package/src/repositories/errors.ts +15 -15
  47. package/src/repositories/extension.ts +79 -76
  48. package/src/repositories/helpers.ts +180 -180
  49. package/src/repositories/index.ts +39 -39
  50. package/src/repositories/inventory-entry.ts +98 -95
  51. package/src/repositories/my-order.ts +11 -11
  52. package/src/repositories/order-edit.ts +29 -29
  53. package/src/repositories/order.test.ts +191 -191
  54. package/src/repositories/order.ts +393 -393
  55. package/src/repositories/payment.ts +155 -155
  56. package/src/repositories/product-discount.ts +149 -149
  57. package/src/repositories/product-projection.ts +116 -52
  58. package/src/repositories/product-selection.ts +31 -31
  59. package/src/repositories/product-type.ts +156 -156
  60. package/src/repositories/product.ts +600 -597
  61. package/src/repositories/project.ts +136 -135
  62. package/src/repositories/quote-request.ts +19 -19
  63. package/src/repositories/quote.ts +19 -19
  64. package/src/repositories/review.ts +24 -24
  65. package/src/repositories/shipping-method.ts +217 -217
  66. package/src/repositories/shopping-list.ts +49 -49
  67. package/src/repositories/staged-quote.ts +20 -20
  68. package/src/repositories/standalone-price.ts +72 -61
  69. package/src/repositories/state.ts +84 -84
  70. package/src/repositories/store.ts +114 -114
  71. package/src/repositories/subscription.ts +40 -40
  72. package/src/repositories/tax-category.ts +98 -98
  73. package/src/repositories/type.ts +157 -157
  74. package/src/repositories/zone.ts +71 -71
  75. package/src/server.ts +2 -2
  76. package/src/services/abstract.ts +173 -173
  77. package/src/services/attribute-group.ts +16 -0
  78. package/src/services/cart-discount.ts +8 -8
  79. package/src/services/cart.test.ts +409 -409
  80. package/src/services/cart.ts +50 -50
  81. package/src/services/category.test.ts +25 -25
  82. package/src/services/category.ts +8 -8
  83. package/src/services/channel.ts +8 -8
  84. package/src/services/custom-object.test.ts +184 -184
  85. package/src/services/custom-object.ts +48 -48
  86. package/src/services/customer-group.ts +8 -8
  87. package/src/services/customer.test.ts +151 -151
  88. package/src/services/customer.ts +27 -27
  89. package/src/services/discount-code.ts +8 -8
  90. package/src/services/extension.ts +8 -8
  91. package/src/services/index.ts +52 -44
  92. package/src/services/inventory-entry.test.ts +162 -162
  93. package/src/services/inventory-entry.ts +8 -8
  94. package/src/services/my-cart.test.ts +78 -78
  95. package/src/services/my-cart.ts +28 -28
  96. package/src/services/my-customer.test.ts +44 -44
  97. package/src/services/my-customer.ts +53 -53
  98. package/src/services/my-order.ts +20 -20
  99. package/src/services/my-payment.test.ts +65 -65
  100. package/src/services/my-payment.ts +8 -8
  101. package/src/services/order.test.ts +527 -527
  102. package/src/services/order.ts +31 -31
  103. package/src/services/payment.test.ts +65 -65
  104. package/src/services/payment.ts +8 -8
  105. package/src/services/product-discount.ts +8 -8
  106. package/src/services/product-projection.test.ts +492 -428
  107. package/src/services/product-projection.ts +32 -18
  108. package/src/services/product-type.test.ts +56 -56
  109. package/src/services/product-type.ts +8 -8
  110. package/src/services/product.test.ts +510 -510
  111. package/src/services/product.ts +8 -8
  112. package/src/services/project.ts +34 -34
  113. package/src/services/shipping-method.test.ts +81 -81
  114. package/src/services/shipping-method.ts +12 -12
  115. package/src/services/shopping-list.ts +8 -8
  116. package/src/services/standalone-price.test.ts +256 -256
  117. package/src/services/standalone-price.ts +8 -8
  118. package/src/services/state.test.ts +42 -42
  119. package/src/services/state.ts +8 -8
  120. package/src/services/store.test.ts +57 -57
  121. package/src/services/store.ts +8 -8
  122. package/src/services/subscription.ts +8 -8
  123. package/src/services/tax-category.test.ts +61 -61
  124. package/src/services/tax-category.ts +8 -8
  125. package/src/services/type.ts +8 -8
  126. package/src/services/zone.ts +8 -8
  127. package/src/storage/abstract.ts +58 -58
  128. package/src/storage/in-memory.ts +419 -419
  129. package/src/types.ts +82 -82
@@ -4,207 +4,207 @@ import { InMemoryStorage } from '../storage/index.js'
4
4
  import { OrderRepository } from './order.js'
5
5
 
6
6
  describe('Order repository', () => {
7
- const storage = new InMemoryStorage()
8
- const repository = new OrderRepository(storage)
7
+ const storage = new InMemoryStorage()
8
+ const repository = new OrderRepository(storage)
9
9
 
10
- test('create from cart', async () => {
11
- const cart: Cart = {
12
- id: 'b3875a58-4ab2-4aaa-b399-184ce7561c27',
13
- version: 1,
14
- createdAt: '2021-09-02T12:23:30.036Z',
15
- lastModifiedAt: '2021-09-02T12:23:30.546Z',
16
- discountCodes: [],
17
- directDiscounts : [],
18
- inventoryMode: 'None',
19
- itemShippingAddresses: [],
20
- lineItems: [],
21
- customLineItems: [],
22
- totalPrice: {
23
- type: 'centPrecision',
24
- currencyCode: 'EUR',
25
- centAmount: 10000,
26
- fractionDigits: 2,
27
- },
28
- cartState: 'Active',
29
- shippingMode: 'Single',
30
- shipping: [],
31
- taxMode: 'Platform',
32
- taxRoundingMode: 'HalfEven',
33
- taxCalculationMode: 'UnitPriceLevel',
34
- refusedGifts: [],
35
- origin: 'Customer',
36
- }
10
+ test('create from cart', async () => {
11
+ const cart: Cart = {
12
+ id: 'b3875a58-4ab2-4aaa-b399-184ce7561c27',
13
+ version: 1,
14
+ createdAt: '2021-09-02T12:23:30.036Z',
15
+ lastModifiedAt: '2021-09-02T12:23:30.546Z',
16
+ discountCodes: [],
17
+ directDiscounts: [],
18
+ inventoryMode: 'None',
19
+ itemShippingAddresses: [],
20
+ lineItems: [],
21
+ customLineItems: [],
22
+ totalPrice: {
23
+ type: 'centPrecision',
24
+ currencyCode: 'EUR',
25
+ centAmount: 10000,
26
+ fractionDigits: 2,
27
+ },
28
+ cartState: 'Active',
29
+ shippingMode: 'Single',
30
+ shipping: [],
31
+ taxMode: 'Platform',
32
+ taxRoundingMode: 'HalfEven',
33
+ taxCalculationMode: 'UnitPriceLevel',
34
+ refusedGifts: [],
35
+ origin: 'Customer',
36
+ }
37
37
 
38
- storage.add('dummy', 'cart', cart)
39
- const ctx = { projectKey: 'dummy' }
38
+ storage.add('dummy', 'cart', cart)
39
+ const ctx = { projectKey: 'dummy' }
40
40
 
41
- const result = repository.create(ctx, {
42
- cart: {
43
- id: cart.id,
44
- typeId: 'cart',
45
- },
46
- version: cart.version,
47
- })
48
- expect(result.cart?.id).toBe(cart.id)
41
+ const result = repository.create(ctx, {
42
+ cart: {
43
+ id: cart.id,
44
+ typeId: 'cart',
45
+ },
46
+ version: cart.version,
47
+ })
48
+ expect(result.cart?.id).toBe(cart.id)
49
49
 
50
- const items = repository.query(ctx)
51
- expect(items.count).toBe(1)
52
- })
50
+ const items = repository.query(ctx)
51
+ expect(items.count).toBe(1)
52
+ })
53
53
 
54
- test('create from cart - in store', async () => {
55
- const cart: Cart = {
56
- id: 'b3875a58-4ab2-4aaa-b399-184ce7561c27',
57
- version: 1,
58
- createdAt: '2021-09-02T12:23:30.036Z',
59
- lastModifiedAt: '2021-09-02T12:23:30.546Z',
60
- discountCodes: [],
61
- directDiscounts : [],
62
- inventoryMode: 'None',
63
- itemShippingAddresses: [],
64
- lineItems: [],
65
- customLineItems: [],
66
- totalPrice: {
67
- type: 'centPrecision',
68
- currencyCode: 'EUR',
69
- centAmount: 10000,
70
- fractionDigits: 2,
71
- },
72
- cartState: 'Active',
73
- shippingMode: 'Single',
74
- shipping: [],
75
- taxMode: 'Platform',
76
- taxRoundingMode: 'HalfEven',
77
- taxCalculationMode: 'UnitPriceLevel',
78
- refusedGifts: [],
79
- origin: 'Customer',
80
- }
54
+ test('create from cart - in store', async () => {
55
+ const cart: Cart = {
56
+ id: 'b3875a58-4ab2-4aaa-b399-184ce7561c27',
57
+ version: 1,
58
+ createdAt: '2021-09-02T12:23:30.036Z',
59
+ lastModifiedAt: '2021-09-02T12:23:30.546Z',
60
+ discountCodes: [],
61
+ directDiscounts: [],
62
+ inventoryMode: 'None',
63
+ itemShippingAddresses: [],
64
+ lineItems: [],
65
+ customLineItems: [],
66
+ totalPrice: {
67
+ type: 'centPrecision',
68
+ currencyCode: 'EUR',
69
+ centAmount: 10000,
70
+ fractionDigits: 2,
71
+ },
72
+ cartState: 'Active',
73
+ shippingMode: 'Single',
74
+ shipping: [],
75
+ taxMode: 'Platform',
76
+ taxRoundingMode: 'HalfEven',
77
+ taxCalculationMode: 'UnitPriceLevel',
78
+ refusedGifts: [],
79
+ origin: 'Customer',
80
+ }
81
81
 
82
- storage.add('dummy', 'cart', cart)
82
+ storage.add('dummy', 'cart', cart)
83
83
 
84
- const result = repository.create(
85
- { projectKey: 'dummy', storeKey: 'some-store' },
86
- {
87
- cart: {
88
- id: cart.id,
89
- typeId: 'cart',
90
- },
91
- version: cart.version,
92
- }
93
- )
94
- expect(result.cart?.id).toBe(cart.id)
95
- expect(result.store?.key).toBe('some-store')
96
- })
84
+ const result = repository.create(
85
+ { projectKey: 'dummy', storeKey: 'some-store' },
86
+ {
87
+ cart: {
88
+ id: cart.id,
89
+ typeId: 'cart',
90
+ },
91
+ version: cart.version,
92
+ }
93
+ )
94
+ expect(result.cart?.id).toBe(cart.id)
95
+ expect(result.store?.key).toBe('some-store')
96
+ })
97
97
 
98
- test('import exiting product', async () => {
99
- storage.add('dummy', 'product', {
100
- id: '15fc56ba-a74e-4cf8-b4b0-bada5c101541',
101
- // @ts-ignore
102
- masterData: {
103
- // @ts-ignore
104
- current: {
105
- name: { 'nl-NL': 'Dummy' },
106
- slug: { 'nl-NL': 'Dummy' },
107
- categories: [],
108
- masterVariant: {
109
- id: 0,
110
- sku: 'MYSKU',
111
- },
112
- variants: [],
113
- },
114
- },
115
- })
98
+ test('import exiting product', async () => {
99
+ storage.add('dummy', 'product', {
100
+ id: '15fc56ba-a74e-4cf8-b4b0-bada5c101541',
101
+ // @ts-ignore
102
+ masterData: {
103
+ // @ts-ignore
104
+ current: {
105
+ name: { 'nl-NL': 'Dummy' },
106
+ slug: { 'nl-NL': 'Dummy' },
107
+ categories: [],
108
+ masterVariant: {
109
+ id: 0,
110
+ sku: 'MYSKU',
111
+ },
112
+ variants: [],
113
+ },
114
+ },
115
+ })
116
116
 
117
- const draft: OrderImportDraft = {
118
- orderNumber: '100000001',
119
- totalPrice: {
120
- centAmount: 1000,
121
- currencyCode: 'EUR',
122
- },
123
- paymentState: 'Paid',
124
- customLineItems: [],
125
- lineItems: [
126
- {
127
- productId: 'PRODUCTID',
128
- name: {
129
- 'en-US': 'The product',
130
- },
131
- variant: {
132
- id: 1,
133
- sku: 'MYSKU',
134
- prices: [
135
- {
136
- value: {
137
- type: 'centPrecision',
138
- currencyCode: 'EUR',
139
- centAmount: 14900,
140
- fractionDigits: 2,
141
- },
142
- country: 'NL',
143
- // channel: {
144
- // typeId: 'channel',
145
- // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
146
- // },
147
- // custom: {
148
- // type: {
149
- // typeId: 'type',
150
- // id: '55071385-b6e4-44c4-8c4b-6f2ec0f23649',
151
- // },
152
- // fields: {},
153
- // },
154
- },
155
- ],
156
- images: [],
157
- attributes: [],
158
- },
159
- price: {
160
- value: {
161
- type: 'centPrecision',
162
- currencyCode: 'EUR',
163
- centAmount: 14900,
164
- fractionDigits: 2,
165
- },
166
- country: 'NL',
167
- // channel: {
168
- // typeId: 'channel',
169
- // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
170
- // },
171
- // custom: {
172
- // type: {
173
- // typeId: 'type',
174
- // id: '55071385-b6e4-44c4-8c4b-6f2ec0f23649',
175
- // },
176
- // fields: {},
177
- // },
178
- },
179
- quantity: 3,
180
- // distributionChannel: {
181
- // typeId: 'channel',
182
- // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
183
- // },
184
- taxRate: {
185
- name: '21% BTW',
186
- amount: 0.21,
187
- includedInPrice: true,
188
- country: 'NL',
189
- id: 'Z0wLUuYw',
190
- subRates: [],
191
- },
192
- // state: [
193
- // {
194
- // quantity: 3,
195
- // state: {
196
- // typeId: 'state',
197
- // id: 'f1d9531d-41f0-46a7-82f2-c4b0748aa9f5',
198
- // },
199
- // },
200
- // ],
201
- },
202
- ],
203
- }
117
+ const draft: OrderImportDraft = {
118
+ orderNumber: '100000001',
119
+ totalPrice: {
120
+ centAmount: 1000,
121
+ currencyCode: 'EUR',
122
+ },
123
+ paymentState: 'Paid',
124
+ customLineItems: [],
125
+ lineItems: [
126
+ {
127
+ productId: 'PRODUCTID',
128
+ name: {
129
+ 'en-US': 'The product',
130
+ },
131
+ variant: {
132
+ id: 1,
133
+ sku: 'MYSKU',
134
+ prices: [
135
+ {
136
+ value: {
137
+ type: 'centPrecision',
138
+ currencyCode: 'EUR',
139
+ centAmount: 14900,
140
+ fractionDigits: 2,
141
+ },
142
+ country: 'NL',
143
+ // channel: {
144
+ // typeId: 'channel',
145
+ // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
146
+ // },
147
+ // custom: {
148
+ // type: {
149
+ // typeId: 'type',
150
+ // id: '55071385-b6e4-44c4-8c4b-6f2ec0f23649',
151
+ // },
152
+ // fields: {},
153
+ // },
154
+ },
155
+ ],
156
+ images: [],
157
+ attributes: [],
158
+ },
159
+ price: {
160
+ value: {
161
+ type: 'centPrecision',
162
+ currencyCode: 'EUR',
163
+ centAmount: 14900,
164
+ fractionDigits: 2,
165
+ },
166
+ country: 'NL',
167
+ // channel: {
168
+ // typeId: 'channel',
169
+ // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
170
+ // },
171
+ // custom: {
172
+ // type: {
173
+ // typeId: 'type',
174
+ // id: '55071385-b6e4-44c4-8c4b-6f2ec0f23649',
175
+ // },
176
+ // fields: {},
177
+ // },
178
+ },
179
+ quantity: 3,
180
+ // distributionChannel: {
181
+ // typeId: 'channel',
182
+ // id: '411485eb-7875-46f4-8d40-1db9e61374ed',
183
+ // },
184
+ taxRate: {
185
+ name: '21% BTW',
186
+ amount: 0.21,
187
+ includedInPrice: true,
188
+ country: 'NL',
189
+ id: 'Z0wLUuYw',
190
+ subRates: [],
191
+ },
192
+ // state: [
193
+ // {
194
+ // quantity: 3,
195
+ // state: {
196
+ // typeId: 'state',
197
+ // id: 'f1d9531d-41f0-46a7-82f2-c4b0748aa9f5',
198
+ // },
199
+ // },
200
+ // ],
201
+ },
202
+ ],
203
+ }
204
204
 
205
- repository.import({ projectKey: 'dummy' }, draft)
206
- })
207
- /*
205
+ repository.import({ projectKey: 'dummy' }, draft)
206
+ })
207
+ /*
208
208
  test('import non exiting product', async () => {
209
209
  const draft: OrderImportDraft = {
210
210
  orderNumber: '100000001',