@labdigital/commercetools-mock 0.5.13 → 0.5.14

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 (104) hide show
  1. package/README.md +6 -2
  2. package/dist/commercetools-mock.cjs.development.js +3058 -1645
  3. package/dist/commercetools-mock.cjs.development.js.map +1 -1
  4. package/dist/commercetools-mock.cjs.production.min.js +1 -1
  5. package/dist/commercetools-mock.cjs.production.min.js.map +1 -1
  6. package/dist/commercetools-mock.esm.js +3058 -1645
  7. package/dist/commercetools-mock.esm.js.map +1 -1
  8. package/dist/ctMock.d.ts +1 -0
  9. package/dist/repositories/abstract.d.ts +9 -7
  10. package/dist/repositories/cart-discount.d.ts +9 -0
  11. package/dist/repositories/cart.d.ts +16 -3
  12. package/dist/repositories/category.d.ts +18 -0
  13. package/dist/repositories/channel.d.ts +6 -0
  14. package/dist/repositories/custom-object.d.ts +2 -2
  15. package/dist/repositories/customer-group.d.ts +11 -0
  16. package/dist/repositories/customer.d.ts +2 -2
  17. package/dist/repositories/discount-code.d.ts +8 -0
  18. package/dist/repositories/errors.d.ts +2 -2
  19. package/dist/repositories/extension.d.ts +8 -0
  20. package/dist/repositories/inventory-entry.d.ts +2 -2
  21. package/dist/repositories/order.d.ts +2 -2
  22. package/dist/repositories/payment.d.ts +4 -3
  23. package/dist/repositories/product-projection.d.ts +2 -2
  24. package/dist/repositories/product-type.d.ts +5 -4
  25. package/dist/repositories/product.d.ts +2 -2
  26. package/dist/repositories/project.d.ts +8 -0
  27. package/dist/repositories/shipping-method.d.ts +7 -5
  28. package/dist/repositories/shopping-list.d.ts +2 -2
  29. package/dist/repositories/state.d.ts +5 -4
  30. package/dist/repositories/store.d.ts +6 -3
  31. package/dist/repositories/subscription.d.ts +6 -0
  32. package/dist/repositories/tax-category.d.ts +6 -5
  33. package/dist/repositories/type.d.ts +5 -3
  34. package/dist/repositories/zone.d.ts +8 -0
  35. package/dist/services/abstract.d.ts +4 -3
  36. package/dist/services/cart-discount.d.ts +9 -0
  37. package/dist/services/category.d.ts +9 -0
  38. package/dist/services/channel.d.ts +9 -0
  39. package/dist/services/customer-group.d.ts +9 -0
  40. package/dist/services/discount-code.d.ts +9 -0
  41. package/dist/services/extension.d.ts +9 -0
  42. package/dist/services/my-cart.d.ts +11 -0
  43. package/dist/services/project.d.ts +11 -0
  44. package/dist/services/subscription.d.ts +9 -0
  45. package/dist/services/zone.d.ts +9 -0
  46. package/dist/storage.d.ts +10 -1
  47. package/dist/types.d.ts +2 -1
  48. package/package.json +20 -20
  49. package/src/ctMock.ts +44 -17
  50. package/src/oauth/server.ts +3 -1
  51. package/src/repositories/abstract.ts +39 -33
  52. package/src/repositories/cart-discount.ts +140 -0
  53. package/src/repositories/cart.ts +247 -3
  54. package/src/repositories/category.ts +140 -0
  55. package/src/repositories/channel.ts +23 -0
  56. package/src/repositories/custom-object.ts +2 -2
  57. package/src/repositories/customer-group.ts +42 -0
  58. package/src/repositories/customer.ts +2 -2
  59. package/src/repositories/discount-code.ts +143 -0
  60. package/src/repositories/errors.ts +7 -2
  61. package/src/repositories/extension.ts +65 -0
  62. package/src/repositories/inventory-entry.ts +2 -2
  63. package/src/repositories/order.ts +2 -2
  64. package/src/repositories/payment.ts +10 -6
  65. package/src/repositories/product-projection.ts +2 -2
  66. package/src/repositories/product-type.ts +57 -4
  67. package/src/repositories/product.ts +4 -2
  68. package/src/repositories/project.ts +150 -0
  69. package/src/repositories/shipping-method.ts +149 -13
  70. package/src/repositories/shopping-list.ts +2 -2
  71. package/src/repositories/state.ts +48 -4
  72. package/src/repositories/store.ts +69 -4
  73. package/src/repositories/subscription.ts +50 -0
  74. package/src/repositories/tax-category.ts +80 -6
  75. package/src/repositories/type.ts +133 -3
  76. package/src/repositories/zone.ts +77 -0
  77. package/src/server.ts +6 -1
  78. package/src/services/abstract.ts +16 -15
  79. package/src/services/cart-discount.ts +17 -0
  80. package/src/services/cart.test.ts +314 -3
  81. package/src/services/category.test.ts +37 -0
  82. package/src/services/category.ts +17 -0
  83. package/src/services/channel.ts +17 -0
  84. package/src/services/custom-object.test.ts +3 -3
  85. package/src/services/customer-group.ts +17 -0
  86. package/src/services/discount-code.ts +17 -0
  87. package/src/services/extension.ts +17 -0
  88. package/src/services/inventory-entry.test.ts +3 -3
  89. package/src/services/my-cart.test.ts +93 -0
  90. package/src/services/my-cart.ts +44 -0
  91. package/src/services/my-payment.test.ts +2 -2
  92. package/src/services/order.test.ts +4 -4
  93. package/src/services/payment.test.ts +2 -2
  94. package/src/services/product-projection.test.ts +1 -5
  95. package/src/services/product-type.test.ts +2 -2
  96. package/src/services/product.test.ts +6 -2
  97. package/src/services/project.ts +42 -0
  98. package/src/services/shipping-method.test.ts +3 -3
  99. package/src/services/state.test.ts +2 -2
  100. package/src/services/subscription.ts +17 -0
  101. package/src/services/tax-category.test.ts +3 -3
  102. package/src/services/zone.ts +17 -0
  103. package/src/storage.ts +69 -1
  104. package/src/types.ts +2 -1
@@ -0,0 +1,17 @@
1
+ import AbstractService from './abstract'
2
+ import { Router } from 'express'
3
+ import { AbstractStorage } from '../storage'
4
+ import { CategoryRepository } from '../repositories/category'
5
+
6
+ export class CategoryServices extends AbstractService {
7
+ public repository: CategoryRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new CategoryRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'categories'
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import AbstractService from './abstract'
2
+ import { Router } from 'express'
3
+ import { ChannelRepository } from '../repositories/channel'
4
+ import { AbstractStorage } from '../storage'
5
+
6
+ export class ChannelService extends AbstractService {
7
+ public repository: ChannelRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new ChannelRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'channels'
16
+ }
17
+ }
@@ -15,7 +15,7 @@ describe('CustomObject create', () => {
15
15
  value: 'my-value',
16
16
  })
17
17
 
18
- expect(response.status).toBe(200)
18
+ expect(response.status).toBe(201)
19
19
  const customObject = response.body
20
20
  expect(customObject.container).toBe('my-container')
21
21
  expect(customObject.key).toBe('my-key')
@@ -36,7 +36,7 @@ describe('CustomObject retrieve', () => {
36
36
  value: 'my-value',
37
37
  })
38
38
 
39
- expect(response.status).toBe(200)
39
+ expect(response.status).toBe(201)
40
40
  customObject = response.body
41
41
  expect(customObject.container).toBe('my-container')
42
42
  expect(customObject.key).toBe('my-key')
@@ -67,7 +67,7 @@ describe('CustomObject retrieve', () => {
67
67
  value: 'my-value',
68
68
  })
69
69
 
70
- expect(response.status).toBe(200)
70
+ expect(response.status).toBe(201)
71
71
  })
72
72
 
73
73
  test('New with version (errors)', async () => {
@@ -0,0 +1,17 @@
1
+ import AbstractService from './abstract'
2
+ import { Router } from 'express'
3
+ import { CustomerGroupRepository } from '../repositories/customer-group'
4
+ import { AbstractStorage } from '../storage'
5
+
6
+ export class CustomerGroupService extends AbstractService {
7
+ public repository: CustomerGroupRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new CustomerGroupRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'customer-groups'
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Router } from 'express'
2
+ import AbstractService from './abstract'
3
+ import { AbstractStorage } from '../storage'
4
+ import { DiscountCodeRepository } from '../repositories/discount-code'
5
+
6
+ export class DiscountCodeService extends AbstractService {
7
+ public repository: DiscountCodeRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new DiscountCodeRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'discount-codes'
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import AbstractService from './abstract'
2
+ import { Router } from 'express'
3
+ import { AbstractStorage } from '../storage'
4
+ import { ExtensionRepository } from '../repositories/extension'
5
+
6
+ export class ExtensionServices extends AbstractService {
7
+ public repository: ExtensionRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new ExtensionRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'extensions'
16
+ }
17
+ }
@@ -14,7 +14,7 @@ describe('Inventory Entry Query', () => {
14
14
  sku: '1337',
15
15
  quantityOnStock: 100,
16
16
  })
17
- expect(response.status).toBe(200)
17
+ expect(response.status).toBe(201)
18
18
  inventoryEntry = response.body
19
19
  })
20
20
 
@@ -65,7 +65,7 @@ describe('Inventory Entry Update Actions', () => {
65
65
  sku: '1337',
66
66
  quantityOnStock: 100,
67
67
  })
68
- expect(response.status).toBe(200)
68
+ expect(response.status).toBe(201)
69
69
  inventoryEntry = response.body
70
70
 
71
71
  response = await supertest(ctMock.app)
@@ -77,7 +77,7 @@ describe('Inventory Entry Update Actions', () => {
77
77
  },
78
78
  resourceTypeIds: ['inventory-entry'],
79
79
  })
80
- expect(response.status).toBe(200)
80
+ expect(response.status).toBe(201)
81
81
  customType = response.body
82
82
  })
83
83
 
@@ -0,0 +1,93 @@
1
+ import { MyCartDraft } from '@commercetools/platform-sdk'
2
+ import supertest from 'supertest'
3
+ import { CommercetoolsMock } from '../index'
4
+
5
+ const ctMock = new CommercetoolsMock()
6
+
7
+ describe('MyCart', () => {
8
+ beforeEach(async () => {
9
+ const response = await supertest(ctMock.app)
10
+ .post('/dummy/types')
11
+ .send({
12
+ key: 'custom-payment',
13
+ name: {
14
+ 'nl-NL': 'custom-payment',
15
+ },
16
+ resourceTypeIds: ['payment'],
17
+ })
18
+ expect(response.status).toBe(201)
19
+ })
20
+
21
+ afterEach(() => {
22
+ ctMock.clear()
23
+ })
24
+
25
+ test('Create my cart', async () => {
26
+ const draft: MyCartDraft = {
27
+ currency: 'EUR',
28
+ }
29
+
30
+ const response = await supertest(ctMock.app)
31
+ .post('/dummy/me/carts')
32
+ .send(draft)
33
+
34
+ expect(response.status).toBe(201)
35
+ expect(response.body).toEqual({
36
+ id: expect.anything(),
37
+ createdAt: expect.anything(),
38
+ lastModifiedAt: expect.anything(),
39
+ version: 1,
40
+ cartState: 'Active',
41
+ lineItems: [],
42
+ customLineItems: [],
43
+ totalPrice: {
44
+ type: 'centPrecision',
45
+ centAmount: 0,
46
+ currencyCode: 'EUR',
47
+ fractionDigits: 0,
48
+ },
49
+ taxMode: 'Platform',
50
+ taxRoundingMode: 'HalfEven',
51
+ taxCalculationMode: 'LineItemLevel',
52
+
53
+ refusedGifts: [],
54
+ origin: 'Customer',
55
+ })
56
+ })
57
+
58
+ test('Get my cart by ID', async () => {
59
+ const draft: MyCartDraft = {
60
+ currency: 'EUR',
61
+ }
62
+ const createResponse = await supertest(ctMock.app)
63
+ .post('/dummy/me/carts')
64
+ .send(draft)
65
+
66
+ const response = await supertest(ctMock.app).get(
67
+ `/dummy/me/carts/${createResponse.body.id}`
68
+ )
69
+
70
+ expect(response.status).toBe(200)
71
+ expect(response.body).toEqual(createResponse.body)
72
+ })
73
+
74
+ test('Get my active cart', async () => {
75
+ const draft: MyCartDraft = {
76
+ currency: 'EUR',
77
+ }
78
+ const createResponse = await supertest(ctMock.app)
79
+ .post('/dummy/me/carts')
80
+ .send(draft)
81
+
82
+ const response = await supertest(ctMock.app).get(`/dummy/me/active-cart`)
83
+
84
+ expect(response.status).toBe(200)
85
+ expect(response.body).toEqual(createResponse.body)
86
+ })
87
+
88
+ test('Get my active cart which doesnt exists', async () => {
89
+ const response = await supertest(ctMock.app).get(`/dummy/me/active-cart`)
90
+
91
+ expect(response.status).toBe(404)
92
+ })
93
+ })
@@ -0,0 +1,44 @@
1
+ import AbstractService from './abstract'
2
+ import { Request, Response, Router } from 'express'
3
+ import { AbstractStorage } from '../storage'
4
+ import { CartRepository } from '../repositories/cart'
5
+
6
+ export class MyCartService extends AbstractService {
7
+ public repository: CartRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new CartRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'me'
16
+ }
17
+
18
+ registerRoutes(parent: Router) {
19
+ // Overwrite this function to be able to handle /me/active-cart path.
20
+ const basePath = this.getBasePath()
21
+ const router = Router({ mergeParams: true })
22
+
23
+ this.extraRoutes(router)
24
+
25
+ router.get('/active-cart', this.activeCart.bind(this))
26
+ router.get('/carts/', this.get.bind(this))
27
+ router.get('/carts/:id', this.getWithId.bind(this))
28
+
29
+ router.delete('/carts/:id', this.deletewithId.bind(this))
30
+
31
+ router.post('/carts/', this.post.bind(this))
32
+ router.post('/carts/:id', this.postWithId.bind(this))
33
+
34
+ parent.use(`/${basePath}`, router)
35
+ }
36
+
37
+ activeCart(request: Request, response: Response) {
38
+ const resource = this.repository.getActiveCart(request.params.projectKey)
39
+ if (!resource) {
40
+ return response.status(404).send('Not found')
41
+ }
42
+ return response.status(200).send(resource)
43
+ }
44
+ }
@@ -15,7 +15,7 @@ describe('MyPayment', () => {
15
15
  },
16
16
  resourceTypeIds: ['payment'],
17
17
  })
18
- expect(response.status).toBe(200)
18
+ expect(response.status).toBe(201)
19
19
  })
20
20
 
21
21
  test('Create payment', async () => {
@@ -32,7 +32,7 @@ describe('MyPayment', () => {
32
32
  .post('/dummy/me/payments')
33
33
  .send(draft)
34
34
 
35
- expect(response.status).toBe(200)
35
+ expect(response.status).toBe(201)
36
36
  expect(response.body).toEqual({
37
37
  id: expect.anything(),
38
38
  createdAt: expect.anything(),
@@ -21,7 +21,7 @@ describe('Order Query', () => {
21
21
  },
22
22
  },
23
23
  })
24
- expect(response.status).toBe(200)
24
+ expect(response.status).toBe(201)
25
25
  const cart = response.body
26
26
 
27
27
  response = await supertest(ctMock.app)
@@ -33,7 +33,7 @@ describe('Order Query', () => {
33
33
  },
34
34
  orderNumber: 'foobar',
35
35
  })
36
- expect(response.status).toBe(200)
36
+ expect(response.status).toBe(201)
37
37
  order = response.body
38
38
  })
39
39
 
@@ -279,7 +279,7 @@ describe('Order Update Actions', () => {
279
279
  .send({
280
280
  currency: 'EUR',
281
281
  })
282
- expect(response.status).toBe(200)
282
+ expect(response.status).toBe(201)
283
283
  const cart = response.body
284
284
 
285
285
  response = await supertest(ctMock.app)
@@ -290,7 +290,7 @@ describe('Order Update Actions', () => {
290
290
  id: cart.id,
291
291
  },
292
292
  })
293
- expect(response.status).toBe(200)
293
+ expect(response.status).toBe(201)
294
294
  order = response.body
295
295
  })
296
296
 
@@ -15,7 +15,7 @@ describe('Payment', () => {
15
15
  },
16
16
  resourceTypeIds: ['payment'],
17
17
  })
18
- expect(response.status).toBe(200)
18
+ expect(response.status).toBe(201)
19
19
  })
20
20
 
21
21
  test('Create payment', async () => {
@@ -32,7 +32,7 @@ describe('Payment', () => {
32
32
  .post('/dummy/payments')
33
33
  .send(draft)
34
34
 
35
- expect(response.status).toBe(200)
35
+ expect(response.status).toBe(201)
36
36
  expect(response.body).toEqual({
37
37
  id: expect.anything(),
38
38
  createdAt: expect.anything(),
@@ -1,8 +1,4 @@
1
- import {
2
- Product,
3
- ProductDraft,
4
- ProductProjection,
5
- } from '@commercetools/platform-sdk'
1
+ import { ProductDraft, ProductProjection } from '@commercetools/platform-sdk'
6
2
  import supertest from 'supertest'
7
3
  import { CommercetoolsMock } from '../index'
8
4
  import * as qs from 'querystring'
@@ -22,7 +22,7 @@ describe('Product type', () => {
22
22
  .post('/dummy/product-types')
23
23
  .send(draft)
24
24
 
25
- expect(response.status).toBe(200)
25
+ expect(response.status).toBe(201)
26
26
 
27
27
  expect(response.body).toEqual({
28
28
  attributes: [
@@ -58,7 +58,7 @@ describe('Product type', () => {
58
58
  .post('/dummy/product-types')
59
59
  .send(draft)
60
60
 
61
- expect(createResponse.status).toBe(200)
61
+ expect(createResponse.status).toBe(201)
62
62
 
63
63
  const response = await supertest(ctMock.app).get(
64
64
  `/dummy/product-types/${createResponse.body.id}`
@@ -1,4 +1,8 @@
1
- import { Product, ProductDraft } from '@commercetools/platform-sdk'
1
+ import {
2
+ CentPrecisionMoney,
3
+ Product,
4
+ ProductDraft,
5
+ } from '@commercetools/platform-sdk'
2
6
  import supertest from 'supertest'
3
7
  import { CommercetoolsMock } from '../index'
4
8
  import assert from 'assert'
@@ -88,7 +92,7 @@ describe('Product update actions', () => {
88
92
  .post('/dummy/products')
89
93
  .send(draft)
90
94
 
91
- expect(response.status).toBe(200)
95
+ expect(response.status).toBe(201)
92
96
  product = response.body
93
97
  })
94
98
 
@@ -0,0 +1,42 @@
1
+ import { Router } from 'express'
2
+ import { Request, Response } from 'express'
3
+ import { AbstractStorage } from '../storage'
4
+ import { ProjectRepository } from '../repositories/project'
5
+ import { Update } from '@commercetools/platform-sdk'
6
+
7
+ export class ProjectService {
8
+ public repository: ProjectRepository
9
+
10
+ constructor(parent: Router, storage: AbstractStorage) {
11
+ this.repository = new ProjectRepository(storage)
12
+ this.registerRoutes(parent)
13
+ }
14
+
15
+ registerRoutes(parent: Router) {
16
+ parent.get('', this.get.bind(this))
17
+ parent.post('', this.post.bind(this))
18
+ }
19
+
20
+ get(request: Request, response: Response) {
21
+ const projectKey = request.params.projectKey
22
+ const project = this.repository.get(projectKey)
23
+ return response.status(200).send(project)
24
+ }
25
+
26
+ post(request: Request, response: Response) {
27
+ const updateRequest: Update = request.body
28
+ const project = this.repository.get(request.params.projectKey)
29
+
30
+ if (!project) {
31
+ return response.status(404).send({})
32
+ }
33
+
34
+ const updatedResource = this.repository.processUpdateActions(
35
+ request.params.projectKey,
36
+ project,
37
+ updateRequest.actions
38
+ )
39
+
40
+ return response.status(200).send({})
41
+ }
42
+ }
@@ -17,7 +17,7 @@ describe('Shipping method', () => {
17
17
  const createResponse = await supertest(ctMock.app)
18
18
  .post('/dummy/tax-categories')
19
19
  .send(draft)
20
- expect(createResponse.status).toEqual(200)
20
+ expect(createResponse.status).toEqual(201)
21
21
  })
22
22
 
23
23
  afterEach(async () => {
@@ -35,7 +35,7 @@ describe('Shipping method', () => {
35
35
  .post('/dummy/shipping-methods')
36
36
  .send(draft)
37
37
 
38
- expect(response.status).toBe(200)
38
+ expect(response.status).toBe(201)
39
39
 
40
40
  expect(response.body).toEqual({
41
41
  createdAt: expect.anything(),
@@ -63,7 +63,7 @@ describe('Shipping method', () => {
63
63
  .post('/dummy/shipping-methods')
64
64
  .send(draft)
65
65
 
66
- expect(createResponse.status).toBe(200)
66
+ expect(createResponse.status).toBe(201)
67
67
 
68
68
  const response = await supertest(ctMock.app).get(
69
69
  `/dummy/shipping-methods/${createResponse.body.id}`
@@ -14,7 +14,7 @@ describe('State', () => {
14
14
  .post('/dummy/states')
15
15
  .send(draft)
16
16
 
17
- expect(response.status).toBe(200)
17
+ expect(response.status).toBe(201)
18
18
 
19
19
  expect(response.body).toEqual({
20
20
  builtIn: false,
@@ -38,7 +38,7 @@ describe('State', () => {
38
38
  .post('/dummy/states')
39
39
  .send(draft)
40
40
 
41
- expect(createResponse.status).toBe(200)
41
+ expect(createResponse.status).toBe(201)
42
42
 
43
43
  const response = await supertest(ctMock.app).get(
44
44
  `/dummy/states/${createResponse.body.id}`
@@ -0,0 +1,17 @@
1
+ import AbstractService from './abstract'
2
+ import { Router } from 'express'
3
+ import { AbstractStorage } from '../storage'
4
+ import { SubscriptionRepository } from '../repositories/subscription'
5
+
6
+ export class SubscriptionService extends AbstractService {
7
+ public repository: SubscriptionRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new SubscriptionRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'subscriptions'
16
+ }
17
+ }
@@ -18,7 +18,7 @@ describe('Tax Category', () => {
18
18
  .post('/dummy/tax-categories')
19
19
  .send(draft)
20
20
 
21
- expect(response.status).toBe(200)
21
+ expect(response.status).toBe(201)
22
22
 
23
23
  expect(response.body).toEqual({
24
24
  createdAt: expect.anything(),
@@ -41,7 +41,7 @@ describe('Tax Category', () => {
41
41
  .post('/dummy/tax-categories')
42
42
  .send(draft)
43
43
 
44
- expect(createResponse.status).toBe(200)
44
+ expect(createResponse.status).toBe(201)
45
45
 
46
46
  const response = await supertest(ctMock.app).get(
47
47
  `/dummy/tax-categories/${createResponse.body.id}`
@@ -61,7 +61,7 @@ describe('Tax Category', () => {
61
61
  .post('/dummy/tax-categories')
62
62
  .send(draft)
63
63
 
64
- expect(createResponse.status).toBe(200)
64
+ expect(createResponse.status).toBe(201)
65
65
 
66
66
  const response = await supertest(ctMock.app)
67
67
  .get(`/dummy/tax-categories/`)
@@ -0,0 +1,17 @@
1
+ import { Router } from 'express'
2
+ import AbstractService from './abstract'
3
+ import { AbstractStorage } from '../storage'
4
+ import { ZoneRepository } from '../repositories/zone'
5
+
6
+ export class ZoneService extends AbstractService {
7
+ public repository: ZoneRepository
8
+
9
+ constructor(parent: Router, storage: AbstractStorage) {
10
+ super(parent)
11
+ this.repository = new ZoneRepository(storage)
12
+ }
13
+
14
+ getBasePath() {
15
+ return 'zones'
16
+ }
17
+ }