@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.
- package/README.md +5 -4
- package/dist/index.cjs +105 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -7
- package/dist/index.d.ts +29 -7
- package/dist/index.js +105 -17
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/constants.ts +2 -2
- package/src/ctMock.ts +176 -176
- package/src/exceptions.ts +10 -10
- package/src/helpers.ts +26 -26
- package/src/index.test.ts +173 -173
- package/src/index.ts +3 -3
- package/src/lib/expandParser.ts +19 -19
- package/src/lib/haversine.test.ts +13 -13
- package/src/lib/haversine.ts +14 -14
- package/src/lib/masking.ts +15 -15
- package/src/lib/parser.ts +2 -2
- package/src/lib/predicateParser.test.ts +204 -204
- package/src/lib/predicateParser.ts +398 -398
- package/src/lib/projectionSearchFilter.test.ts +168 -168
- package/src/lib/projectionSearchFilter.ts +272 -269
- package/src/lib/proxy.ts +8 -8
- package/src/oauth/errors.ts +4 -4
- package/src/oauth/helpers.ts +6 -6
- package/src/oauth/server.ts +103 -101
- package/src/oauth/store.ts +27 -27
- package/src/priceSelector.test.ts +68 -68
- package/src/priceSelector.ts +70 -70
- package/src/product-projection-search.ts +296 -296
- package/src/projectAPI.test.ts +3 -3
- package/src/projectAPI.ts +46 -46
- package/src/repositories/abstract.ts +190 -190
- package/src/repositories/associate-role.ts +10 -7
- package/src/repositories/attribute-group.ts +63 -8
- package/src/repositories/business-unit.ts +10 -7
- package/src/repositories/cart-discount.ts +134 -134
- package/src/repositories/cart.ts +517 -514
- package/src/repositories/category.ts +170 -167
- package/src/repositories/channel.ts +114 -111
- package/src/repositories/custom-object.ts +66 -63
- package/src/repositories/customer-group.ts +72 -69
- package/src/repositories/customer.ts +90 -90
- package/src/repositories/discount-code.ts +171 -168
- package/src/repositories/errors.ts +15 -15
- package/src/repositories/extension.ts +79 -76
- package/src/repositories/helpers.ts +180 -180
- package/src/repositories/index.ts +39 -39
- package/src/repositories/inventory-entry.ts +98 -95
- package/src/repositories/my-order.ts +11 -11
- package/src/repositories/order-edit.ts +29 -29
- package/src/repositories/order.test.ts +191 -191
- package/src/repositories/order.ts +393 -393
- package/src/repositories/payment.ts +155 -155
- package/src/repositories/product-discount.ts +149 -149
- package/src/repositories/product-projection.ts +116 -52
- package/src/repositories/product-selection.ts +31 -31
- package/src/repositories/product-type.ts +156 -156
- package/src/repositories/product.ts +600 -597
- package/src/repositories/project.ts +136 -135
- package/src/repositories/quote-request.ts +19 -19
- package/src/repositories/quote.ts +19 -19
- package/src/repositories/review.ts +24 -24
- package/src/repositories/shipping-method.ts +217 -217
- package/src/repositories/shopping-list.ts +49 -49
- package/src/repositories/staged-quote.ts +20 -20
- package/src/repositories/standalone-price.ts +72 -61
- package/src/repositories/state.ts +84 -84
- package/src/repositories/store.ts +114 -114
- package/src/repositories/subscription.ts +40 -40
- package/src/repositories/tax-category.ts +98 -98
- package/src/repositories/type.ts +157 -157
- package/src/repositories/zone.ts +71 -71
- package/src/server.ts +2 -2
- package/src/services/abstract.ts +173 -173
- package/src/services/attribute-group.ts +16 -0
- package/src/services/cart-discount.ts +8 -8
- package/src/services/cart.test.ts +409 -409
- package/src/services/cart.ts +50 -50
- package/src/services/category.test.ts +25 -25
- package/src/services/category.ts +8 -8
- package/src/services/channel.ts +8 -8
- package/src/services/custom-object.test.ts +184 -184
- package/src/services/custom-object.ts +48 -48
- package/src/services/customer-group.ts +8 -8
- package/src/services/customer.test.ts +151 -151
- package/src/services/customer.ts +27 -27
- package/src/services/discount-code.ts +8 -8
- package/src/services/extension.ts +8 -8
- package/src/services/index.ts +52 -44
- package/src/services/inventory-entry.test.ts +162 -162
- package/src/services/inventory-entry.ts +8 -8
- package/src/services/my-cart.test.ts +78 -78
- package/src/services/my-cart.ts +28 -28
- package/src/services/my-customer.test.ts +44 -44
- package/src/services/my-customer.ts +53 -53
- package/src/services/my-order.ts +20 -20
- package/src/services/my-payment.test.ts +65 -65
- package/src/services/my-payment.ts +8 -8
- package/src/services/order.test.ts +527 -527
- package/src/services/order.ts +31 -31
- package/src/services/payment.test.ts +65 -65
- package/src/services/payment.ts +8 -8
- package/src/services/product-discount.ts +8 -8
- package/src/services/product-projection.test.ts +492 -428
- package/src/services/product-projection.ts +32 -18
- package/src/services/product-type.test.ts +56 -56
- package/src/services/product-type.ts +8 -8
- package/src/services/product.test.ts +510 -510
- package/src/services/product.ts +8 -8
- package/src/services/project.ts +34 -34
- package/src/services/shipping-method.test.ts +81 -81
- package/src/services/shipping-method.ts +12 -12
- package/src/services/shopping-list.ts +8 -8
- package/src/services/standalone-price.test.ts +256 -256
- package/src/services/standalone-price.ts +8 -8
- package/src/services/state.test.ts +42 -42
- package/src/services/state.ts +8 -8
- package/src/services/store.test.ts +57 -57
- package/src/services/store.ts +8 -8
- package/src/services/subscription.ts +8 -8
- package/src/services/tax-category.test.ts +61 -61
- package/src/services/tax-category.ts +8 -8
- package/src/services/type.ts +8 -8
- package/src/services/zone.ts +8 -8
- package/src/storage/abstract.ts +58 -58
- package/src/storage/in-memory.ts +419 -419
- package/src/types.ts +82 -82
package/src/services/index.ts
CHANGED
|
@@ -27,50 +27,58 @@ import { SubscriptionService } from './subscription.js'
|
|
|
27
27
|
import { TaxCategoryService } from './tax-category.js'
|
|
28
28
|
import { TypeService } from './type.js'
|
|
29
29
|
import { ZoneService } from './zone.js'
|
|
30
|
+
import { AttributeGroupService } from './attribute-group.js'
|
|
30
31
|
|
|
31
32
|
export const createServices = (router: any, repos: any) => ({
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
33
|
+
category: new CategoryServices(router, repos['category']),
|
|
34
|
+
cart: new CartService(router, repos['cart'], repos['order']),
|
|
35
|
+
'cart-discount': new CartDiscountService(router, repos['cart-discount']),
|
|
36
|
+
customer: new CustomerService(router, repos['customer']),
|
|
37
|
+
channel: new ChannelService(router, repos['channel']),
|
|
38
|
+
'customer-group': new CustomerGroupService(router, repos['customer-group']),
|
|
39
|
+
'discount-code': new DiscountCodeService(router, repos['discount-code']),
|
|
40
|
+
extension: new ExtensionServices(router, repos['extension']),
|
|
41
|
+
'inventory-entry': new InventoryEntryService(
|
|
42
|
+
router,
|
|
43
|
+
repos['inventory-entry']
|
|
44
|
+
),
|
|
45
|
+
'key-value-document': new CustomObjectService(
|
|
46
|
+
router,
|
|
47
|
+
repos['key-value-document']
|
|
48
|
+
),
|
|
49
|
+
order: new OrderService(router, repos['order']),
|
|
50
|
+
payment: new PaymentService(router, repos['payment']),
|
|
51
|
+
'standalone-price': new StandAlonePriceService(
|
|
52
|
+
router,
|
|
53
|
+
repos['standalone-price']
|
|
54
|
+
),
|
|
55
|
+
'my-cart': new MyCartService(router, repos['my-cart']),
|
|
56
|
+
'my-order': new MyOrderService(router, repos['my-order']),
|
|
57
|
+
'my-customer': new MyCustomerService(router, repos['my-customer']),
|
|
58
|
+
'my-payment': new MyPaymentService(router, repos['my-payment']),
|
|
59
|
+
'shipping-method': new ShippingMethodService(
|
|
60
|
+
router,
|
|
61
|
+
repos['shipping-method']
|
|
62
|
+
),
|
|
63
|
+
'product-type': new ProductTypeService(router, repos['product-type']),
|
|
64
|
+
product: new ProductService(router, repos['product']),
|
|
65
|
+
'product-discount': new ProductDiscountService(
|
|
66
|
+
router,
|
|
67
|
+
repos['product-discount']
|
|
68
|
+
),
|
|
69
|
+
'product-projection': new ProductProjectionService(
|
|
70
|
+
router,
|
|
71
|
+
repos['product-projection']
|
|
72
|
+
),
|
|
73
|
+
'shopping-list': new ShoppingListService(router, repos['shopping-list']),
|
|
74
|
+
state: new StateService(router, repos['state']),
|
|
75
|
+
store: new StoreService(router, repos['store']),
|
|
76
|
+
subscription: new SubscriptionService(router, repos['subscription']),
|
|
77
|
+
'tax-category': new TaxCategoryService(router, repos['tax-category']),
|
|
78
|
+
'attribute-group': new AttributeGroupService(
|
|
79
|
+
router,
|
|
80
|
+
repos['attribute-group']
|
|
81
|
+
),
|
|
82
|
+
type: new TypeService(router, repos['type']),
|
|
83
|
+
zone: new ZoneService(router, repos['zone']),
|
|
76
84
|
})
|
|
@@ -5,169 +5,169 @@ import { afterEach, beforeEach, describe, expect, test } from 'vitest'
|
|
|
5
5
|
import { CommercetoolsMock } from '../index.js'
|
|
6
6
|
|
|
7
7
|
describe('Inventory Entry Query', () => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
8
|
+
const ctMock = new CommercetoolsMock()
|
|
9
|
+
let inventoryEntry: InventoryEntry | undefined
|
|
10
|
+
|
|
11
|
+
beforeEach(async () => {
|
|
12
|
+
const response = await supertest(ctMock.app).post('/dummy/inventory').send({
|
|
13
|
+
sku: '1337',
|
|
14
|
+
quantityOnStock: 100,
|
|
15
|
+
})
|
|
16
|
+
expect(response.status).toBe(201)
|
|
17
|
+
inventoryEntry = response.body
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
ctMock.clear()
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
test('no filter', async () => {
|
|
25
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
26
|
+
|
|
27
|
+
const response = await supertest(ctMock.app).get(`/dummy/inventory`)
|
|
28
|
+
expect(response.status).toBe(200)
|
|
29
|
+
expect(response.body.count).toBe(1)
|
|
30
|
+
expect(response.body.total).toBe(1)
|
|
31
|
+
expect(response.body.offset).toBe(0)
|
|
32
|
+
expect(response.body.limit).toBe(20)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
test('filter sku', async () => {
|
|
36
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
37
|
+
|
|
38
|
+
{
|
|
39
|
+
const response = await supertest(ctMock.app)
|
|
40
|
+
.get(`/dummy/inventory`)
|
|
41
|
+
.query({ where: 'sku="unknown"' })
|
|
42
|
+
expect(response.status).toBe(200)
|
|
43
|
+
expect(response.body.count).toBe(0)
|
|
44
|
+
}
|
|
45
|
+
{
|
|
46
|
+
const response = await supertest(ctMock.app)
|
|
47
|
+
.get(`/dummy/inventory`)
|
|
48
|
+
.query({ where: 'sku="1337"' })
|
|
49
|
+
expect(response.status).toBe(200)
|
|
50
|
+
expect(response.body.count).toBe(1)
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
53
|
})
|
|
54
54
|
|
|
55
55
|
describe('Inventory Entry Update Actions', () => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
56
|
+
const ctMock = new CommercetoolsMock()
|
|
57
|
+
let inventoryEntry: InventoryEntry | undefined
|
|
58
|
+
let customType: Type | undefined
|
|
59
|
+
|
|
60
|
+
beforeEach(async () => {
|
|
61
|
+
let response = await supertest(ctMock.app).post('/dummy/inventory').send({
|
|
62
|
+
sku: '1337',
|
|
63
|
+
quantityOnStock: 100,
|
|
64
|
+
})
|
|
65
|
+
expect(response.status).toBe(201)
|
|
66
|
+
inventoryEntry = response.body
|
|
67
|
+
|
|
68
|
+
response = await supertest(ctMock.app)
|
|
69
|
+
.post('/dummy/types')
|
|
70
|
+
.send({
|
|
71
|
+
key: 'custom-inventory',
|
|
72
|
+
name: {
|
|
73
|
+
'nl-NL': 'custom-inventory',
|
|
74
|
+
},
|
|
75
|
+
resourceTypeIds: ['inventory-entry'],
|
|
76
|
+
})
|
|
77
|
+
expect(response.status).toBe(201)
|
|
78
|
+
customType = response.body
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
test('changeQuantity', async () => {
|
|
82
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
83
|
+
|
|
84
|
+
const response = await supertest(ctMock.app)
|
|
85
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
86
|
+
.send({
|
|
87
|
+
version: 1,
|
|
88
|
+
actions: [{ action: 'changeQuantity', quantity: 300 }],
|
|
89
|
+
})
|
|
90
|
+
expect(response.status).toBe(200)
|
|
91
|
+
expect(response.body.version).toBe(2)
|
|
92
|
+
expect(response.body.availableQuantity).toBe(300)
|
|
93
|
+
expect(response.body.quantityOnStock).toBe(300)
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
test('set custom type', async () => {
|
|
97
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
98
|
+
assert(customType, 'custom type not created')
|
|
99
|
+
|
|
100
|
+
const response = await supertest(ctMock.app)
|
|
101
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
102
|
+
.send({
|
|
103
|
+
version: 1,
|
|
104
|
+
actions: [
|
|
105
|
+
{
|
|
106
|
+
action: 'setCustomType',
|
|
107
|
+
type: { typeId: 'type', id: customType.id },
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
})
|
|
111
|
+
expect(response.status).toBe(200)
|
|
112
|
+
expect(response.body.version).toBe(2)
|
|
113
|
+
expect(response.body.custom.type.id).toBe(customType.id)
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
test('set expected delivery', async () => {
|
|
117
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
118
|
+
const expectedDelivery = '2021-04-02T15:06:19.700Z'
|
|
119
|
+
const response = await supertest(ctMock.app)
|
|
120
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
121
|
+
.send({
|
|
122
|
+
version: 1,
|
|
123
|
+
actions: [{ action: 'setExpectedDelivery', expectedDelivery }],
|
|
124
|
+
})
|
|
125
|
+
expect(response.status).toBe(200)
|
|
126
|
+
expect(response.body.version).toBe(2)
|
|
127
|
+
expect(response.body.expectedDelivery).toBe(expectedDelivery)
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
test('set custom field', async () => {
|
|
131
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
132
|
+
assert(customType, 'custom type not created')
|
|
133
|
+
|
|
134
|
+
const setCustomTypeResponse = await supertest(ctMock.app)
|
|
135
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
136
|
+
.send({
|
|
137
|
+
version: 1,
|
|
138
|
+
actions: [
|
|
139
|
+
{
|
|
140
|
+
action: 'setCustomType',
|
|
141
|
+
type: { typeId: 'type', id: customType.id },
|
|
142
|
+
fields: { lol: 'bar' },
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
})
|
|
146
|
+
expect(setCustomTypeResponse.status).toBe(200)
|
|
147
|
+
expect(setCustomTypeResponse.body.custom.type.id).toBe(customType.id)
|
|
148
|
+
|
|
149
|
+
const response = await supertest(ctMock.app)
|
|
150
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
151
|
+
.send({
|
|
152
|
+
version: 2,
|
|
153
|
+
actions: [{ action: 'setCustomField', name: 'foo', value: 'bar' }],
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
expect(response.status).toBe(200)
|
|
157
|
+
expect(response.body.version).toBe(3)
|
|
158
|
+
expect(response.body.custom.fields['foo']).toBe('bar')
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
test('set restockable in days', async () => {
|
|
162
|
+
assert(inventoryEntry, 'inventory entry not created')
|
|
163
|
+
const response = await supertest(ctMock.app)
|
|
164
|
+
.post(`/dummy/inventory/${inventoryEntry.id}`)
|
|
165
|
+
.send({
|
|
166
|
+
version: 1,
|
|
167
|
+
actions: [{ action: 'setRestockableInDays', restockableInDays: 0 }],
|
|
168
|
+
})
|
|
169
|
+
expect(response.status).toEqual(200)
|
|
170
|
+
expect(response.body.version).toEqual(2)
|
|
171
|
+
expect(response.body.restockableInDays).toEqual(0)
|
|
172
|
+
})
|
|
173
173
|
})
|
|
@@ -3,14 +3,14 @@ import { InventoryEntryRepository } from '../repositories/inventory-entry.js'
|
|
|
3
3
|
import AbstractService from './abstract.js'
|
|
4
4
|
|
|
5
5
|
export class InventoryEntryService extends AbstractService {
|
|
6
|
-
|
|
6
|
+
public repository: InventoryEntryRepository
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
constructor(parent: Router, repository: InventoryEntryRepository) {
|
|
9
|
+
super(parent)
|
|
10
|
+
this.repository = repository
|
|
11
|
+
}
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
getBasePath() {
|
|
14
|
+
return 'inventory'
|
|
15
|
+
}
|
|
16
16
|
}
|
|
@@ -6,94 +6,94 @@ import { CommercetoolsMock } from '../index.js'
|
|
|
6
6
|
const ctMock = new CommercetoolsMock()
|
|
7
7
|
|
|
8
8
|
describe('MyCart', () => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
const response = await supertest(ctMock.app)
|
|
11
|
+
.post('/dummy/types')
|
|
12
|
+
.send({
|
|
13
|
+
key: 'custom-payment',
|
|
14
|
+
name: {
|
|
15
|
+
'nl-NL': 'custom-payment',
|
|
16
|
+
},
|
|
17
|
+
resourceTypeIds: ['payment'],
|
|
18
|
+
})
|
|
19
|
+
expect(response.status).toBe(201)
|
|
20
|
+
})
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
afterEach(() => {
|
|
23
|
+
ctMock.clear()
|
|
24
|
+
})
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
test('Create my cart', async () => {
|
|
27
|
+
const draft: MyCartDraft = {
|
|
28
|
+
currency: 'EUR',
|
|
29
|
+
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
const response = await supertest(ctMock.app)
|
|
32
|
+
.post('/dummy/me/carts')
|
|
33
|
+
.send(draft)
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
35
|
+
expect(response.status).toBe(201)
|
|
36
|
+
expect(response.body).toEqual({
|
|
37
|
+
id: expect.anything(),
|
|
38
|
+
createdAt: expect.anything(),
|
|
39
|
+
lastModifiedAt: expect.anything(),
|
|
40
|
+
version: 1,
|
|
41
|
+
cartState: 'Active',
|
|
42
|
+
discountCodes: [],
|
|
43
|
+
directDiscounts: [],
|
|
44
|
+
inventoryMode: 'None',
|
|
45
|
+
itemShippingAddresses: [],
|
|
46
|
+
lineItems: [],
|
|
47
|
+
customLineItems: [],
|
|
48
|
+
shipping: [],
|
|
49
|
+
shippingMode: 'Single',
|
|
50
|
+
totalPrice: {
|
|
51
|
+
type: 'centPrecision',
|
|
52
|
+
centAmount: 0,
|
|
53
|
+
currencyCode: 'EUR',
|
|
54
|
+
fractionDigits: 0,
|
|
55
|
+
},
|
|
56
|
+
taxMode: 'Platform',
|
|
57
|
+
taxRoundingMode: 'HalfEven',
|
|
58
|
+
taxCalculationMode: 'LineItemLevel',
|
|
59
|
+
refusedGifts: [],
|
|
60
|
+
origin: 'Customer',
|
|
61
|
+
} as Cart)
|
|
62
|
+
})
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
test('Get my cart by ID', async () => {
|
|
65
|
+
const draft: MyCartDraft = {
|
|
66
|
+
currency: 'EUR',
|
|
67
|
+
}
|
|
68
|
+
const createResponse = await supertest(ctMock.app)
|
|
69
|
+
.post('/dummy/me/carts')
|
|
70
|
+
.send(draft)
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
const response = await supertest(ctMock.app).get(
|
|
73
|
+
`/dummy/me/carts/${createResponse.body.id}`
|
|
74
|
+
)
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
expect(response.status).toBe(200)
|
|
77
|
+
expect(response.body).toEqual(createResponse.body)
|
|
78
|
+
})
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
test('Get my active cart', async () => {
|
|
81
|
+
const draft: MyCartDraft = {
|
|
82
|
+
currency: 'EUR',
|
|
83
|
+
}
|
|
84
|
+
const createResponse = await supertest(ctMock.app)
|
|
85
|
+
.post('/dummy/me/carts')
|
|
86
|
+
.send(draft)
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
const response = await supertest(ctMock.app).get(`/dummy/me/active-cart`)
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
expect(response.status).toBe(200)
|
|
91
|
+
expect(response.body).toEqual(createResponse.body)
|
|
92
|
+
})
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
test('Get my active cart which doesnt exists', async () => {
|
|
95
|
+
const response = await supertest(ctMock.app).get(`/dummy/me/active-cart`)
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
expect(response.status).toBe(404)
|
|
98
|
+
})
|
|
99
99
|
})
|