Skip to content

Commit

Permalink
feat(cart): store cart in state with retrieval actions (#2637)
Browse files Browse the repository at this point in the history
  • Loading branch information
griest024 committed Dec 1, 2023
1 parent 1ea70a1 commit a84491e
Show file tree
Hide file tree
Showing 51 changed files with 607 additions and 584 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,15 @@ import {
DaffCartReducersState,
daffCartReducers,
DAFF_CART_STORE_FEATURE_KEY,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import { DaffCartFactory } from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';
import { DaffLoadingIconModule } from '@daffodil/design';
import { DaffProduct } from '@daffodil/product';
import {
Expand Down Expand Up @@ -75,7 +82,14 @@ describe('AddToCartNotificationComponent', () => {
imports: [
StoreModule.forRoot({
demoAddToCartNotification: combineReducers(fromAddToCartNotification.reducers),
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
[DAFF_PRODUCT_STORE_FEATURE_KEY]: combineReducers(daffProductReducers),
}),
NoopAnimationsModule,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,19 @@ import {
DaffCartLoadSuccess,
daffCartReducers,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartItemFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import * as fromAddToCartNotification from './index';
import { CloseAddToCartNotification } from '../actions/add-to-cart-notification.actions';
Expand All @@ -39,7 +47,14 @@ describe('selectDemoAddToCartNotificationState', () => {
imports: [
StoreModule.forRoot({
demoAddToCartNotification: combineReducers(fromAddToCartNotification.reducers),
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
],
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,16 @@ import {
daffCartReducers,
DaffCartStateRootSlice,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import { DaffCartFactory } from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { CartResolver } from './cart-resolver.service';
import {
Expand All @@ -39,7 +47,14 @@ describe('CartResolver', () => {
TestBed.configureTestingModule({
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,19 @@ import {
DaffCartStateRootSlice,
daffCartReducers,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartItemFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { EmptyCartResolver } from './empty-cart-resolver.service';
import { ResolveCartSuccess } from '../actions/cart-resolver.actions';
Expand All @@ -43,7 +51,14 @@ describe('EmptyCartResolver', () => {
TestBed.configureTestingModule({
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
17 changes: 16 additions & 1 deletion apps/demo/src/app/cart/selectors/cart-selector.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,19 @@ import {
DaffCartStateRootSlice,
daffCartReducers,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartItemFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import {
isCartEmpty,
Expand All @@ -38,7 +46,14 @@ describe('selectCartState', () => {
TestBed.configureTestingModule({
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
],
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,23 @@ import {
DaffCartLoadSuccess,
DAFF_CART_STORE_FEATURE_KEY,
daffCartReducers,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartAddressFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { DaffBillingAddressGuard } from './billing-address.guard';

describe('Cart | State | Guards | DaffBillingAddressGuard', () => {
describe('@daffodil/cart/routing | DaffBillingAddressGuard', () => {

let service: DaffBillingAddressGuard;
let store: Store<any>;
Expand All @@ -36,7 +44,14 @@ describe('Cart | State | Guards | DaffBillingAddressGuard', () => {
],
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
19 changes: 17 additions & 2 deletions libs/cart/routing/src/guards/cart-items/cart-items.guard.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,23 @@ import {
DaffCartLoadSuccess,
DAFF_CART_STORE_FEATURE_KEY,
daffCartReducers,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartItemFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { DaffCartItemsGuard } from './cart-items.guard';

describe('Cart | State | Guards | DaffCartItemsGuard', () => {
describe('@daffodil/cart/routing | DaffCartItemsGuard', () => {
let service: DaffCartItemsGuard;
let store: Store<any>;
let router: Router;
Expand All @@ -45,7 +53,14 @@ describe('Cart | State | Guards | DaffCartItemsGuard', () => {
],
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,19 @@ import {
DaffCartLoadSuccess,
DAFF_CART_STORE_FEATURE_KEY,
daffCartReducers,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartItemFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { DaffCartInStockItemsGuard } from './in-stock-items.guard';

Expand All @@ -45,7 +53,14 @@ describe('@daffodil/cart/routing | DaffCartInStockItemsGuard', () => {
],
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { DaffCartStateTestingModule } from '@daffodil/cart/state/testing';

import { DaffOrderResultGuard } from './order-result.guard';

describe('Cart | State | Guards | DaffOrderResultGuard', () => {
describe('@daffodil/cart/routing | DaffOrderResultGuard', () => {
let guard: DaffOrderResultGuard;
let facade;
let router: Router;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,23 @@ import {
daffCartReducers,
DaffCartLoadSuccess,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartPaymentFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { DaffPaymentMethodGuard } from './payment-method.guard';

describe('Cart | State | Guards | DaffPaymentMethodGuard', () => {
describe('@daffodil/cart/routing | DaffPaymentMethodGuard', () => {

let service: DaffPaymentMethodGuard;
let store: Store<any>;
Expand All @@ -36,7 +44,14 @@ describe('Cart | State | Guards | DaffPaymentMethodGuard', () => {
],
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { DaffResolvedCartGuard } from './resolved-cart.guard';
@Component({ template: '' })
class TestComponent {}

describe('Cart | State | Guards | DaffResolvedCartGuard | Integration', () => {
describe('@daffodil/cart/routing | DaffResolvedCartGuard | Integration', () => {
let facade: MockDaffCartFacade;
let router: Router;
let location: Location;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { DaffResolvedCartGuard } from './resolved-cart.guard';
import { daffCartRoutingConfigurationDefault } from '../../config/config';
import { daffCartRoutingResolutionConfigurationDefault } from '../../config/resolution/config';

describe('Cart | State | Guards | DaffResolvedCartGuard', () => {
describe('@daffodil/cart/routing | DaffResolvedCartGuard', () => {
let service: DaffResolvedCartGuard;
let facade;
let router: Router;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,23 @@ import {
daffCartReducers,
DaffCartLoadSuccess,
DAFF_CART_STORE_FEATURE_KEY,
DaffCartReducersState,
daffCartItemEntitiesRetrievalActionsReducerFactory,
daffCartRetrievalActionsReducerFactory,
daffCartRetrivalActions,
} from '@daffodil/cart/state';
import {
DaffCartFactory,
DaffCartAddressFactory,
} from '@daffodil/cart/testing';
import {
daffComposeReducers,
daffIdentityReducer,
} from '@daffodil/core/state';

import { DaffShippingAddressGuard } from './shipping-address.guard';

describe('Cart | State | Guards | DaffShippingAddressGuard', () => {
describe('@daffodil/cart/routing | DaffShippingAddressGuard', () => {

let service: DaffShippingAddressGuard;
let store: Store<any>;
Expand All @@ -36,7 +44,14 @@ describe('Cart | State | Guards | DaffShippingAddressGuard', () => {
],
imports: [
StoreModule.forRoot({
[DAFF_CART_STORE_FEATURE_KEY]: combineReducers(daffCartReducers),
[DAFF_CART_STORE_FEATURE_KEY]: daffComposeReducers<DaffCartReducersState>([
combineReducers(daffCartReducers),
combineReducers({
cart: daffCartRetrievalActionsReducerFactory(daffCartRetrivalActions),
cartItems: daffCartItemEntitiesRetrievalActionsReducerFactory(daffCartRetrivalActions),
order: daffIdentityReducer,
}),
]),
}),
RouterTestingModule,
],
Expand Down
Loading

0 comments on commit a84491e

Please sign in to comment.