@labdigital/commercetools-mock 2.9.0 → 2.11.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 CHANGED
@@ -42,9 +42,14 @@ const ctMock = new CommercetoolsMock({
42
42
  })
43
43
 
44
44
  describe('A module', () => {
45
+ const mswServer = setupServer()
46
+
45
47
  beforeAll(() => {
46
- const server = setupServer()
47
- ctMock.registerHandlers(server)
48
+ mswServer.listen({ onUnhandledRequest: "error" })
49
+ })
50
+
51
+ beforeEach(() => {
52
+ ctMock.registerHandlers(mswServer)
48
53
 
49
54
  ctMock.project().add('type', {
50
55
  ...getBaseResourceProperties()
@@ -54,11 +59,11 @@ describe('A module', () => {
54
59
  })
55
60
 
56
61
  afterAll(() => {
57
- server.clearHandlers()
58
- ctMock.stop()
62
+ mswServer.close()
59
63
  })
60
64
 
61
65
  afterEach(() => {
66
+ server.clearHandlers()
62
67
  ctMock.clear()
63
68
  })
64
69
 
package/dist/index.cjs CHANGED
@@ -1287,6 +1287,7 @@ var import_express = __toESM(require("express"), 1);
1287
1287
 
1288
1288
  // src/oauth/store.ts
1289
1289
  var import_crypto = require("crypto");
1290
+ var import_uuid2 = require("uuid");
1290
1291
  var OAuth2Store = class {
1291
1292
  tokens = [];
1292
1293
  validate = true;
@@ -1303,12 +1304,25 @@ var OAuth2Store = class {
1303
1304
  this.tokens.push(token);
1304
1305
  return token;
1305
1306
  }
1307
+ getAnonymousToken(scope, anonymousId) {
1308
+ if (!anonymousId) {
1309
+ anonymousId = (0, import_uuid2.v4)();
1310
+ }
1311
+ const token = {
1312
+ access_token: (0, import_crypto.randomBytes)(16).toString("base64"),
1313
+ token_type: "Bearer",
1314
+ expires_in: 172800,
1315
+ scope: scope ? `${scope} anonymous_id:${anonymousId}` : `anonymous_id:${anonymousId}`
1316
+ };
1317
+ this.tokens.push(token);
1318
+ return token;
1319
+ }
1306
1320
  getCustomerToken(scope, customerId) {
1307
1321
  const token = {
1308
1322
  access_token: (0, import_crypto.randomBytes)(16).toString("base64"),
1309
1323
  token_type: "Bearer",
1310
1324
  expires_in: 172800,
1311
- scope: scope ? `${scope} custome_id:${customerId}` : `customer_id: ${customerId}`
1325
+ scope: scope ? `${scope} customer_id:${customerId}` : `customer_id:${customerId}`
1312
1326
  };
1313
1327
  this.tokens.push(token);
1314
1328
  return token;
@@ -1523,15 +1537,24 @@ var OAuth2Server = class {
1523
1537
  );
1524
1538
  }
1525
1539
  async anonymousTokenHandler(request, response, next) {
1526
- return next(
1527
- new CommercetoolsError(
1528
- {
1529
- code: "invalid_client",
1530
- message: "Not implemented yet in commercetools-mock"
1531
- },
1532
- 401
1533
- )
1534
- );
1540
+ const grantType = request.query.grant_type || request.body.grant_type;
1541
+ if (!grantType) {
1542
+ return next(
1543
+ new CommercetoolsError(
1544
+ {
1545
+ code: "invalid_request",
1546
+ message: "Missing required parameter: grant_type."
1547
+ },
1548
+ 400
1549
+ )
1550
+ );
1551
+ }
1552
+ if (grantType === "client_credentials") {
1553
+ const scope = request.query.scope?.toString() || request.body.scope?.toString();
1554
+ const anonymous_id = void 0;
1555
+ const token = this.store.getAnonymousToken(scope, anonymous_id);
1556
+ return response.status(200).send(token);
1557
+ }
1535
1558
  }
1536
1559
  };
1537
1560
 
@@ -1591,7 +1614,7 @@ var DEFAULT_API_HOSTNAME = "https://api.*.commercetools.com";
1591
1614
  var DEFAULT_AUTH_HOSTNAME = "https://auth.*.commercetools.com";
1592
1615
 
1593
1616
  // src/repositories/helpers.ts
1594
- var import_uuid2 = require("uuid");
1617
+ var import_uuid3 = require("uuid");
1595
1618
  var createAddress = (base, projectKey, storage) => {
1596
1619
  if (!base)
1597
1620
  return void 0;
@@ -1629,7 +1652,7 @@ var createCustomFields = (draft, projectKey, storage) => {
1629
1652
  };
1630
1653
  };
1631
1654
  var createPrice = (draft) => ({
1632
- id: (0, import_uuid2.v4)(),
1655
+ id: (0, import_uuid3.v4)(),
1633
1656
  value: createTypedMoney(draft.value)
1634
1657
  });
1635
1658
  var createCentPrecisionMoney = (value) => {
@@ -2195,7 +2218,7 @@ var BusinessUnitRepository = class extends AbstractResourceRepository {
2195
2218
  };
2196
2219
 
2197
2220
  // src/repositories/cart.ts
2198
- var import_uuid3 = require("uuid");
2221
+ var import_uuid4 = require("uuid");
2199
2222
  var CartRepository = class extends AbstractResourceRepository {
2200
2223
  getTypeId() {
2201
2224
  return "cart";
@@ -2328,7 +2351,7 @@ var CartRepository = class extends AbstractResourceRepository {
2328
2351
  );
2329
2352
  }
2330
2353
  resource.lineItems.push({
2331
- id: (0, import_uuid3.v4)(),
2354
+ id: (0, import_uuid4.v4)(),
2332
2355
  productId: product.id,
2333
2356
  productKey: product.key,
2334
2357
  productSlug: product.masterData.current.slug,
@@ -2352,6 +2375,8 @@ var CartRepository = class extends AbstractResourceRepository {
2352
2375
  }
2353
2376
  resource.totalPrice.centAmount = calculateCartTotalPrice(resource);
2354
2377
  },
2378
+ recalculate: () => {
2379
+ },
2355
2380
  addItemShippingAddress: (context, resource, { action, address }) => {
2356
2381
  const newAddress = createAddress(
2357
2382
  address,
@@ -2597,7 +2622,7 @@ var CartRepository = class extends AbstractResourceRepository {
2597
2622
  );
2598
2623
  }
2599
2624
  return {
2600
- id: (0, import_uuid3.v4)(),
2625
+ id: (0, import_uuid4.v4)(),
2601
2626
  productId: product.id,
2602
2627
  productKey: product.key,
2603
2628
  productSlug: product.masterData.current.slug,
@@ -2768,14 +2793,14 @@ var CartDiscountRepository = class extends AbstractResourceRepository {
2768
2793
  };
2769
2794
 
2770
2795
  // src/repositories/category.ts
2771
- var import_uuid4 = require("uuid");
2796
+ var import_uuid5 = require("uuid");
2772
2797
  var CategoryRepository = class extends AbstractResourceRepository {
2773
2798
  getTypeId() {
2774
2799
  return "category";
2775
2800
  }
2776
2801
  assetFromAssetDraft = (draft, context) => ({
2777
2802
  ...draft,
2778
- id: (0, import_uuid4.v4)(),
2803
+ id: (0, import_uuid5.v4)(),
2779
2804
  custom: createCustomFields(draft.custom, context.projectKey, this._storage)
2780
2805
  });
2781
2806
  create(context, draft) {
@@ -2790,7 +2815,7 @@ var CategoryRepository = class extends AbstractResourceRepository {
2790
2815
  ancestors: [],
2791
2816
  // TODO
2792
2817
  assets: draft.assets?.map((d) => ({
2793
- id: (0, import_uuid4.v4)(),
2818
+ id: (0, import_uuid5.v4)(),
2794
2819
  name: d.name,
2795
2820
  description: d.description,
2796
2821
  sources: d.sources,
@@ -3786,7 +3811,7 @@ var OrderEditRepository = class extends AbstractResourceRepository {
3786
3811
  };
3787
3812
 
3788
3813
  // src/repositories/payment.ts
3789
- var import_uuid5 = require("uuid");
3814
+ var import_uuid6 = require("uuid");
3790
3815
  var PaymentRepository = class extends AbstractResourceRepository {
3791
3816
  getTypeId() {
3792
3817
  return "payment";
@@ -3821,7 +3846,7 @@ var PaymentRepository = class extends AbstractResourceRepository {
3821
3846
  }
3822
3847
  transactionFromTransactionDraft = (draft, context) => ({
3823
3848
  ...draft,
3824
- id: (0, import_uuid5.v4)(),
3849
+ id: (0, import_uuid6.v4)(),
3825
3850
  amount: createCentPrecisionMoney(draft.amount),
3826
3851
  custom: createCustomFields(draft.custom, context.projectKey, this._storage),
3827
3852
  state: draft.state ?? "Initial"
@@ -3905,7 +3930,7 @@ var PaymentRepository = class extends AbstractResourceRepository {
3905
3930
  };
3906
3931
 
3907
3932
  // src/repositories/product.ts
3908
- var import_uuid6 = require("uuid");
3933
+ var import_uuid7 = require("uuid");
3909
3934
  var import_deep_equal2 = __toESM(require("deep-equal"), 1);
3910
3935
  var ProductRepository = class extends AbstractResourceRepository {
3911
3936
  getTypeId() {
@@ -4011,7 +4036,7 @@ var ProductRepository = class extends AbstractResourceRepository {
4011
4036
  }
4012
4037
  priceFromDraft(context, draft) {
4013
4038
  return {
4014
- id: (0, import_uuid6.v4)(),
4039
+ id: (0, import_uuid7.v4)(),
4015
4040
  key: draft.key,
4016
4041
  country: draft.country,
4017
4042
  value: createTypedMoney(draft.value),
@@ -6053,7 +6078,7 @@ var SubscriptionRepository = class extends AbstractResourceRepository {
6053
6078
  };
6054
6079
 
6055
6080
  // src/repositories/tax-category.ts
6056
- var import_uuid7 = require("uuid");
6081
+ var import_uuid8 = require("uuid");
6057
6082
  var TaxCategoryRepository = class extends AbstractResourceRepository {
6058
6083
  getTypeId() {
6059
6084
  return "tax-category";
@@ -6069,7 +6094,7 @@ var TaxCategoryRepository = class extends AbstractResourceRepository {
6069
6094
  }
6070
6095
  taxRateFromTaxRateDraft = (draft) => ({
6071
6096
  ...draft,
6072
- id: (0, import_uuid7.v4)(),
6097
+ id: (0, import_uuid8.v4)(),
6073
6098
  amount: draft.amount || 0
6074
6099
  });
6075
6100
  actions = {
@@ -6628,7 +6653,7 @@ var CustomerGroupService = class extends AbstractService {
6628
6653
  };
6629
6654
 
6630
6655
  // src/services/customer.ts
6631
- var import_uuid8 = require("uuid");
6656
+ var import_uuid9 = require("uuid");
6632
6657
  var CustomerService = class extends AbstractService {
6633
6658
  repository;
6634
6659
  constructor(parent, repository) {
@@ -6652,7 +6677,7 @@ var CustomerService = class extends AbstractService {
6652
6677
  ...rest,
6653
6678
  customerId: customer.results[0].id,
6654
6679
  expiresAt: new Date(Date.now() + ttlMinutes * 60).toISOString(),
6655
- value: (0, import_uuid8.v4)()
6680
+ value: (0, import_uuid9.v4)()
6656
6681
  });
6657
6682
  });
6658
6683
  }