@labdigital/commercetools-mock 0.9.0 → 0.10.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 +8 -0
- package/dist/index.d.ts +18 -17
- package/dist/index.global.js +1751 -1664
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +1773 -1684
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1966 -1877
- package/dist/index.mjs.map +1 -1
- package/package.json +28 -20
- package/src/constants.ts +4 -2
- package/src/ctMock.ts +19 -84
- package/src/helpers.ts +9 -10
- package/src/index.test.ts +1 -1
- package/src/lib/haversine.ts +2 -2
- package/src/lib/masking.ts +3 -1
- package/src/lib/predicateParser.test.ts +16 -0
- package/src/lib/predicateParser.ts +94 -86
- package/src/lib/projectionSearchFilter.test.ts +28 -36
- package/src/lib/projectionSearchFilter.ts +86 -102
- package/src/oauth/store.ts +3 -3
- package/src/priceSelector.test.ts +18 -35
- package/src/priceSelector.ts +6 -9
- package/src/product-projection-search.ts +51 -57
- package/src/repositories/abstract.ts +85 -41
- package/src/repositories/cart-discount.ts +1 -1
- package/src/repositories/cart.ts +36 -31
- package/src/repositories/category.ts +17 -19
- package/src/repositories/channel.ts +1 -1
- package/src/repositories/custom-object.ts +35 -22
- package/src/repositories/customer-group.ts +1 -1
- package/src/repositories/customer.ts +39 -1
- package/src/repositories/discount-code.ts +1 -1
- package/src/repositories/errors.ts +9 -11
- package/src/repositories/extension.ts +13 -11
- package/src/repositories/helpers.ts +8 -13
- package/src/repositories/index.ts +59 -0
- package/src/repositories/inventory-entry.ts +1 -1
- package/src/repositories/order.ts +6 -6
- package/src/repositories/payment.ts +3 -3
- package/src/repositories/product-discount.ts +1 -1
- package/src/repositories/product-projection.ts +1 -0
- package/src/repositories/product-type.ts +29 -34
- package/src/repositories/product.ts +124 -80
- package/src/repositories/project.ts +10 -27
- package/src/repositories/shipping-method.ts +15 -17
- package/src/repositories/shopping-list.ts +2 -2
- package/src/repositories/state.ts +9 -9
- package/src/repositories/store.ts +2 -2
- package/src/repositories/subscription.ts +1 -1
- package/src/repositories/tax-category.ts +4 -4
- package/src/repositories/type.ts +12 -14
- package/src/repositories/zone.ts +5 -6
- package/src/server.ts +5 -0
- package/src/services/abstract.ts +44 -11
- package/src/services/cart-discount.ts +2 -3
- package/src/services/cart.test.ts +8 -10
- package/src/services/cart.ts +8 -11
- package/src/services/category.test.ts +1 -2
- package/src/services/category.ts +2 -3
- package/src/services/channel.ts +2 -3
- package/src/services/custom-object.test.ts +5 -5
- package/src/services/custom-object.ts +2 -3
- package/src/services/customer-group.ts +2 -3
- package/src/services/customer.test.ts +136 -0
- package/src/services/customer.ts +2 -3
- package/src/services/discount-code.ts +2 -3
- package/src/services/extension.ts +2 -3
- package/src/services/index.ts +74 -0
- package/src/services/inventory-entry.test.ts +8 -12
- package/src/services/inventory-entry.ts +2 -3
- package/src/services/my-cart.ts +3 -4
- package/src/services/my-customer.ts +2 -3
- package/src/services/my-order.ts +3 -4
- package/src/services/my-payment.ts +2 -3
- package/src/services/order.test.ts +4 -6
- package/src/services/order.ts +2 -3
- package/src/services/payment.ts +2 -3
- package/src/services/product-discount.ts +2 -3
- package/src/services/product-projection.test.ts +76 -8
- package/src/services/product-projection.ts +2 -3
- package/src/services/product-type.ts +2 -3
- package/src/services/product.test.ts +199 -89
- package/src/services/product.ts +2 -3
- package/src/services/project.ts +3 -3
- package/src/services/shipping-method.ts +2 -3
- package/src/services/shopping-list.ts +2 -3
- package/src/services/state.ts +2 -3
- package/src/services/store.test.ts +11 -2
- package/src/services/store.ts +2 -3
- package/src/services/subscription.ts +2 -3
- package/src/services/tax-category.ts +2 -3
- package/src/services/type.ts +2 -3
- package/src/services/zone.ts +2 -3
- package/src/storage.ts +23 -30
- package/src/types.ts +46 -6
package/README.md
CHANGED
|
@@ -69,3 +69,11 @@ Implement the following:
|
|
|
69
69
|
- Add new service to src/ctMock.ts ctMock.\_services
|
|
70
70
|
- Add new service to src/storage.ts InMemoryStorage
|
|
71
71
|
- Adjust src/types.ts RepositoryMap and possibly serviceTypes
|
|
72
|
+
|
|
73
|
+
## Releasing
|
|
74
|
+
|
|
75
|
+
- Adjust the CHANGELOG.md
|
|
76
|
+
- Adjust package.json with the new version
|
|
77
|
+
- `git tag v1.2.3` and `git push --tags`
|
|
78
|
+
- In Github create a release for the new tag (which will trigger a publish to NPM)
|
|
79
|
+
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import express, { Router, Request, Response } from 'express';
|
|
2
2
|
import * as ctp from '@commercetools/platform-sdk';
|
|
3
|
-
import { Project, BaseResource, PagedQueryResponse, ResourceIdentifier, QueryParam, ProductProjectionPagedSearchResponse, Product, ProductProjection, FacetResults, TermFacetResult, FilteredFacetResult, RangeFacetResult, ProductDraft, ReferenceTypeId, ShoppingListDraft, ShoppingList, CartDraft, Cart, CartAddLineItemAction, CartRemoveLineItemAction, CartSetBillingAddressAction, CartSetShippingMethodAction, CartSetCountryAction, CartSetCustomerEmailAction, CartSetCustomFieldAction, CartSetCustomTypeAction, CartSetLocaleAction, CartSetShippingAddressAction, LineItemDraft, LineItem, CustomerDraft, Customer, CustomerChangeEmailAction, CustomObjectDraft, CustomObject, InventoryEntryDraft, InventoryEntry, InventoryEntryChangeQuantityAction, InventoryEntrySetExpectedDeliveryAction, InventoryEntrySetCustomFieldAction, InventoryEntrySetCustomTypeAction, InventoryEntrySetRestockableInDaysAction, OrderFromCartDraft, Order, CartReference, OrderImportDraft, OrderAddPaymentAction, OrderChangeOrderStateAction, OrderChangePaymentStateAction, OrderTransitionStateAction, OrderSetBillingAddressAction, OrderSetCustomerEmailAction, OrderSetCustomFieldAction, OrderSetCustomTypeAction, OrderSetLocaleAction, OrderSetOrderNumberAction, OrderSetShippingAddressAction, OrderSetStoreAction, PaymentDraft, Payment, TransactionDraft, PaymentSetCustomFieldAction, PaymentSetCustomTypeAction, PaymentAddTransactionAction, PaymentChangeTransactionStateAction, PaymentTransitionStateAction,
|
|
3
|
+
import { Project, BaseResource, PagedQueryResponse, ResourceIdentifier, QueryParam, ProductProjectionPagedSearchResponse, Product, ProductProjection, FacetResults, TermFacetResult, FilteredFacetResult, RangeFacetResult, ProductDraft, ReferenceTypeId, ShoppingListDraft, ShoppingList, CartDraft, Cart, CartAddLineItemAction, CartRemoveLineItemAction, CartSetBillingAddressAction, CartSetShippingMethodAction, CartSetCountryAction, CartSetCustomerEmailAction, CartSetCustomFieldAction, CartSetCustomTypeAction, CartSetLocaleAction, CartSetShippingAddressAction, LineItemDraft, LineItem, CustomerDraft, Customer, CustomerChangeEmailAction, CustomerSetAuthenticationModeAction, CustomObjectDraft, CustomObject, InventoryEntryDraft, InventoryEntry, InventoryEntryChangeQuantityAction, InventoryEntrySetExpectedDeliveryAction, InventoryEntrySetCustomFieldAction, InventoryEntrySetCustomTypeAction, InventoryEntrySetRestockableInDaysAction, OrderFromCartDraft, Order, CartReference, OrderImportDraft, OrderAddPaymentAction, OrderChangeOrderStateAction, OrderChangePaymentStateAction, OrderTransitionStateAction, OrderSetBillingAddressAction, OrderSetCustomerEmailAction, OrderSetCustomFieldAction, OrderSetCustomTypeAction, OrderSetLocaleAction, OrderSetOrderNumberAction, OrderSetShippingAddressAction, OrderSetStoreAction, PaymentDraft, Payment, TransactionDraft, PaymentSetCustomFieldAction, PaymentSetCustomTypeAction, PaymentAddTransactionAction, PaymentChangeTransactionStateAction, PaymentTransitionStateAction, ProductUpdateAction, ProductTypeDraft, ProductType, AttributeDefinitionDraft, AttributeDefinition, ProductTypeUpdateAction, ShippingMethodDraft, ShippingMethod, ShippingMethodUpdateAction, StateDraft, State, StateUpdateAction, TaxCategoryDraft, TaxCategory, TaxCategoryUpdateAction, ProductDiscountDraft, ProductDiscount, ProductDiscountUpdateAction, UpdateAction } from '@commercetools/platform-sdk';
|
|
4
4
|
import { ParsedQs } from 'qs';
|
|
5
5
|
|
|
6
6
|
declare type GetParams$1 = {
|
|
@@ -17,7 +17,6 @@ declare type QueryParams$1 = {
|
|
|
17
17
|
};
|
|
18
18
|
declare abstract class AbstractStorage {
|
|
19
19
|
abstract clear(): void;
|
|
20
|
-
abstract assertStorage(typeId: RepositoryTypes): void;
|
|
21
20
|
abstract all<RT extends RepositoryTypes>(projectKey: string, typeId: RT): Array<ResourceMap[RT]>;
|
|
22
21
|
abstract add<RT extends RepositoryTypes>(projectKey: string, typeId: RT, obj: ResourceMap[RT]): void;
|
|
23
22
|
abstract get<RT extends RepositoryTypes>(projectKey: string, typeId: RT, id: string, params?: GetParams$1): ResourceMap[RT] | null;
|
|
@@ -72,16 +71,16 @@ declare class ProductProjectionSearch {
|
|
|
72
71
|
protected _storage: AbstractStorage;
|
|
73
72
|
constructor(storage: AbstractStorage);
|
|
74
73
|
search(projectKey: string, params: ProductProjectionSearchParams): ProductProjectionPagedSearchResponse;
|
|
75
|
-
transform(product: Product): ProductProjection;
|
|
76
|
-
getFacets(params: ProductProjectionSearchParams, products:
|
|
74
|
+
transform(product: Product, staged: boolean): ProductProjection | null;
|
|
75
|
+
getFacets(params: ProductProjectionSearchParams, products: ProductProjection[]): FacetResults;
|
|
77
76
|
/**
|
|
78
77
|
* TODO: This implemention needs the following additional features:
|
|
79
78
|
* - counting products
|
|
80
79
|
* - correct dataType
|
|
81
80
|
*/
|
|
82
|
-
termFacet(facet: string, products:
|
|
83
|
-
filterFacet(source: string, filters: FilterExpression[] | undefined, products:
|
|
84
|
-
rangeFacet(source: string, ranges: RangeExpression[] | undefined, products:
|
|
81
|
+
termFacet(facet: string, products: ProductProjection[]): TermFacetResult;
|
|
82
|
+
filterFacet(source: string, filters: FilterExpression[] | undefined, products: ProductProjection[]): FilteredFacetResult;
|
|
83
|
+
rangeFacet(source: string, ranges: RangeExpression[] | undefined, products: ProductProjection[]): RangeFacetResult;
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
declare class ProductProjectionRepository extends AbstractResourceRepository {
|
|
@@ -109,8 +108,8 @@ declare abstract class AbstractService {
|
|
|
109
108
|
get(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
110
109
|
getWithId(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
111
110
|
getWithKey(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
deleteWithId(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
112
|
+
deleteWithKey(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
114
113
|
post(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
115
114
|
postWithId(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
116
115
|
postWithKey(request: Request, response: Response): Response<any, Record<string, any>>;
|
|
@@ -143,6 +142,7 @@ declare class CustomerRepository extends AbstractResourceRepository {
|
|
|
143
142
|
getMe(context: RepositoryContext): Customer | undefined;
|
|
144
143
|
actions: {
|
|
145
144
|
changeEmail: (_context: RepositoryContext, resource: Writable<Customer>, { email }: CustomerChangeEmailAction) => void;
|
|
145
|
+
setAuthenticationMode: (_context: RepositoryContext, resource: Writable<Customer>, { authMode, password }: CustomerSetAuthenticationModeAction) => void;
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -212,10 +212,7 @@ declare class PaymentRepository extends AbstractResourceRepository {
|
|
|
212
212
|
declare class ProductRepository extends AbstractResourceRepository {
|
|
213
213
|
getTypeId(): ReferenceTypeId;
|
|
214
214
|
create(context: RepositoryContext, draft: ProductDraft): Product;
|
|
215
|
-
actions:
|
|
216
|
-
publish: (context: RepositoryContext, resource: Writable<Product>, { scope }: ProductPublishAction) => void;
|
|
217
|
-
setAttribute: (context: RepositoryContext, resource: Writable<Product>, { variantId, sku, name, value, staged }: ProductSetAttributeAction) => void;
|
|
218
|
-
};
|
|
215
|
+
actions: Partial<Record<ProductUpdateAction['action'], (context: RepositoryContext, resource: Writable<Product>, action: any) => void>>;
|
|
219
216
|
}
|
|
220
217
|
|
|
221
218
|
declare class ProductTypeRepository extends AbstractResourceRepository {
|
|
@@ -264,6 +261,7 @@ declare type ServiceTypes = RepositoryTypes | 'my-cart' | 'my-order' | 'my-payme
|
|
|
264
261
|
declare type Services = Partial<{
|
|
265
262
|
[index in ServiceTypes]: AbstractService;
|
|
266
263
|
}>;
|
|
264
|
+
declare type Resource = ctp.BaseResource | ctp.Cart | ctp.CartDiscount | ctp.Category | ctp.Channel | ctp.Customer | ctp.CustomerGroup | ctp.DiscountCode | ctp.Extension | ctp.InventoryEntry | ctp.CustomObject | ctp.Order | ctp.OrderEdit | ctp.Payment | ctp.Product | ctp.Project | ctp.ProductDiscount | ctp.ProductProjection | ctp.ProductSelection | ctp.StandalonePrice | ctp.ProductType | ctp.Review | ctp.ShippingMethod | ctp.ShoppingList | ctp.StandalonePrice | ctp.State | ctp.Store | ctp.Subscription | ctp.TaxCategory | ctp.Type | ctp.Zone;
|
|
267
265
|
declare type ResourceMap = {
|
|
268
266
|
cart: ctp.Cart;
|
|
269
267
|
'cart-discount': ctp.CartDiscount;
|
|
@@ -345,9 +343,10 @@ declare abstract class AbstractRepository {
|
|
|
345
343
|
protected _storage: AbstractStorage;
|
|
346
344
|
protected actions: Partial<Record<any, (context: RepositoryContext, resource: any, action: any) => void>>;
|
|
347
345
|
constructor(storage: AbstractStorage);
|
|
348
|
-
abstract
|
|
349
|
-
|
|
350
|
-
|
|
346
|
+
abstract saveNew({ projectKey }: RepositoryContext, resource: Resource): void;
|
|
347
|
+
abstract saveUpdate({ projectKey }: RepositoryContext, version: number, resource: Resource): void;
|
|
348
|
+
processUpdateActions<T extends Resource>(context: RepositoryContext, resource: T, version: number, actions: UpdateAction[]): T;
|
|
349
|
+
postProcessResource<T extends Resource>(resource: T): T;
|
|
351
350
|
}
|
|
352
351
|
declare abstract class AbstractResourceRepository extends AbstractRepository {
|
|
353
352
|
abstract create(context: RepositoryContext, draft: any): BaseResource;
|
|
@@ -357,7 +356,8 @@ declare abstract class AbstractResourceRepository extends AbstractRepository {
|
|
|
357
356
|
get(context: RepositoryContext, id: string, params?: GetParams): BaseResource | null;
|
|
358
357
|
getByKey(context: RepositoryContext, key: string, params?: GetParams): BaseResource | null;
|
|
359
358
|
delete(context: RepositoryContext, id: string, params?: GetParams): BaseResource | null;
|
|
360
|
-
|
|
359
|
+
saveNew(context: RepositoryContext, resource: Writable<BaseResource>): void;
|
|
360
|
+
saveUpdate(context: RepositoryContext, version: number, resource: Writable<BaseResource>): Writable<BaseResource>;
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
declare class ProjectAPI {
|
|
@@ -388,6 +388,7 @@ declare class CommercetoolsMock {
|
|
|
388
388
|
private _oauth2;
|
|
389
389
|
private _nockScopes;
|
|
390
390
|
private _services;
|
|
391
|
+
private _repositories;
|
|
391
392
|
private _projectService?;
|
|
392
393
|
constructor(options?: Partial<CommercetoolsMockOptions>);
|
|
393
394
|
start(): void;
|