@labdigital/commercetools-mock 2.4.0 → 2.6.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 +21 -8
- package/dist/index.cjs +43 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +43 -17
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ctMock.ts +59 -20
- package/src/services/custom-object.test.ts +17 -1
- package/src/services/customer.test.ts +20 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
+
import { SetupServer } from 'msw/node';
|
|
2
3
|
import * as ctp from '@commercetools/platform-sdk';
|
|
3
4
|
import { Project, ResourceIdentifier, QueryParam, AssociateRoleDraft, AssociateRole, AssociateRoleSetNameAction, AssociateRoleSetPermissionsAction, AssociateRoleChangeBuyerAssignableAction, AssociateRoleSetCustomFieldAction, AssociateRoleAddPermissionAction, AssociateRoleRemovePermissionAction, AttributeGroupDraft, AttributeGroup, AttributeGroupSetAttributesAction, AttributeGroupChangeNameAction, AttributeGroupSetDescriptionAction, AttributeGroupSetKeyAction, BusinessUnitDraft, BusinessUnit, BusinessUnitAddAddressAction, BusinessUnitAddAssociateAction, BusinessUnitSetAssociatesAction, BusinessUnitSetContactEmailAction, BusinessUnitSetStoreModeAction, BusinessUnitChangeNameAction, BusinessUnitChangeAddressAction, BusinessUnitAddStoreAction, BusinessUnitChangeParentUnitAction, BusinessUnitChangeStatusAction, CartDraft, Cart, CartAddLineItemAction, CartAddItemShippingAddressAction, CartChangeLineItemQuantityAction, CartRemoveLineItemAction, CartSetBillingAddressAction, CartSetShippingMethodAction, CartSetCountryAction, CartSetCustomerEmailAction, CartSetCustomFieldAction, CartSetCustomTypeAction, CartSetLocaleAction, CartSetLineItemShippingDetailsAction, CartSetShippingAddressAction, CartRemoveDiscountCodeAction, LineItemDraft, LineItem, CartDiscountDraft, CartDiscount, CartDiscountUpdateAction, AssetDraft, Asset, CategoryDraft, Category, CategoryChangeAssetNameAction, CategoryChangeSlugAction, CategoryChangeNameAction, CategoryChangeParentAction, CategorySetKeyAction, CategorySetAssetDescriptionAction, CategorySetAssetSourcesAction, CategorySetDescriptionAction, CategorySetMetaDescriptionAction, CategorySetMetaKeywordsAction, CategorySetMetaTitleAction, CategorySetCustomTypeAction, CategorySetCustomFieldAction, CategoryRemoveAssetAction, CategoryAddAssetAction, ChannelDraft, Channel, ChannelUpdateAction, CustomObjectDraft, CustomObject, CustomerDraft, Customer, CustomerChangeEmailAction, CustomerSetAuthenticationModeAction, CustomerSetCustomFieldAction, CustomerGroupDraft, CustomerGroup, CustomerGroupSetKeyAction, CustomerGroupChangeNameAction, CustomerGroupSetCustomTypeAction, CustomerGroupSetCustomFieldAction, DiscountCodeDraft, DiscountCode, DiscountCodeUpdateAction, Extension, ExtensionDraft, ExtensionUpdateAction, InventoryEntryDraft, InventoryEntry, InventoryEntryChangeQuantityAction, InventoryEntrySetExpectedDeliveryAction, InventoryEntrySetCustomFieldAction, InventoryEntrySetCustomTypeAction, InventoryEntrySetRestockableInDaysAction, OrderFromCartDraft, Order, CartReference, OrderImportDraft, OrderAddPaymentAction, OrderChangeOrderStateAction, OrderChangePaymentStateAction, OrderTransitionStateAction, OrderSetBillingAddressAction, OrderSetCustomerEmailAction, OrderSetCustomFieldAction, OrderSetCustomTypeAction, OrderSetLocaleAction, OrderSetOrderNumberAction, OrderSetShippingAddressAction, OrderSetStoreAction, MyOrderFromCartDraft, OrderEditDraft, OrderEdit, OrderEditUpdateAction, PaymentDraft, Payment, TransactionDraft, Transaction, PaymentSetCustomFieldAction, PaymentSetCustomTypeAction, PaymentAddTransactionAction, PaymentChangeTransactionStateAction, PaymentTransitionStateAction, ProductDraft, Product, ProductUpdateAction, ProductDiscountDraft, ProductDiscount, ProductDiscountUpdateAction, ProductProjectionPagedSearchResponse, ProductProjection, FacetResults, TermFacetResult, FilteredFacetResult, RangeFacetResult, ProductSelectionDraft, ProductSelection, ProductSelectionUpdateAction, ProductTypeDraft, ProductType, AttributeDefinitionDraft, AttributeDefinition, ProductTypeUpdateAction, ProjectUpdateAction, QuoteDraft, Quote, QuoteUpdateAction, QuoteRequestDraft, QuoteRequest, QuoteRequestUpdateAction, ReviewDraft, Review, ReviewUpdateAction, ShippingMethodDraft, ShippingMethod, ShippingMethodUpdateAction, ShoppingListDraft, ShoppingList, StagedQuoteDraft, StagedQuote, StagedQuoteUpdateAction, StandalonePriceDraft, StandalonePrice, ChannelResourceIdentifier, ChannelReference, DiscountedPriceDraft, StandalonePriceChangeActiveAction, StandalonePriceChangeValueAction, StandalonePriceSetDiscountedPriceAction, StateDraft, State, StateUpdateAction, StoreDraft, Store, StoreUpdateAction, SubscriptionDraft, Subscription, TaxCategoryDraft, TaxCategory, TaxCategoryUpdateAction, TypeDraft, Type, TypeUpdateAction, ZoneDraft, Zone, ZoneUpdateAction, BaseResource, UpdateAction } from '@commercetools/platform-sdk';
|
|
4
5
|
|
|
@@ -643,6 +644,7 @@ declare class CommercetoolsMock {
|
|
|
643
644
|
project(projectKey?: string): ProjectAPI;
|
|
644
645
|
runServer(port?: number, options?: AppOptions): void;
|
|
645
646
|
private createApp;
|
|
647
|
+
registerHandlers(server: SetupServer): void;
|
|
646
648
|
private startServer;
|
|
647
649
|
}
|
|
648
650
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
+
import { SetupServer } from 'msw/node';
|
|
2
3
|
import * as ctp from '@commercetools/platform-sdk';
|
|
3
4
|
import { Project, ResourceIdentifier, QueryParam, AssociateRoleDraft, AssociateRole, AssociateRoleSetNameAction, AssociateRoleSetPermissionsAction, AssociateRoleChangeBuyerAssignableAction, AssociateRoleSetCustomFieldAction, AssociateRoleAddPermissionAction, AssociateRoleRemovePermissionAction, AttributeGroupDraft, AttributeGroup, AttributeGroupSetAttributesAction, AttributeGroupChangeNameAction, AttributeGroupSetDescriptionAction, AttributeGroupSetKeyAction, BusinessUnitDraft, BusinessUnit, BusinessUnitAddAddressAction, BusinessUnitAddAssociateAction, BusinessUnitSetAssociatesAction, BusinessUnitSetContactEmailAction, BusinessUnitSetStoreModeAction, BusinessUnitChangeNameAction, BusinessUnitChangeAddressAction, BusinessUnitAddStoreAction, BusinessUnitChangeParentUnitAction, BusinessUnitChangeStatusAction, CartDraft, Cart, CartAddLineItemAction, CartAddItemShippingAddressAction, CartChangeLineItemQuantityAction, CartRemoveLineItemAction, CartSetBillingAddressAction, CartSetShippingMethodAction, CartSetCountryAction, CartSetCustomerEmailAction, CartSetCustomFieldAction, CartSetCustomTypeAction, CartSetLocaleAction, CartSetLineItemShippingDetailsAction, CartSetShippingAddressAction, CartRemoveDiscountCodeAction, LineItemDraft, LineItem, CartDiscountDraft, CartDiscount, CartDiscountUpdateAction, AssetDraft, Asset, CategoryDraft, Category, CategoryChangeAssetNameAction, CategoryChangeSlugAction, CategoryChangeNameAction, CategoryChangeParentAction, CategorySetKeyAction, CategorySetAssetDescriptionAction, CategorySetAssetSourcesAction, CategorySetDescriptionAction, CategorySetMetaDescriptionAction, CategorySetMetaKeywordsAction, CategorySetMetaTitleAction, CategorySetCustomTypeAction, CategorySetCustomFieldAction, CategoryRemoveAssetAction, CategoryAddAssetAction, ChannelDraft, Channel, ChannelUpdateAction, CustomObjectDraft, CustomObject, CustomerDraft, Customer, CustomerChangeEmailAction, CustomerSetAuthenticationModeAction, CustomerSetCustomFieldAction, CustomerGroupDraft, CustomerGroup, CustomerGroupSetKeyAction, CustomerGroupChangeNameAction, CustomerGroupSetCustomTypeAction, CustomerGroupSetCustomFieldAction, DiscountCodeDraft, DiscountCode, DiscountCodeUpdateAction, Extension, ExtensionDraft, ExtensionUpdateAction, InventoryEntryDraft, InventoryEntry, InventoryEntryChangeQuantityAction, InventoryEntrySetExpectedDeliveryAction, InventoryEntrySetCustomFieldAction, InventoryEntrySetCustomTypeAction, InventoryEntrySetRestockableInDaysAction, OrderFromCartDraft, Order, CartReference, OrderImportDraft, OrderAddPaymentAction, OrderChangeOrderStateAction, OrderChangePaymentStateAction, OrderTransitionStateAction, OrderSetBillingAddressAction, OrderSetCustomerEmailAction, OrderSetCustomFieldAction, OrderSetCustomTypeAction, OrderSetLocaleAction, OrderSetOrderNumberAction, OrderSetShippingAddressAction, OrderSetStoreAction, MyOrderFromCartDraft, OrderEditDraft, OrderEdit, OrderEditUpdateAction, PaymentDraft, Payment, TransactionDraft, Transaction, PaymentSetCustomFieldAction, PaymentSetCustomTypeAction, PaymentAddTransactionAction, PaymentChangeTransactionStateAction, PaymentTransitionStateAction, ProductDraft, Product, ProductUpdateAction, ProductDiscountDraft, ProductDiscount, ProductDiscountUpdateAction, ProductProjectionPagedSearchResponse, ProductProjection, FacetResults, TermFacetResult, FilteredFacetResult, RangeFacetResult, ProductSelectionDraft, ProductSelection, ProductSelectionUpdateAction, ProductTypeDraft, ProductType, AttributeDefinitionDraft, AttributeDefinition, ProductTypeUpdateAction, ProjectUpdateAction, QuoteDraft, Quote, QuoteUpdateAction, QuoteRequestDraft, QuoteRequest, QuoteRequestUpdateAction, ReviewDraft, Review, ReviewUpdateAction, ShippingMethodDraft, ShippingMethod, ShippingMethodUpdateAction, ShoppingListDraft, ShoppingList, StagedQuoteDraft, StagedQuote, StagedQuoteUpdateAction, StandalonePriceDraft, StandalonePrice, ChannelResourceIdentifier, ChannelReference, DiscountedPriceDraft, StandalonePriceChangeActiveAction, StandalonePriceChangeValueAction, StandalonePriceSetDiscountedPriceAction, StateDraft, State, StateUpdateAction, StoreDraft, Store, StoreUpdateAction, SubscriptionDraft, Subscription, TaxCategoryDraft, TaxCategory, TaxCategoryUpdateAction, TypeDraft, Type, TypeUpdateAction, ZoneDraft, Zone, ZoneUpdateAction, BaseResource, UpdateAction } from '@commercetools/platform-sdk';
|
|
4
5
|
|
|
@@ -643,6 +644,7 @@ declare class CommercetoolsMock {
|
|
|
643
644
|
project(projectKey?: string): ProjectAPI;
|
|
644
645
|
runServer(port?: number, options?: AppOptions): void;
|
|
645
646
|
private createApp;
|
|
647
|
+
registerHandlers(server: SetupServer): void;
|
|
646
648
|
private startServer;
|
|
647
649
|
}
|
|
648
650
|
|
package/dist/index.js
CHANGED
|
@@ -6955,32 +6955,45 @@ var CommercetoolsMock = class {
|
|
|
6955
6955
|
});
|
|
6956
6956
|
return app;
|
|
6957
6957
|
}
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
_globalListeners.forEach((listener) => listener.close());
|
|
6965
|
-
}
|
|
6966
|
-
}
|
|
6967
|
-
const server = this.app;
|
|
6968
|
-
this._mswServer = setupServer(
|
|
6958
|
+
// registerHandlers is an alternative way to work with commercetools-mock, it
|
|
6959
|
+
// allows you to manage msw server yourself and register the handlers needed
|
|
6960
|
+
// for commercetools-mock to work.
|
|
6961
|
+
registerHandlers(server) {
|
|
6962
|
+
const app = this.app;
|
|
6963
|
+
server.use(
|
|
6969
6964
|
http.post(`${this.options.authHost}/oauth/*`, async ({ request }) => {
|
|
6970
6965
|
const body = await request.text();
|
|
6971
6966
|
const url = new URL(request.url);
|
|
6972
6967
|
const headers = copyHeaders(request.headers);
|
|
6973
|
-
const res = await inject(
|
|
6968
|
+
const res = await inject(app).post(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
|
|
6974
6969
|
return new HttpResponse(res.body, {
|
|
6975
6970
|
status: res.statusCode,
|
|
6976
6971
|
headers: mapHeaderType(res.headers)
|
|
6977
6972
|
});
|
|
6978
6973
|
}),
|
|
6974
|
+
http.head(`${this.options.apiHost}/*`, async ({ request }) => {
|
|
6975
|
+
const body = await request.text();
|
|
6976
|
+
const url = new URL(request.url);
|
|
6977
|
+
const headers = copyHeaders(request.headers);
|
|
6978
|
+
const res = await inject(app).get(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
|
|
6979
|
+
if (res.statusCode === 200) {
|
|
6980
|
+
const parsedBody = JSON.parse(res.body);
|
|
6981
|
+
const resultCount = "count" in parsedBody ? parsedBody.count : Object.keys(parsedBody).length;
|
|
6982
|
+
return new HttpResponse(null, {
|
|
6983
|
+
status: resultCount > 0 ? 200 : 404,
|
|
6984
|
+
headers: mapHeaderType(res.headers)
|
|
6985
|
+
});
|
|
6986
|
+
}
|
|
6987
|
+
return new HttpResponse(null, {
|
|
6988
|
+
status: res.statusCode,
|
|
6989
|
+
headers: mapHeaderType(res.headers)
|
|
6990
|
+
});
|
|
6991
|
+
}),
|
|
6979
6992
|
http.get(`${this.options.apiHost}/*`, async ({ request }) => {
|
|
6980
6993
|
const body = await request.text();
|
|
6981
6994
|
const url = new URL(request.url);
|
|
6982
6995
|
const headers = copyHeaders(request.headers);
|
|
6983
|
-
const res = await inject(
|
|
6996
|
+
const res = await inject(app).get(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
|
|
6984
6997
|
return new HttpResponse(res.body, {
|
|
6985
6998
|
status: res.statusCode,
|
|
6986
6999
|
headers: mapHeaderType(res.headers)
|
|
@@ -6990,7 +7003,7 @@ var CommercetoolsMock = class {
|
|
|
6990
7003
|
const body = await request.text();
|
|
6991
7004
|
const url = new URL(request.url);
|
|
6992
7005
|
const headers = copyHeaders(request.headers);
|
|
6993
|
-
const res = await inject(
|
|
7006
|
+
const res = await inject(app).post(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
|
|
6994
7007
|
return new HttpResponse(res.body, {
|
|
6995
7008
|
status: res.statusCode,
|
|
6996
7009
|
headers: mapHeaderType(res.headers)
|
|
@@ -7000,14 +7013,26 @@ var CommercetoolsMock = class {
|
|
|
7000
7013
|
const body = await request.text();
|
|
7001
7014
|
const url = new URL(request.url);
|
|
7002
7015
|
const headers = copyHeaders(request.headers);
|
|
7003
|
-
const res = await inject(
|
|
7016
|
+
const res = await inject(app).delete(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
|
|
7004
7017
|
return new HttpResponse(res.body, {
|
|
7005
7018
|
status: res.statusCode,
|
|
7006
7019
|
headers: mapHeaderType(res.headers)
|
|
7007
7020
|
});
|
|
7008
7021
|
})
|
|
7009
7022
|
);
|
|
7010
|
-
|
|
7023
|
+
}
|
|
7024
|
+
startServer() {
|
|
7025
|
+
if (_globalListeners.length > 0) {
|
|
7026
|
+
if (this._mswServer !== void 0) {
|
|
7027
|
+
throw new Error("Server already started");
|
|
7028
|
+
} else {
|
|
7029
|
+
console.warn("Server wasn't stopped properly, clearing");
|
|
7030
|
+
_globalListeners.forEach((listener) => listener.close());
|
|
7031
|
+
}
|
|
7032
|
+
}
|
|
7033
|
+
const server = setupServer();
|
|
7034
|
+
this.registerHandlers(server);
|
|
7035
|
+
server.listen({
|
|
7011
7036
|
// We need to allow requests done by supertest
|
|
7012
7037
|
onUnhandledRequest: (request, print) => {
|
|
7013
7038
|
const url = new URL(request.url);
|
|
@@ -7017,7 +7042,8 @@ var CommercetoolsMock = class {
|
|
|
7017
7042
|
print.error();
|
|
7018
7043
|
}
|
|
7019
7044
|
});
|
|
7020
|
-
_globalListeners.push(
|
|
7045
|
+
_globalListeners.push(server);
|
|
7046
|
+
this._mswServer = server;
|
|
7021
7047
|
}
|
|
7022
7048
|
};
|
|
7023
7049
|
export {
|