@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,132 +1,132 @@
1
- import { describe, it, expect, beforeEach } from 'vitest'
2
- import express from 'express'
3
- import supertest from 'supertest'
4
- import { OAuth2Server } from './server'
5
- import { CustomerRepository } from '../repositories/customer'
6
- import { AbstractStorage, InMemoryStorage } from '../storage'
7
- import { getBaseResourceProperties } from '../helpers'
8
- import { hashPassword } from '../lib/password'
9
-
10
- describe('OAuth2Server', () => {
11
- let app: express.Express
12
- let server: OAuth2Server
13
-
14
- let storage: AbstractStorage
15
- let customerRepository: CustomerRepository
1
+ import express from "express";
2
+ import supertest from "supertest";
3
+ import { beforeEach, describe, expect, it } from "vitest";
4
+ import { getBaseResourceProperties } from "../helpers";
5
+ import { hashPassword } from "../lib/password";
6
+ import { CustomerRepository } from "../repositories/customer";
7
+ import { AbstractStorage, InMemoryStorage } from "../storage";
8
+ import { OAuth2Server } from "./server";
9
+
10
+ describe("OAuth2Server", () => {
11
+ let app: express.Express;
12
+ let server: OAuth2Server;
13
+
14
+ let storage: AbstractStorage;
15
+ let customerRepository: CustomerRepository;
16
16
 
17
17
  beforeEach(() => {
18
- server = new OAuth2Server({ enabled: true, validate: false })
19
- app = express()
20
- app.use(server.createRouter())
18
+ server = new OAuth2Server({ enabled: true, validate: false });
19
+ app = express();
20
+ app.use(server.createRouter());
21
21
 
22
- storage = new InMemoryStorage()
23
- customerRepository = new CustomerRepository(storage)
24
- server.setCustomerRepository(customerRepository)
25
- })
22
+ storage = new InMemoryStorage();
23
+ customerRepository = new CustomerRepository(storage);
24
+ server.setCustomerRepository(customerRepository);
25
+ });
26
26
 
27
- describe('POST /token', () => {
28
- it('should return a token for valid client credentials', async () => {
27
+ describe("POST /token", () => {
28
+ it("should return a token for valid client credentials", async () => {
29
29
  const response = await supertest(app)
30
- .post('/token')
31
- .auth('validClientId', 'validClientSecret')
32
- .query({ grant_type: 'client_credentials' })
33
- .send()
30
+ .post("/token")
31
+ .auth("validClientId", "validClientSecret")
32
+ .query({ grant_type: "client_credentials" })
33
+ .send();
34
34
 
35
- const body = await response.body
35
+ const body = await response.body;
36
36
 
37
- expect(response.status, JSON.stringify(body)).toBe(200)
38
- expect(body).toHaveProperty('access_token')
39
- })
37
+ expect(response.status, JSON.stringify(body)).toBe(200);
38
+ expect(body).toHaveProperty("access_token");
39
+ });
40
40
 
41
- it('should failed on invalid refresh token', async () => {
41
+ it("should failed on invalid refresh token", async () => {
42
42
  const response = await supertest(app)
43
- .post('/token')
44
- .auth('validClientId', 'validClientSecret')
45
- .query({ grant_type: 'refresh_token', refresh_token: 'invalid' })
46
- .send()
43
+ .post("/token")
44
+ .auth("validClientId", "validClientSecret")
45
+ .query({ grant_type: "refresh_token", refresh_token: "invalid" })
46
+ .send();
47
47
 
48
- const body = await response.body
48
+ const body = await response.body;
49
49
 
50
- expect(response.status, JSON.stringify(body)).toBe(400)
51
- })
50
+ expect(response.status, JSON.stringify(body)).toBe(400);
51
+ });
52
52
 
53
- it('should refresh a token', async () => {
53
+ it("should refresh a token", async () => {
54
54
  const createResponse = await supertest(app)
55
55
  .post(`/my-project/anonymous/token`)
56
- .auth('validClientId', 'validClientSecret')
57
- .query({ grant_type: 'client_credentials' })
58
- .send()
56
+ .auth("validClientId", "validClientSecret")
57
+ .query({ grant_type: "client_credentials" })
58
+ .send();
59
59
 
60
- const refreshToken = createResponse.body.refresh_token
60
+ const refreshToken = createResponse.body.refresh_token;
61
61
 
62
62
  const response = await supertest(app)
63
- .post('/token')
64
- .auth('validClientId', 'validClientSecret')
65
- .query({ grant_type: 'refresh_token', refresh_token: refreshToken })
66
- .send()
63
+ .post("/token")
64
+ .auth("validClientId", "validClientSecret")
65
+ .query({ grant_type: "refresh_token", refresh_token: refreshToken })
66
+ .send();
67
67
 
68
- const body = await response.body
68
+ const body = await response.body;
69
69
 
70
- expect(response.status, JSON.stringify(body)).toBe(200)
71
- expect(body.access_token).not.toBe(createResponse.body.access_token)
72
- expect(body.refresh_token).toBeUndefined()
73
- })
74
- })
70
+ expect(response.status, JSON.stringify(body)).toBe(200);
71
+ expect(body.access_token).not.toBe(createResponse.body.access_token);
72
+ expect(body.refresh_token).toBeUndefined();
73
+ });
74
+ });
75
75
 
76
- describe('POST /:projectKey/anonymous/token', () => {
77
- it('should return a token for anonymous access', async () => {
78
- const projectKey = 'test-project'
76
+ describe("POST /:projectKey/anonymous/token", () => {
77
+ it("should return a token for anonymous access", async () => {
78
+ const projectKey = "test-project";
79
79
 
80
80
  const response = await supertest(app)
81
81
  .post(`/${projectKey}/anonymous/token`)
82
- .auth('validClientId', 'validClientSecret')
83
- .query({ grant_type: 'client_credentials' })
84
- .send()
82
+ .auth("validClientId", "validClientSecret")
83
+ .query({ grant_type: "client_credentials" })
84
+ .send();
85
85
 
86
- expect(response.status).toBe(200)
87
- expect(response.body).toHaveProperty('access_token')
86
+ expect(response.status).toBe(200);
87
+ expect(response.body).toHaveProperty("access_token");
88
88
  expect(response.body).toEqual({
89
89
  scope: expect.stringMatching(/anonymous_id:([^\s]+)/),
90
90
  access_token: expect.stringMatching(/\S{8,}==$/),
91
91
  refresh_token: expect.stringMatching(/test-project:\S{8,}==$/),
92
92
  expires_in: 172800,
93
- token_type: 'Bearer',
94
- })
95
- })
96
- })
93
+ token_type: "Bearer",
94
+ });
95
+ });
96
+ });
97
97
 
98
- describe('POST /:projectKey/customers/token', () => {
99
- it('should return a token for customer access', async () => {
100
- const projectKey = 'test-project'
98
+ describe("POST /:projectKey/customers/token", () => {
99
+ it("should return a token for customer access", async () => {
100
+ const projectKey = "test-project";
101
101
 
102
- storage.add(projectKey, 'customer', {
102
+ storage.add(projectKey, "customer", {
103
103
  ...getBaseResourceProperties(),
104
- email: 'j.doe@example.org',
105
- password: hashPassword('password'),
104
+ email: "j.doe@example.org",
105
+ password: hashPassword("password"),
106
106
  addresses: [],
107
- authenticationMode: 'password',
107
+ authenticationMode: "password",
108
108
  isEmailVerified: true,
109
- })
109
+ });
110
110
 
111
111
  const response = await supertest(app)
112
112
  .post(`/${projectKey}/customers/token`)
113
- .auth('validClientId', 'validClientSecret')
113
+ .auth("validClientId", "validClientSecret")
114
114
  .query({
115
- grant_type: 'password',
116
- username: 'j.doe@example.org',
117
- password: 'password',
115
+ grant_type: "password",
116
+ username: "j.doe@example.org",
117
+ password: "password",
118
118
  scope: `${projectKey}:manage_my_profile`,
119
119
  })
120
- .send()
120
+ .send();
121
121
 
122
- expect(response.status).toBe(200)
122
+ expect(response.status).toBe(200);
123
123
  expect(response.body).toEqual({
124
124
  scope: expect.stringMatching(/customer_id:([^\s]+)/),
125
125
  access_token: expect.stringMatching(/\S{8,}==$/),
126
126
  refresh_token: expect.stringMatching(/test-project:\S{8,}==$/),
127
127
  expires_in: 172800,
128
- token_type: 'Bearer',
129
- })
130
- })
131
- })
132
- })
128
+ token_type: "Bearer",
129
+ });
130
+ });
131
+ });
132
+ });