From b4cc19b0dab07b47f7f0b61cbe48e39fa650b9a7 Mon Sep 17 00:00:00 2001 From: griest024 Date: Mon, 13 May 2024 16:28:25 -0400 Subject: [PATCH] feat(cart,cart-store-credit)!: remove `DaffCartShippingInformation` (#2788) BREAKING CHANGE: `DaffCartShippingInformation` has been removed. Use `DaffCartShippingRate` instead --- .../cart-with-store-credit.factory.ts | 4 +- .../cart-root.service.integration.spec.ts | 15 +--- .../cart-shipping-information.service.spec.ts | 16 ++-- .../cart-shipping-information.service.ts | 4 +- .../cart-shipping-information.service.spec.ts | 8 +- .../driver/magento/src/cart-driver.module.ts | 2 - .../cart-shipping-information.service.spec.ts | 9 +-- .../cart-shipping-information.service.spec.ts | 77 ------------------- .../cart-shipping-information.service.ts | 28 ------- .../transforms/outputs/cart.service.spec.ts | 39 ++++------ .../src/transforms/outputs/cart.service.ts | 4 +- .../magento/src/transforms/public_api.ts | 1 - .../cart-shipping-information.service.spec.ts | 8 +- libs/cart/src/models/cart-shipping-info.ts | 8 -- libs/cart/src/models/cart.ts | 3 +- libs/cart/src/models/public_api.ts | 1 - .../cart-shipping-information.effects.spec.ts | 11 +-- .../cart-shipping-information.effects.ts | 24 +++--- .../src/facades/cart/cart.facade.spec.ts | 15 +--- .../cart-shipping-information.reducer.spec.ts | 9 +-- .../cart-shipping-information.reducer.ts | 7 +- .../src/selectors/cart/cart.selector.spec.ts | 1 - .../cart-shipping-information.factory.spec.ts | 47 ----------- .../cart-shipping-information.factory.ts | 20 ----- .../cart-shipping-rate.factory.spec.ts | 26 +++---- .../testing/src/factories/cart.factory.ts | 6 +- libs/cart/testing/src/factories/public_api.ts | 1 - 27 files changed, 74 insertions(+), 320 deletions(-) delete mode 100644 libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.spec.ts delete mode 100644 libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.ts delete mode 100644 libs/cart/src/models/cart-shipping-info.ts delete mode 100644 libs/cart/testing/src/factories/cart-shipping-information.factory.spec.ts delete mode 100644 libs/cart/testing/src/factories/cart-shipping-information.factory.ts diff --git a/libs/cart-store-credit/testing/src/factories/cart-with-store-credit.factory.ts b/libs/cart-store-credit/testing/src/factories/cart-with-store-credit.factory.ts index 9e5c1ffc40..f0a30d60e1 100644 --- a/libs/cart-store-credit/testing/src/factories/cart-with-store-credit.factory.ts +++ b/libs/cart-store-credit/testing/src/factories/cart-with-store-credit.factory.ts @@ -3,7 +3,7 @@ import { faker } from '@faker-js/faker/locale/en_US'; import { MockCart } from '@daffodil/cart/testing'; import { DaffCartTotalFactory } from '@daffodil/cart/testing'; -import { DaffCartShippingInformationFactory } from '@daffodil/cart/testing'; +import { DaffCartShippingRateFactory } from '@daffodil/cart/testing'; import { DaffCartWithStoreCredit } from '@daffodil/cart-store-credit'; import { DaffModelFactory } from '@daffodil/core/testing'; @@ -23,7 +23,7 @@ export class MockDaffCartWithStoreCredit extends MockCart implements DaffCartWit export class DaffCartWithStoreCreditFactory extends DaffModelFactory{ constructor( totalFactory: DaffCartTotalFactory, - shippingInformationFactory: DaffCartShippingInformationFactory, + shippingInformationFactory: DaffCartShippingRateFactory, ) { super(MockDaffCartWithStoreCredit, totalFactory, shippingInformationFactory); } diff --git a/libs/cart/driver/in-memory/src/backend/cart-root.service.integration.spec.ts b/libs/cart/driver/in-memory/src/backend/cart-root.service.integration.spec.ts index 499b219503..f2009c8129 100644 --- a/libs/cart/driver/in-memory/src/backend/cart-root.service.integration.spec.ts +++ b/libs/cart/driver/in-memory/src/backend/cart-root.service.integration.spec.ts @@ -12,7 +12,6 @@ import { DaffCartAddress, DaffCartPaymentMethod, DaffCartShippingRate, - DaffCartShippingInformation, } from '@daffodil/cart'; import { DaffCartFactory, @@ -43,7 +42,7 @@ describe('DaffInMemoryBackendCartRootService | Integration', () => { let mockBillingAddress: DaffCartAddress; let mockPayment: DaffCartPaymentMethod; let mockShippingMethod: DaffCartShippingRate; - let mockShippingInformation: DaffCartShippingInformation; + let mockShippingInformation: DaffCartShippingRate; let cartId: DaffCart['id']; let itemId: DaffCartItem['id']; @@ -72,10 +71,7 @@ describe('DaffInMemoryBackendCartRootService | Integration', () => { mockBillingAddress = cartAddressFactory.create(); mockPayment = cartPaymentFactory.create(); mockShippingMethod = cartShippingMethodFactory.create(); - mockShippingInformation = { - ...cartShippingMethodFactory.create(), - address_id: null, - }; + mockShippingInformation = cartShippingMethodFactory.create(); cartId = mockCart.id; itemId = mockCartItem.id; mockCart.items.push(mockCartItem); @@ -521,13 +517,10 @@ describe('DaffInMemoryBackendCartRootService | Integration', () => { describe('processing an update shipping information request', () => { let result; - let newShippingInformation: DaffCartShippingInformation; + let newShippingInformation: DaffCartShippingRate; beforeEach(done => { - newShippingInformation = { - ...cartShippingMethodFactory.create(), - address_id: null, - }; + newShippingInformation = cartShippingMethodFactory.create(); httpClient.put(`/api/cart-shipping-information/${cartId}/`, newShippingInformation).subscribe(res => { result = res; diff --git a/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.spec.ts b/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.spec.ts index b58bb61adc..38216ab114 100644 --- a/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.spec.ts +++ b/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.spec.ts @@ -2,7 +2,7 @@ import { TestBed } from '@angular/core/testing'; import { DaffCart, - DaffCartShippingInformation, + DaffCartShippingRate, } from '@daffodil/cart'; import { DAFF_CART_IN_MEMORY_EXTRA_ATTRIBUTES_HOOK } from '@daffodil/cart/driver/in-memory'; import { @@ -19,7 +19,7 @@ describe('DaffInMemoryBackendCartShippingInformationService', () => { let cartShippingInformationFactory: DaffCartShippingRateFactory; let mockCart: DaffCart; - let mockCartShippingInformation: DaffCartShippingInformation; + let mockCartShippingInformation: DaffCartShippingRate; let cartId; let reqInfoStub; let baseUrl; @@ -46,10 +46,7 @@ describe('DaffInMemoryBackendCartShippingInformationService', () => { cartShippingInformationFactory = TestBed.inject(DaffCartShippingRateFactory); mockCart = cartFactory.create(); - mockCartShippingInformation = { - ...cartShippingInformationFactory.create(), - address_id: null, - }; + mockCartShippingInformation = cartShippingInformationFactory.create(); extraAttributes = { extraField: 'extraField', }; @@ -93,13 +90,10 @@ describe('DaffInMemoryBackendCartShippingInformationService', () => { describe('processing an update shipping information request', () => { let result; - let newShippingInformation: DaffCartShippingInformation; + let newShippingInformation: DaffCartShippingRate; beforeEach(() => { - newShippingInformation = { - ...cartShippingInformationFactory.create(), - address_id: null, - }; + newShippingInformation = cartShippingInformationFactory.create(); reqInfoStub.url = cartUrl; reqInfoStub.req.body = newShippingInformation; result = service.put(reqInfoStub); diff --git a/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.ts b/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.ts index fe187042b9..375a51b40e 100644 --- a/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.ts +++ b/libs/cart/driver/in-memory/src/backend/cart-shipping-information/cart-shipping-information.service.ts @@ -9,7 +9,7 @@ import { import { DaffCart, - DaffCartShippingInformation, + DaffCartShippingRate, } from '@daffodil/cart'; import { DaffInMemoryDataServiceInterface } from '@daffodil/core/testing'; import { DaffInMemoryBackendProductService } from '@daffodil/product/driver/in-memory'; @@ -57,7 +57,7 @@ export class DaffInMemoryBackendCartShippingInformationService implements DaffIn return reqInfo.utils.findById(reqInfo.collection, reqInfo.id); } - private getShippingInformation(reqInfo): DaffCartShippingInformation { + private getShippingInformation(reqInfo): DaffCartShippingRate { return this.getCart(reqInfo).shipping_information; } diff --git a/libs/cart/driver/in-memory/src/drivers/cart-shipping-information/cart-shipping-information.service.spec.ts b/libs/cart/driver/in-memory/src/drivers/cart-shipping-information/cart-shipping-information.service.spec.ts index 34ebac9d39..6cabd7149c 100644 --- a/libs/cart/driver/in-memory/src/drivers/cart-shipping-information/cart-shipping-information.service.spec.ts +++ b/libs/cart/driver/in-memory/src/drivers/cart-shipping-information/cart-shipping-information.service.spec.ts @@ -7,7 +7,6 @@ import { TestBed } from '@angular/core/testing'; import { DaffCart, DaffCartShippingRate, - DaffCartShippingInformation, } from '@daffodil/cart'; import { DaffCartFactory, @@ -23,7 +22,7 @@ describe('Driver | In Memory | Cart | CartShippingInformationService', () => { let cartShippingRateFactory: DaffCartShippingRateFactory; let mockCart: DaffCart; - let mockCartShippingInfo: DaffCartShippingInformation; + let mockCartShippingInfo: DaffCartShippingRate; let cartId; beforeEach(() => { @@ -43,10 +42,7 @@ describe('Driver | In Memory | Cart | CartShippingInformationService', () => { cartShippingRateFactory = TestBed.inject(DaffCartShippingRateFactory); mockCart = cartFactory.create(); - mockCartShippingInfo = { - ...cartShippingRateFactory.create(), - address_id: null, - }; + mockCartShippingInfo = cartShippingRateFactory.create(); mockCart.shipping_information = mockCartShippingInfo; cartId = mockCart.id; }); diff --git a/libs/cart/driver/magento/src/cart-driver.module.ts b/libs/cart/driver/magento/src/cart-driver.module.ts index dd1c4411ac..2f1ad68214 100644 --- a/libs/cart/driver/magento/src/cart-driver.module.ts +++ b/libs/cart/driver/magento/src/cart-driver.module.ts @@ -40,7 +40,6 @@ import { DaffMagentoBillingAddressTransformer } from './transforms/outputs/billi import { DaffMagentoCartAddressTransformer } from './transforms/outputs/cart-address.service'; import { DaffMagentoCartCouponResponseTransformer } from './transforms/outputs/cart-coupon-response.service'; import { DaffMagentoCartPaymentTransformer } from './transforms/outputs/cart-payment.service'; -import { DaffMagentoCartShippingInformationTransformer } from './transforms/outputs/cart-shipping-information.service'; import { DaffMagentoCartShippingRateTransformer } from './transforms/outputs/cart-shipping-rate.service'; import { DaffMagentoCartTransformer } from './transforms/outputs/cart.service'; import { DaffMagentoShippingAddressTransformer } from './transforms/outputs/shipping-address.service'; @@ -104,7 +103,6 @@ export class DaffCartMagentoDriverModule { DaffMagentoBillingAddressTransformer, DaffMagentoCartAddressTransformer, DaffMagentoCartPaymentTransformer, - DaffMagentoCartShippingInformationTransformer, DaffMagentoCartShippingRateTransformer, DaffMagentoCartTransformer, DaffMagentoShippingAddressTransformer, diff --git a/libs/cart/driver/magento/src/cart-shipping-information.service.spec.ts b/libs/cart/driver/magento/src/cart-shipping-information.service.spec.ts index 9f9fcc83f3..0c083db0ae 100644 --- a/libs/cart/driver/magento/src/cart-shipping-information.service.spec.ts +++ b/libs/cart/driver/magento/src/cart-shipping-information.service.spec.ts @@ -11,7 +11,7 @@ import { catchError } from 'rxjs'; import { DaffCart, - DaffCartShippingInformation, + DaffCartShippingRate, } from '@daffodil/cart'; import { MagentoCartShippingMethod, @@ -64,7 +64,7 @@ describe('@daffodil/cart/driver/magento | CartShippingInformationService', () => let mockMagentoCart: MagentoCart; let mockMagentoShippingAddress: MagentoShippingAddress; let mockMagentoShippingMethod: MagentoCartSelectedShippingMethod; - let mockDaffCartShippingInformation: DaffCartShippingInformation; + let mockDaffCartShippingInformation: DaffCartShippingRate; let mockSetSelectedShippingMethodResponse: MagentoSetSelectedShippingMethodResponse; let mockGetSelectedShippingMethodResponse: MagentoGetSelectedShippingMethodResponse; let mockListCartShippingMethodsResponse: MagentoListShippingMethodsResponse; @@ -117,10 +117,7 @@ describe('@daffodil/cart/driver/magento | CartShippingInformationService', () => __typename: 'SelectedShippingMethod', ...magentoShippingMethodFactory.create(), }; - mockDaffCartShippingInformation = { - ...daffCartShippingRateFactory.create(), - address_id: null, - }; + mockDaffCartShippingInformation = daffCartShippingRateFactory.create(); mockMagentoShippingAddress = magentoShippingAddressFactory.create(); cartId = mockDaffCart.id; diff --git a/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.spec.ts b/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.spec.ts deleted file mode 100644 index 87a711d55c..0000000000 --- a/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.spec.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { MagentoCartShippingMethodFactory } from '@daffodil/cart/driver/magento/testing'; -import { DaffCartShippingRateFactory } from '@daffodil/cart/testing'; - -import { DaffMagentoCartShippingInformationTransformer } from './cart-shipping-information.service'; -import { DaffMagentoCartShippingRateTransformer } from './cart-shipping-rate.service'; - -describe('@daffodil/cart/driver/magento | Transformer | MagentoShippingInformation', () => { - let service: DaffMagentoCartShippingInformationTransformer; - - let daffCartShippingInformationFactory: DaffCartShippingRateFactory; - let magentoCartShippingMethodFactory: MagentoCartShippingMethodFactory; - - let mockDaffShippingInformation; - let mockMagentoShippingMethod; - - let cartShippingRateTransformerSpy; - - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [ - DaffMagentoCartShippingInformationTransformer, - { - provide: DaffMagentoCartShippingRateTransformer, - useValue: jasmine.createSpyObj('DaffMagentoCartShippingRateTransformer', ['transform']), - }, - ], - }); - - service = TestBed.inject(DaffMagentoCartShippingInformationTransformer); - - daffCartShippingInformationFactory = TestBed.inject(DaffCartShippingRateFactory); - magentoCartShippingMethodFactory = TestBed.inject(MagentoCartShippingMethodFactory); - - cartShippingRateTransformerSpy = TestBed.inject(DaffMagentoCartShippingRateTransformer); - - mockDaffShippingInformation = { - ...daffCartShippingInformationFactory.create(), - address_id: null, - }; - mockMagentoShippingMethod = magentoCartShippingMethodFactory.create(); - - cartShippingRateTransformerSpy.transform.withArgs(mockMagentoShippingMethod).and.returnValue(mockDaffShippingInformation); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); - - describe('transform | transforming cart shipping information', () => { - let transformedShippingInformation; - - beforeEach(() => { - transformedShippingInformation = service.transform(mockMagentoShippingMethod); - }); - - // skipping because transformer does not implement this yet - xit('should return an object with the correct values', () => { - expect(transformedShippingInformation.address_id).toEqual(mockDaffShippingInformation.address_id); - }); - - it('should call the cart shipping rate transformer with the address', () => { - expect(cartShippingRateTransformerSpy.transform).toHaveBeenCalledWith(mockMagentoShippingMethod); - }); - - describe('when the argument is null', () => { - beforeEach(() => { - transformedShippingInformation = service.transform(null); - }); - - it('should return null and not throw an error', () => { - expect(transformedShippingInformation).toBeNull(); - }); - }); - }); -}); diff --git a/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.ts b/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.ts deleted file mode 100644 index 84384cf5f7..0000000000 --- a/libs/cart/driver/magento/src/transforms/outputs/cart-shipping-information.service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Injectable } from '@angular/core'; - -import { DaffCartShippingInformation } from '@daffodil/cart'; - -import { DaffMagentoCartShippingRateTransformer } from './cart-shipping-rate.service'; -import { MagentoCartShippingMethod } from '../../models/responses/cart-shipping-method'; - -/** - * Transforms magento cart shipping methods into an object usable by daffodil. - */ -@Injectable({ - providedIn: 'root', -}) -export class DaffMagentoCartShippingInformationTransformer { - constructor(private shippingRateTransformer: DaffMagentoCartShippingRateTransformer) {} - /** - * Transforms the magento shipping method from the magento cart query into a DaffCartShippingInformation. - * - * @param shippingMethod the shippingMethod from a magento cart query. - */ - transform(shippingMethod: MagentoCartShippingMethod): DaffCartShippingInformation { - return shippingMethod ? { - ...this.shippingRateTransformer.transform(shippingMethod), - // TODO: implement - address_id: null, - } : null; - } -} diff --git a/libs/cart/driver/magento/src/transforms/outputs/cart.service.spec.ts b/libs/cart/driver/magento/src/transforms/outputs/cart.service.spec.ts index 6a14a48ab9..4698dfa0fd 100644 --- a/libs/cart/driver/magento/src/transforms/outputs/cart.service.spec.ts +++ b/libs/cart/driver/magento/src/transforms/outputs/cart.service.spec.ts @@ -11,7 +11,6 @@ import { MagentoCartItem, MagentoCartPaymentMethod, DaffMagentoCartPaymentTransformer, - DaffMagentoCartShippingInformationTransformer, DaffMagentoCartAddressTransformer, DaffMagentoCartShippingRateTransformer, DaffMagentoShippingAddressTransformer, @@ -51,11 +50,10 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { let transform: DaffCartMagentoCartItemTransform; let transformName: string; - let cartAddressTransformerSpy; - let shippingAddressTransformerSpy; - let cartPaymentTransformerSpy; - let cartShippingInformationTransformerSpy; - let cartShippingRateTransformerSpy; + let cartAddressTransformerSpy: jasmine.SpyObj; + let shippingAddressTransformerSpy: jasmine.SpyObj; + let cartPaymentTransformerSpy: jasmine.SpyObj; + let cartShippingRateTransformerSpy: jasmine.SpyObj; beforeEach(() => { transformName = 'transform name'; @@ -63,29 +61,29 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { ...daffItem, name: transformName, }); + cartAddressTransformerSpy = jasmine.createSpyObj('DaffMagentoCartPaymentTransformer', ['transform']); + shippingAddressTransformerSpy = jasmine.createSpyObj('DaffMagentoCartAddressTransformer', ['transform']); + cartPaymentTransformerSpy = jasmine.createSpyObj('DaffMagentoCartShippingRateTransformer', ['transform']); + cartShippingRateTransformerSpy = jasmine.createSpyObj('DaffMagentoShippingAddressTransformer', ['transform']); TestBed.configureTestingModule({ providers: [ DaffMagentoCartTransformer, { provide: DaffMagentoCartPaymentTransformer, - useValue: jasmine.createSpyObj('DaffMagentoCartPaymentTransformer', ['transform']), - }, - { - provide: DaffMagentoCartShippingInformationTransformer, - useValue: jasmine.createSpyObj('DaffMagentoCartShippingInformationTransformer', ['transform']), + useValue: cartPaymentTransformerSpy, }, { provide: DaffMagentoCartAddressTransformer, - useValue: jasmine.createSpyObj('DaffMagentoCartAddressTransformer', ['transform']), + useValue: cartAddressTransformerSpy, }, { provide: DaffMagentoCartShippingRateTransformer, - useValue: jasmine.createSpyObj('DaffMagentoCartShippingRateTransformer', ['transform']), + useValue: cartShippingRateTransformerSpy, }, { provide: DaffMagentoShippingAddressTransformer, - useValue: jasmine.createSpyObj('DaffMagentoShippingAddressTransformer', ['transform']), + useValue: shippingAddressTransformerSpy, }, ...daffProvideCartMagentoCartItemTransforms(transform), ], @@ -100,12 +98,6 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { magentoCartItemFactory = TestBed.inject(MagentoCartItemFactory); magentoShippingMethodFactory = TestBed.inject(MagentoCartShippingMethodFactory); - cartAddressTransformerSpy = TestBed.inject(DaffMagentoCartAddressTransformer); - cartShippingInformationTransformerSpy = TestBed.inject(DaffMagentoCartShippingInformationTransformer); - shippingAddressTransformerSpy = TestBed.inject(DaffMagentoShippingAddressTransformer); - cartPaymentTransformerSpy = TestBed.inject(DaffMagentoCartPaymentTransformer); - cartShippingRateTransformerSpy = TestBed.inject(DaffMagentoCartShippingRateTransformer); - mockDaffCart = daffCartFactory.create(); mockMagentoCart = magentoCartFactory.create({ shipping_addresses: [ @@ -138,7 +130,6 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { cartAddressTransformerSpy.transform.withArgs(mockBillingAddress).and.returnValue(mockDaffCart.billing_address); shippingAddressTransformerSpy.transform.and.returnValue(mockDaffCart.shipping_address); - cartShippingInformationTransformerSpy.transform.withArgs(mockShippingMethod).and.returnValue(mockDaffCart.shipping_information); cartShippingRateTransformerSpy.transform.withArgs(mockShippingMethod).and.returnValue(mockDaffCart.shipping_information); cartPaymentTransformerSpy.transform.withArgs(mockPaymentMethod).and.returnValue(mockDaffCart.payment); }); @@ -192,7 +183,7 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { }); it('should call the shipping information transformer with the shipping method', () => { - expect(cartShippingInformationTransformerSpy.transform).toHaveBeenCalledWith(mockShippingMethod); + expect(cartShippingRateTransformerSpy.transform).toHaveBeenCalledWith(mockShippingMethod); }); it('should call the shipping rate transformer with each of the available shipping methods', () => { @@ -263,10 +254,6 @@ describe('@daffodil/cart/driver/magento | MagentoCart', () => { it('should set available_shipping_methods to an empty array', () => { expect(transformedCart.available_shipping_methods).toEqual([]); }); - - it('should not call the shipping rate transformer', () => { - expect(cartShippingRateTransformerSpy.transform).not.toHaveBeenCalled(); - }); }); describe('when the cart items array contains nully values', () => { diff --git a/libs/cart/driver/magento/src/transforms/outputs/cart.service.ts b/libs/cart/driver/magento/src/transforms/outputs/cart.service.ts index 784b67a32a..201acc7dd9 100644 --- a/libs/cart/driver/magento/src/transforms/outputs/cart.service.ts +++ b/libs/cart/driver/magento/src/transforms/outputs/cart.service.ts @@ -12,7 +12,6 @@ import { transformMagentoCartItem, } from './cart-item/cart-item-transformer'; import { DaffMagentoCartPaymentTransformer } from './cart-payment.service'; -import { DaffMagentoCartShippingInformationTransformer } from './cart-shipping-information.service'; import { DaffMagentoCartShippingRateTransformer } from './cart-shipping-rate.service'; import { transformCartTotals } from './cart-totals-transformer'; import { DaffMagentoShippingAddressTransformer } from './shipping-address.service'; @@ -37,7 +36,6 @@ export class DaffMagentoCartTransformer[], @@ -99,7 +97,7 @@ export class DaffMagentoCartTransformer { let cartShippingRateFactory: DaffCartShippingRateFactory; let mockCart: DaffCart; - let mockCartShippingInfo: DaffCartShippingInformation; + let mockCartShippingInfo: DaffCartShippingRate; let cartId; beforeEach(() => { @@ -35,10 +34,7 @@ describe('Driver | Testing | Cart | CartShippingInformationService', () => { cartShippingRateFactory = TestBed.inject(DaffCartShippingRateFactory); mockCart = cartFactory.create(); - mockCartShippingInfo = { - ...cartShippingRateFactory.create(), - address_id: null, - }; + mockCartShippingInfo = cartShippingRateFactory.create(); mockCart.shipping_information = mockCartShippingInfo; cartId = mockCart.id; }); diff --git a/libs/cart/src/models/cart-shipping-info.ts b/libs/cart/src/models/cart-shipping-info.ts deleted file mode 100644 index 91d777703c..0000000000 --- a/libs/cart/src/models/cart-shipping-info.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ID } from '@daffodil/core'; - -import { DaffCartShippingRate } from './cart-shipping-rate'; - -// TODO: pretty sure this shouldn't even exist -export interface DaffCartShippingInformation extends DaffCartShippingRate { - address_id: ID; -} diff --git a/libs/cart/src/models/cart.ts b/libs/cart/src/models/cart.ts index bfeda6d643..57f343239f 100644 --- a/libs/cart/src/models/cart.ts +++ b/libs/cart/src/models/cart.ts @@ -4,7 +4,6 @@ import { DaffCartAddress } from './cart-address'; import { DaffCartCoupon } from './cart-coupon'; import { DaffCartItem } from './cart-item'; import { DaffCartPaymentMethod } from './cart-payment'; -import { DaffCartShippingInformation } from './cart-shipping-info'; import { DaffCartShippingRate } from './cart-shipping-rate'; import { DaffCartTotal } from './cart-total'; @@ -49,7 +48,7 @@ export interface DaffCart extends DaffIdentifiable { /** * The selected shipping method. */ - shipping_information: DaffCartShippingInformation | null; + shipping_information: DaffCartShippingRate | null; /** * A list of available shipping methods. */ diff --git a/libs/cart/src/models/public_api.ts b/libs/cart/src/models/public_api.ts index 11305199da..f2cbfe4c4e 100644 --- a/libs/cart/src/models/public_api.ts +++ b/libs/cart/src/models/public_api.ts @@ -6,7 +6,6 @@ export * from './cart-item-input'; export { DaffCartAddress } from './cart-address'; export { DaffCartPaymentMethod } from './cart-payment'; export { DaffCartShippingRate } from './cart-shipping-rate'; -export { DaffCartShippingInformation } from './cart-shipping-info'; export * from './cart-total'; export { DaffCartCoupon } from './cart-coupon'; export { DaffCartOrderResult } from './cart-order-result'; diff --git a/libs/cart/state/src/effects/cart-shipping-information.effects.spec.ts b/libs/cart/state/src/effects/cart-shipping-information.effects.spec.ts index 8194f3e220..eda1358db6 100644 --- a/libs/cart/state/src/effects/cart-shipping-information.effects.spec.ts +++ b/libs/cart/state/src/effects/cart-shipping-information.effects.spec.ts @@ -11,7 +11,7 @@ import { import { DaffCart, - DaffCartShippingInformation, + DaffCartShippingRate, DaffCartStorageService, } from '@daffodil/cart'; import { @@ -40,10 +40,10 @@ import { DaffCartShippingInformationEffects } from './cart-shipping-information. describe('@daffodil/cart/state | DaffCartShippingInformationEffects', () => { let actions$: Observable; - let effects: DaffCartShippingInformationEffects; + let effects: DaffCartShippingInformationEffects; let mockCart: DaffCart; - let mockCartShippingInformation: DaffCartShippingInformation; + let mockCartShippingInformation: DaffCartShippingRate; let cartFactory: DaffCartFactory; let cartShippingRateFactory: DaffCartShippingRateFactory; @@ -76,10 +76,7 @@ describe('@daffodil/cart/state | DaffCartShippingInformationEffects', () => { cartShippingRateFactory = TestBed.inject(DaffCartShippingRateFactory); mockCart = cartFactory.create(); - mockCartShippingInformation = { - ...cartShippingRateFactory.create(), - address_id: null, - }; + mockCartShippingInformation = cartShippingRateFactory.create(); driverGetSpy = spyOn(daffShippingInformationDriver, 'get'); driverUpdateSpy = spyOn(daffShippingInformationDriver, 'update'); diff --git a/libs/cart/state/src/effects/cart-shipping-information.effects.ts b/libs/cart/state/src/effects/cart-shipping-information.effects.ts index f0994dcbbd..f16ae32be9 100644 --- a/libs/cart/state/src/effects/cart-shipping-information.effects.ts +++ b/libs/cart/state/src/effects/cart-shipping-information.effects.ts @@ -11,11 +11,9 @@ import { of } from 'rxjs'; import { switchMap, map, - catchError, } from 'rxjs/operators'; import { - DaffCartShippingInformation, DaffCart, DaffCartStorageService, } from '@daffodil/cart'; @@ -28,33 +26,31 @@ import { ErrorTransformer } from '@daffodil/core/state'; import { DaffCartShippingInformationActionTypes, - DaffCartShippingInformationLoad, DaffCartShippingInformationLoadSuccess, DaffCartShippingInformationLoadFailure, - DaffCartShippingInformationDelete, DaffCartShippingInformationDeleteSuccess, DaffCartShippingInformationDeleteFailure, - DaffCartShippingInformationUpdate, DaffCartShippingInformationUpdateSuccess, DaffCartShippingInformationUpdateFailure, + DaffCartShippingInformationActions, } from '../actions/public_api'; import { DAFF_CART_ERROR_MATCHER } from '../injection-tokens/public_api'; @Injectable() -export class DaffCartShippingInformationEffects { +export class DaffCartShippingInformationEffects { constructor( - private actions$: Actions, + private actions$: Actions>, @Inject(DAFF_CART_ERROR_MATCHER) private errorMatcher: ErrorTransformer, - @Inject(DaffCartShippingInformationDriver) private driver: DaffCartShippingInformationServiceInterface, + @Inject(DaffCartShippingInformationDriver) private driver: DaffCartShippingInformationServiceInterface, private storage: DaffCartStorageService, ) {} get$ = createEffect(() => this.actions$.pipe( ofType(DaffCartShippingInformationActionTypes.CartShippingInformationLoadAction), - switchMap((action: DaffCartShippingInformationLoad) => + switchMap((action) => this.driver.get(this.storage.getCartId()).pipe( - map((resp: T) => new DaffCartShippingInformationLoadSuccess(resp)), + map((resp) => new DaffCartShippingInformationLoadSuccess(resp)), catchAndArrayifyErrors(error => of(new DaffCartShippingInformationLoadFailure(error.map(this.errorMatcher)))), ), ), @@ -63,9 +59,9 @@ export class DaffCartShippingInformationEffects this.actions$.pipe( ofType(DaffCartShippingInformationActionTypes.CartShippingInformationUpdateAction), - switchMap((action: DaffCartShippingInformationUpdate) => + switchMap((action) => this.driver.update(this.storage.getCartId(), action.payload).pipe( - map((resp: V) => new DaffCartShippingInformationUpdateSuccess(resp)), + map((resp) => new DaffCartShippingInformationUpdateSuccess(resp)), catchAndArrayifyErrors(error => of(new DaffCartShippingInformationUpdateFailure(error.map(this.errorMatcher)))), ), ), @@ -74,9 +70,9 @@ export class DaffCartShippingInformationEffects this.actions$.pipe( ofType(DaffCartShippingInformationActionTypes.CartShippingInformationDeleteAction), - switchMap((action: DaffCartShippingInformationDelete) => + switchMap((action) => this.driver.delete(this.storage.getCartId()).pipe( - map((resp: V) => new DaffCartShippingInformationDeleteSuccess(resp)), + map((resp) => new DaffCartShippingInformationDeleteSuccess(resp)), catchAndArrayifyErrors(error => of(new DaffCartShippingInformationDeleteFailure(error.map(this.errorMatcher)))), ), ), diff --git a/libs/cart/state/src/facades/cart/cart.facade.spec.ts b/libs/cart/state/src/facades/cart/cart.facade.spec.ts index 0c970413b5..4930985672 100644 --- a/libs/cart/state/src/facades/cart/cart.facade.spec.ts +++ b/libs/cart/state/src/facades/cart/cart.facade.spec.ts @@ -1234,10 +1234,7 @@ describe('DaffCartFacade', () => { it('should be the cart shipping information upon a successful cart shipping information load', () => { const cart = cartFactory.create(); const expected = cold('a', { - a: { - ...cart.shipping_information, - address_id: null, - }, + a: cart.shipping_information, }); facade.dispatch(new DaffCartShippingInformationLoadSuccess(cart.shipping_information)); expect(facade.shippingInformation$).toBeObservable(expected); @@ -1628,10 +1625,7 @@ describe('DaffCartFacade', () => { describe('when all the shipping method is present', () => { beforeEach(() => { const cart: DaffCart = cartFactory.create({ - shipping_information: { - address_id: 'id', - ...shippingMethodFactory.create(), - }, + shipping_information: shippingMethodFactory.create(), }); facade.dispatch(new DaffCartLoadSuccess(cart)); }); @@ -1677,10 +1671,7 @@ describe('DaffCartFacade', () => { shipping_address: cartAddressFactory.create(), billing_address: cartAddressFactory.create(), payment: paymentFactory.create(), - shipping_information: { - address_id: 'id', - ...shippingMethodFactory.create(), - }, + shipping_information: shippingMethodFactory.create(), }); facade.dispatch(new DaffCartLoadSuccess(cart)); }); diff --git a/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.spec.ts b/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.spec.ts index 200f89c60e..2e30aa2d56 100644 --- a/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.spec.ts +++ b/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.spec.ts @@ -2,7 +2,7 @@ import { TestBed } from '@angular/core/testing'; import { DaffCart, - DaffCartShippingInformation, + DaffCartShippingRate, } from '@daffodil/cart'; import { DaffCartShippingInformationLoad, @@ -33,17 +33,14 @@ describe('@daffodil/cart/state | cartShippingInformationReducer', () => { let cartFactory: DaffCartFactory; let cartShippingInformationFactory: DaffCartShippingRateFactory; let cart: DaffCart; - let mockCartShippingInformation: DaffCartShippingInformation; + let mockCartShippingInformation: DaffCartShippingRate; beforeEach(() => { cartFactory = TestBed.inject(DaffCartFactory); cartShippingInformationFactory = new DaffCartShippingRateFactory(); cart = cartFactory.create(); - mockCartShippingInformation = { - ...cartShippingInformationFactory.create(), - address_id: null, - }; + mockCartShippingInformation = cartShippingInformationFactory.create(); }); describe('when an unknown action is triggered', () => { diff --git a/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.ts b/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.ts index 0eece3d053..d349955c0e 100644 --- a/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.ts +++ b/libs/cart/state/src/reducers/cart-shipping-information/cart-shipping-information.reducer.ts @@ -16,9 +16,9 @@ const addError = initializeErrorAdder(DaffCartOperationType.ShippingInformation) const resetErrors = initializeErrorResetter(DaffCartOperationType.ShippingInformation); const setLoading = initializeLoadingSetter(DaffCartOperationType.ShippingInformation); -export function cartShippingInformationReducer( +export function cartShippingInformationReducer( state = daffCartReducerInitialState, - action: ActionTypes, + action: ActionTypes, ): DaffCartReducerState { switch (action.type) { case DaffCartShippingInformationActionTypes.CartShippingInformationLoadAction: @@ -40,8 +40,7 @@ export function cartShippingInformationReducer( ...resetErrors(state.errors), cart: { ...state.cart, - // TODO: remove workaround - shipping_information: { ...action.payload, address_id: null }, + shipping_information: action.payload, }, ...setLoading(state.loading, DaffState.Complete), }; diff --git a/libs/cart/state/src/selectors/cart/cart.selector.spec.ts b/libs/cart/state/src/selectors/cart/cart.selector.spec.ts index 8972e324d4..61a6251861 100644 --- a/libs/cart/state/src/selectors/cart/cart.selector.spec.ts +++ b/libs/cart/state/src/selectors/cart/cart.selector.spec.ts @@ -186,7 +186,6 @@ describe('@daffodil/cart/state | getCartSelectors', () => { billing_address: cartAddressFactory.create(), payment: paymentFactory.create(), }); - cart.shipping_information.address_id = String(cart.shipping_address.id); loading = { [DaffCartOperationType.Cart]: DaffState.Complete, [DaffCartOperationType.Item]: DaffState.Complete, diff --git a/libs/cart/testing/src/factories/cart-shipping-information.factory.spec.ts b/libs/cart/testing/src/factories/cart-shipping-information.factory.spec.ts deleted file mode 100644 index 65ebd63e02..0000000000 --- a/libs/cart/testing/src/factories/cart-shipping-information.factory.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { DaffCartShippingRate } from '@daffodil/cart'; - -import { DaffCartShippingRateFactory } from './cart-shipping-rate.factory'; - -describe('Cart | Testing | Factories | CartShippingRateFactory', () => { - - let cartShippingRateFactory: DaffCartShippingRateFactory; - - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [DaffCartShippingRateFactory], - }); - - cartShippingRateFactory = TestBed.inject(DaffCartShippingRateFactory); - }); - - it('should be created', () => { - expect(cartShippingRateFactory).toBeTruthy(); - }); - - describe('create', () => { - - let result: DaffCartShippingRate; - - beforeEach(() => { - result = cartShippingRateFactory.create(); - }); - - xit('should return a CartShippingRate with all required fields defined', () => { - - }); - }); - - describe('createMany', () => { - let result: DaffCartShippingRate[]; - - it('should create as many cart shipping rates as desired', () => { - result = cartShippingRateFactory.createMany(2); - expect(result.length).toEqual(2); - - result = cartShippingRateFactory.createMany(3); - expect(result.length).toEqual(3); - }); - }); -}); diff --git a/libs/cart/testing/src/factories/cart-shipping-information.factory.ts b/libs/cart/testing/src/factories/cart-shipping-information.factory.ts deleted file mode 100644 index 11dfd19cc0..0000000000 --- a/libs/cart/testing/src/factories/cart-shipping-information.factory.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Injectable } from '@angular/core'; -import { faker } from '@faker-js/faker/locale/en_US'; - -import { DaffCartShippingInformation } from '@daffodil/cart'; -import { DaffModelFactory } from '@daffodil/core/testing'; - -import { MockCartShippingRate } from './cart-shipping-rate.factory'; - -export class MockCartShippingInformation extends MockCartShippingRate implements DaffCartShippingInformation { - address_id = faker.datatype.uuid(); -} - -@Injectable({ - providedIn: 'root', -}) -export class DaffCartShippingInformationFactory extends DaffModelFactory{ - constructor(){ - super(MockCartShippingInformation); - } -} diff --git a/libs/cart/testing/src/factories/cart-shipping-rate.factory.spec.ts b/libs/cart/testing/src/factories/cart-shipping-rate.factory.spec.ts index 856f350163..64efc6f248 100644 --- a/libs/cart/testing/src/factories/cart-shipping-rate.factory.spec.ts +++ b/libs/cart/testing/src/factories/cart-shipping-rate.factory.spec.ts @@ -1,46 +1,46 @@ import { TestBed } from '@angular/core/testing'; -import { DaffCartShippingInformation } from '@daffodil/cart'; +import { DaffCartShippingRate } from '@daffodil/cart'; -import { DaffCartShippingInformationFactory } from './cart-shipping-information.factory'; +import { DaffCartShippingRateFactory } from './cart-shipping-rate.factory'; -describe('@daffodil/cart/testing | DaffCartShippingInformationFactory', () => { +describe('@daffodil/cart/testing | DaffCartShippingRateFactory', () => { - let cartShippingInformationFactory: DaffCartShippingInformationFactory; + let cartShippingRateFactory: DaffCartShippingRateFactory; beforeEach(() => { TestBed.configureTestingModule({ - providers: [DaffCartShippingInformationFactory], + providers: [DaffCartShippingRateFactory], }); - cartShippingInformationFactory = TestBed.inject(DaffCartShippingInformationFactory); + cartShippingRateFactory = TestBed.inject(DaffCartShippingRateFactory); }); it('should be created', () => { - expect(cartShippingInformationFactory).toBeTruthy(); + expect(cartShippingRateFactory).toBeTruthy(); }); describe('create', () => { - let result: DaffCartShippingInformation; + let result: DaffCartShippingRate; beforeEach(() => { - result = cartShippingInformationFactory.create(); + result = cartShippingRateFactory.create(); }); - xit('should return a CartShippingInformation with all required fields defined', () => { + xit('should return a CartShippingRate with all required fields defined', () => { }); }); describe('createMany', () => { - let result: DaffCartShippingInformation[]; + let result: DaffCartShippingRate[]; it('should create as many cart shipping rates as desired', () => { - result = cartShippingInformationFactory.createMany(2); + result = cartShippingRateFactory.createMany(2); expect(result.length).toEqual(2); - result = cartShippingInformationFactory.createMany(3); + result = cartShippingRateFactory.createMany(3); expect(result.length).toEqual(3); }); }); diff --git a/libs/cart/testing/src/factories/cart.factory.ts b/libs/cart/testing/src/factories/cart.factory.ts index f5f5ca95a6..5f5584d90c 100644 --- a/libs/cart/testing/src/factories/cart.factory.ts +++ b/libs/cart/testing/src/factories/cart.factory.ts @@ -4,7 +4,7 @@ import { faker } from '@faker-js/faker/locale/en_US'; import { DaffCart } from '@daffodil/cart'; import { DaffModelFactory } from '@daffodil/core/testing'; -import { DaffCartShippingInformationFactory } from './cart-shipping-information.factory'; +import { DaffCartShippingRateFactory } from './cart-shipping-rate.factory'; import { DaffCartTotalFactory } from './cart-total.factory'; export class MockCart implements DaffCart { @@ -24,7 +24,7 @@ export class MockCart implements DaffCart { constructor( protected totalFactory: DaffCartTotalFactory, - protected shippingInformationFactory: DaffCartShippingInformationFactory, + protected shippingInformationFactory: DaffCartShippingRateFactory, ) {} }; @@ -34,7 +34,7 @@ export class MockCart implements DaffCart { export class DaffCartFactory extends DaffModelFactory{ constructor( totalFactory: DaffCartTotalFactory, - shippingInformationFactory: DaffCartShippingInformationFactory, + shippingInformationFactory: DaffCartShippingRateFactory, ) { super(MockCart, totalFactory, shippingInformationFactory); } diff --git a/libs/cart/testing/src/factories/public_api.ts b/libs/cart/testing/src/factories/public_api.ts index dd8e3ff6ab..42888ef94b 100644 --- a/libs/cart/testing/src/factories/public_api.ts +++ b/libs/cart/testing/src/factories/public_api.ts @@ -5,6 +5,5 @@ export * from './cart-item/composite-cart-item.factory'; export * from './cart-address.factory'; export * from './cart-payment.factory'; export * from './cart-shipping-rate.factory'; -export * from './cart-shipping-information.factory'; export * from './cart-coupon.factory'; export * from './cart-total.factory';