@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/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
- startServer() {
6959
- if (_globalListeners.length > 0) {
6960
- if (this._mswServer !== void 0) {
6961
- throw new Error("Server already started");
6962
- } else {
6963
- console.warn("Server wasn't stopped properly, clearing");
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(server).post(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
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(server).get(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
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(server).post(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
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(server).delete(url.pathname + "?" + url.searchParams.toString()).body(body).headers(headers).end();
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
- this._mswServer.listen({
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(this._mswServer);
7045
+ _globalListeners.push(server);
7046
+ this._mswServer = server;
7021
7047
  }
7022
7048
  };
7023
7049
  export {