@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 +9 -4
- package/dist/index.cjs +51 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +51 -26
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/oauth/server.test.ts +55 -0
- package/src/oauth/server.ts +21 -8
- package/src/oauth/store.ts +19 -2
- package/src/repositories/cart.ts +9 -0
- package/src/services/cart.test.ts +24 -0
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
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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}
|
|
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
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
6680
|
+
value: (0, import_uuid9.v4)()
|
|
6656
6681
|
});
|
|
6657
6682
|
});
|
|
6658
6683
|
}
|