@labdigital/commercetools-mock 2.17.1 → 2.18.1

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 (180) hide show
  1. package/dist/index.cjs +4351 -4099
  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 +4351 -4099
  6. package/dist/index.js.map +1 -1
  7. package/package.json +47 -47
  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/schemas/update-request.ts +12 -0
  98. package/src/server.ts +9 -9
  99. package/src/services/abstract.ts +85 -72
  100. package/src/services/associate-roles.test.ts +27 -27
  101. package/src/services/associate-roles.ts +7 -7
  102. package/src/services/attribute-group.ts +7 -7
  103. package/src/services/business-units.test.ts +28 -28
  104. package/src/services/business-units.ts +7 -7
  105. package/src/services/cart-discount.test.ts +199 -199
  106. package/src/services/cart-discount.ts +7 -7
  107. package/src/services/cart.test.ts +261 -261
  108. package/src/services/cart.ts +22 -21
  109. package/src/services/category.test.ts +121 -121
  110. package/src/services/category.ts +7 -7
  111. package/src/services/channel.ts +7 -7
  112. package/src/services/custom-object.test.ts +130 -130
  113. package/src/services/custom-object.ts +34 -31
  114. package/src/services/customer-group.ts +7 -7
  115. package/src/services/customer.test.ts +205 -205
  116. package/src/services/customer.ts +23 -36
  117. package/src/services/discount-code.ts +7 -7
  118. package/src/services/extension.ts +7 -7
  119. package/src/services/index.ts +85 -81
  120. package/src/services/inventory-entry.test.ts +106 -106
  121. package/src/services/inventory-entry.ts +7 -7
  122. package/src/services/my-cart.test.ts +56 -56
  123. package/src/services/my-cart.ts +20 -20
  124. package/src/services/my-customer.test.ts +155 -104
  125. package/src/services/my-customer.ts +66 -75
  126. package/src/services/my-order.ts +16 -16
  127. package/src/services/my-payment.test.ts +40 -40
  128. package/src/services/my-payment.ts +7 -7
  129. package/src/services/my-shopping-list.ts +7 -7
  130. package/src/services/order.test.ts +243 -243
  131. package/src/services/order.ts +23 -18
  132. package/src/services/payment.test.ts +40 -40
  133. package/src/services/payment.ts +7 -7
  134. package/src/services/product-discount.ts +7 -7
  135. package/src/services/product-projection.test.ts +190 -190
  136. package/src/services/product-projection.ts +34 -32
  137. package/src/services/product-selection.test.ts +19 -19
  138. package/src/services/product-selection.ts +7 -7
  139. package/src/services/product-type.test.ts +38 -38
  140. package/src/services/product-type.ts +7 -7
  141. package/src/services/product.test.ts +658 -656
  142. package/src/services/product.ts +7 -7
  143. package/src/services/project.test.ts +29 -24
  144. package/src/services/project.ts +22 -17
  145. package/src/services/reviews.ts +7 -7
  146. package/src/services/shipping-method.test.ts +78 -78
  147. package/src/services/shipping-method.ts +16 -16
  148. package/src/services/shopping-list.test.ts +170 -170
  149. package/src/services/shopping-list.ts +7 -7
  150. package/src/services/standalone-price.test.ts +112 -112
  151. package/src/services/standalone-price.ts +7 -7
  152. package/src/services/state.test.ts +30 -30
  153. package/src/services/state.ts +7 -7
  154. package/src/services/store.test.ts +40 -40
  155. package/src/services/store.ts +7 -7
  156. package/src/services/subscription.ts +7 -7
  157. package/src/services/tax-category.test.ts +43 -43
  158. package/src/services/tax-category.ts +7 -7
  159. package/src/services/type.ts +7 -7
  160. package/src/services/zone.ts +7 -7
  161. package/src/shippingCalculator.test.ts +43 -43
  162. package/src/shippingCalculator.ts +23 -23
  163. package/src/storage/abstract.ts +36 -34
  164. package/src/storage/in-memory.ts +237 -233
  165. package/src/storage/index.ts +2 -2
  166. package/src/types.ts +91 -91
  167. package/src/validate.ts +18 -0
  168. package/src/repositories/cart-discount.ts +0 -219
  169. package/src/repositories/cart.ts +0 -659
  170. package/src/repositories/category.ts +0 -256
  171. package/src/repositories/customer.ts +0 -228
  172. package/src/repositories/discount-code.ts +0 -181
  173. package/src/repositories/inventory-entry.ts +0 -109
  174. package/src/repositories/order.ts +0 -514
  175. package/src/repositories/payment.ts +0 -342
  176. package/src/repositories/product.ts +0 -1106
  177. package/src/repositories/shipping-method.ts +0 -312
  178. package/src/repositories/shopping-list.ts +0 -392
  179. package/src/repositories/tax-category.ts +0 -111
  180. package/src/repositories/type.ts +0 -172
@@ -1,31 +1,31 @@
1
- import { Request, Response, Router } from 'express'
2
- import { getRepositoryContext } from '../repositories/helpers.js'
1
+ import { Request, Response, Router } from "express";
2
+ import { queryParamsArray, queryParamsValue } from "../helpers";
3
+ import { getRepositoryContext } from "../repositories/helpers";
3
4
  import {
4
5
  ProductProjectionQueryParams,
5
6
  ProductProjectionRepository,
6
- } from './../repositories/product-projection.js'
7
- import AbstractService from './abstract.js'
8
- import { queryParamsArray, queryParamsValue } from '../helpers.js'
7
+ } from "./../repositories/product-projection";
8
+ import AbstractService from "./abstract";
9
9
 
10
10
  export class ProductProjectionService extends AbstractService {
11
- public repository: ProductProjectionRepository
11
+ public repository: ProductProjectionRepository;
12
12
 
13
13
  constructor(parent: Router, repository: ProductProjectionRepository) {
14
- super(parent)
15
- this.repository = repository
14
+ super(parent);
15
+ this.repository = repository;
16
16
  }
17
17
 
18
18
  getBasePath() {
19
- return 'product-projections'
19
+ return "product-projections";
20
20
  }
21
21
 
22
22
  extraRoutes(router: Router) {
23
- router.get('/search', this.search.bind(this))
23
+ router.get("/search", this.search.bind(this));
24
24
  }
25
25
 
26
26
  get(request: Request, response: Response) {
27
- const limit = this._parseParam(request.query.limit)
28
- const offset = this._parseParam(request.query.offset)
27
+ const limit = this._parseParam(request.query.limit);
28
+ const offset = this._parseParam(request.query.offset);
29
29
 
30
30
  const result = this.repository.query(getRepositoryContext(request), {
31
31
  ...request.query,
@@ -33,31 +33,33 @@ export class ProductProjectionService extends AbstractService {
33
33
  where: this._parseParam(request.query.where),
34
34
  limit: limit !== undefined ? Number(limit) : undefined,
35
35
  offset: offset !== undefined ? Number(offset) : undefined,
36
- })
37
- return response.status(200).send(result)
36
+ });
37
+ return response.status(200).send(result);
38
38
  }
39
39
 
40
40
  search(request: Request, response: Response) {
41
- const query = request.query
41
+ const query = request.query;
42
42
  const searchParams: ProductProjectionQueryParams = {
43
- filter: queryParamsArray(query.filter),
44
- 'filter.query': queryParamsArray(query['filter.query']),
45
- facet: queryParamsArray(query.facet),
46
- expand: queryParamsArray(query.expand),
47
- staged: queryParamsValue(query.staged) === 'true',
48
- localeProjection: queryParamsValue(query.localeProjection),
49
- storeProjection: queryParamsValue(query.storeProjection),
50
- priceChannel: queryParamsValue(query.priceChannel),
51
- priceCountry: queryParamsValue(query.priceCountry),
52
- priceCurrency: queryParamsValue(query.priceCurrency),
53
- priceCustomerGroup: queryParamsValue(query.priceCustomerGroup),
54
- offset: query.offset ? Number(queryParamsValue(query.offset)) : undefined,
55
- limit: query.limit ? Number(queryParamsValue(query.limit)) : undefined,
56
- }
43
+ "filter": queryParamsArray(query.filter),
44
+ "filter.query": queryParamsArray(query["filter.query"]),
45
+ "facet": queryParamsArray(query.facet),
46
+ "expand": queryParamsArray(query.expand),
47
+ "staged": queryParamsValue(query.staged) === "true",
48
+ "localeProjection": queryParamsValue(query.localeProjection),
49
+ "storeProjection": queryParamsValue(query.storeProjection),
50
+ "priceChannel": queryParamsValue(query.priceChannel),
51
+ "priceCountry": queryParamsValue(query.priceCountry),
52
+ "priceCurrency": queryParamsValue(query.priceCurrency),
53
+ "priceCustomerGroup": queryParamsValue(query.priceCustomerGroup),
54
+ "offset": query.offset
55
+ ? Number(queryParamsValue(query.offset))
56
+ : undefined,
57
+ "limit": query.limit ? Number(queryParamsValue(query.limit)) : undefined,
58
+ };
57
59
  const resource = this.repository.search(
58
60
  getRepositoryContext(request),
59
- searchParams
60
- )
61
- return response.status(200).send(resource)
61
+ searchParams,
62
+ );
63
+ return response.status(200).send(resource);
62
64
  }
63
65
  }
@@ -1,35 +1,35 @@
1
- import type { ProductSelectionDraft } from '@commercetools/platform-sdk'
2
- import supertest from 'supertest'
3
- import { describe, expect, test } from 'vitest'
4
- import { CommercetoolsMock } from '../index.js'
1
+ import type { ProductSelectionDraft } from "@commercetools/platform-sdk";
2
+ import supertest from "supertest";
3
+ import { describe, expect, test } from "vitest";
4
+ import { CommercetoolsMock } from "../index";
5
5
 
6
- const ctMock = new CommercetoolsMock()
6
+ const ctMock = new CommercetoolsMock();
7
7
 
8
- describe('product-selection', () => {
9
- test('Create product selection', async () => {
8
+ describe("product-selection", () => {
9
+ test("Create product selection", async () => {
10
10
  const draft: ProductSelectionDraft = {
11
11
  name: {
12
- en: 'foo',
12
+ en: "foo",
13
13
  },
14
- key: 'foo',
15
- }
14
+ key: "foo",
15
+ };
16
16
  const response = await supertest(ctMock.app)
17
- .post('/dummy/product-selections')
18
- .send(draft)
17
+ .post("/dummy/product-selections")
18
+ .send(draft);
19
19
 
20
- expect(response.status).toBe(201)
20
+ expect(response.status).toBe(201);
21
21
 
22
22
  expect(response.body).toEqual({
23
23
  createdAt: expect.anything(),
24
24
  id: expect.anything(),
25
25
  lastModifiedAt: expect.anything(),
26
26
  name: {
27
- en: 'foo',
27
+ en: "foo",
28
28
  },
29
- key: 'foo',
29
+ key: "foo",
30
30
  version: 1,
31
31
  productCount: 0,
32
- mode: 'Individual',
33
- })
34
- })
35
- })
32
+ mode: "Individual",
33
+ });
34
+ });
35
+ });
@@ -1,16 +1,16 @@
1
- import { Router } from 'express'
2
- import AbstractService from './abstract.js'
3
- import { ProductSelectionRepository } from '../repositories/product-selection.js'
1
+ import { Router } from "express";
2
+ import { ProductSelectionRepository } from "../repositories/product-selection";
3
+ import AbstractService from "./abstract";
4
4
 
5
5
  export class ProductSelectionService extends AbstractService {
6
- public repository: ProductSelectionRepository
6
+ public repository: ProductSelectionRepository;
7
7
 
8
8
  constructor(parent: Router, repository: ProductSelectionRepository) {
9
- super(parent)
10
- this.repository = repository
9
+ super(parent);
10
+ this.repository = repository;
11
11
  }
12
12
 
13
13
  getBasePath() {
14
- return 'product-selections'
14
+ return "product-selections";
15
15
  }
16
16
  }
@@ -1,71 +1,71 @@
1
- import type { ProductTypeDraft } from '@commercetools/platform-sdk'
2
- import supertest from 'supertest'
3
- import { describe, expect, test } from 'vitest'
4
- import { CommercetoolsMock } from '../index.js'
1
+ import type { ProductTypeDraft } from "@commercetools/platform-sdk";
2
+ import supertest from "supertest";
3
+ import { describe, expect, test } from "vitest";
4
+ import { CommercetoolsMock } from "../index";
5
5
 
6
- const ctMock = new CommercetoolsMock()
6
+ const ctMock = new CommercetoolsMock();
7
7
 
8
- describe('Product type', () => {
9
- test('Create product type', async () => {
8
+ describe("Product type", () => {
9
+ test("Create product type", async () => {
10
10
  const draft: ProductTypeDraft = {
11
- name: 'foo',
12
- description: 'bar',
11
+ name: "foo",
12
+ description: "bar",
13
13
  attributes: [
14
14
  {
15
- name: 'name',
16
- type: { name: 'boolean' },
17
- label: { 'nl-NL': 'bar' },
15
+ name: "name",
16
+ type: { name: "boolean" },
17
+ label: { "nl-NL": "bar" },
18
18
  isRequired: false,
19
19
  },
20
20
  ],
21
- }
21
+ };
22
22
  const response = await supertest(ctMock.app)
23
- .post('/dummy/product-types')
24
- .send(draft)
23
+ .post("/dummy/product-types")
24
+ .send(draft);
25
25
 
26
- expect(response.status).toBe(201)
26
+ expect(response.status).toBe(201);
27
27
 
28
28
  expect(response.body).toEqual({
29
29
  attributes: [
30
30
  {
31
- attributeConstraint: 'None',
32
- inputHint: 'SingleLine',
31
+ attributeConstraint: "None",
32
+ inputHint: "SingleLine",
33
33
  isRequired: false,
34
34
  isSearchable: true,
35
35
  label: {
36
- 'nl-NL': 'bar',
36
+ "nl-NL": "bar",
37
37
  },
38
- name: 'name',
38
+ name: "name",
39
39
  type: {
40
- name: 'boolean',
40
+ name: "boolean",
41
41
  },
42
42
  },
43
43
  ],
44
44
  createdAt: expect.anything(),
45
- description: 'bar',
45
+ description: "bar",
46
46
  id: expect.anything(),
47
47
  lastModifiedAt: expect.anything(),
48
- name: 'foo',
48
+ name: "foo",
49
49
  version: 1,
50
- })
51
- })
50
+ });
51
+ });
52
52
 
53
- test('Get product type', async () => {
53
+ test("Get product type", async () => {
54
54
  const draft: ProductTypeDraft = {
55
- name: 'foo',
56
- description: 'bar',
57
- }
55
+ name: "foo",
56
+ description: "bar",
57
+ };
58
58
  const createResponse = await supertest(ctMock.app)
59
- .post('/dummy/product-types')
60
- .send(draft)
59
+ .post("/dummy/product-types")
60
+ .send(draft);
61
61
 
62
- expect(createResponse.status).toBe(201)
62
+ expect(createResponse.status).toBe(201);
63
63
 
64
64
  const response = await supertest(ctMock.app).get(
65
- `/dummy/product-types/${createResponse.body.id}`
66
- )
65
+ `/dummy/product-types/${createResponse.body.id}`,
66
+ );
67
67
 
68
- expect(response.status).toBe(200)
69
- expect(response.body).toEqual(createResponse.body)
70
- })
71
- })
68
+ expect(response.status).toBe(200);
69
+ expect(response.body).toEqual(createResponse.body);
70
+ });
71
+ });
@@ -1,16 +1,16 @@
1
- import { Router } from 'express'
2
- import { ProductTypeRepository } from '../repositories/product-type.js'
3
- import AbstractService from './abstract.js'
1
+ import { Router } from "express";
2
+ import { ProductTypeRepository } from "../repositories/product-type";
3
+ import AbstractService from "./abstract";
4
4
 
5
5
  export class ProductTypeService extends AbstractService {
6
- public repository: ProductTypeRepository
6
+ public repository: ProductTypeRepository;
7
7
 
8
8
  constructor(parent: Router, repository: ProductTypeRepository) {
9
- super(parent)
10
- this.repository = repository
9
+ super(parent);
10
+ this.repository = repository;
11
11
  }
12
12
 
13
13
  getBasePath() {
14
- return 'product-types'
14
+ return "product-types";
15
15
  }
16
16
  }