-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
113 changed files
with
1,213 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion
2
.../adyen/spartacus-payments/ng-package.json → ...cts/adyen/adyen-spartacus/ng-package.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
...cts/adyen/spartacus-payments/package.json → projects/adyen/adyen-spartacus/package.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
75 changes: 75 additions & 0 deletions
75
projects/adyen/adyen-spartacus/src/adyen-redirect/adyen-redirect-error.component.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||
import { of } from 'rxjs'; | ||
import { AdyenRedirectErrorComponent } from './adyen-redirect-error.component'; | ||
import { RoutingService, GlobalMessageService, GlobalMessageType, OCC_CART_ID_CURRENT, TranslationService, UserIdService } from '@spartacus/core'; | ||
import { MultiCartFacade } from '@spartacus/cart/base/root'; | ||
|
||
describe('AdyenRedirectErrorComponent', () => { | ||
let component: AdyenRedirectErrorComponent; | ||
let fixture: ComponentFixture<AdyenRedirectErrorComponent>; | ||
let mockRoutingService: jasmine.SpyObj<RoutingService>; | ||
let mockGlobalMessageService: jasmine.SpyObj<GlobalMessageService>; | ||
let mockTranslationService: jasmine.SpyObj<TranslationService>; | ||
let mockUserIdService: jasmine.SpyObj<UserIdService>; | ||
let mockMultiCartFacade: jasmine.SpyObj<MultiCartFacade>; | ||
|
||
beforeEach(async () => { | ||
mockRoutingService = jasmine.createSpyObj('RoutingService', ['getParams', 'go']); | ||
mockGlobalMessageService = jasmine.createSpyObj('GlobalMessageService', ['add']); | ||
mockTranslationService = jasmine.createSpyObj('TranslationService', ['translate']); | ||
mockUserIdService = jasmine.createSpyObj('UserIdService', ['takeUserId']); | ||
mockMultiCartFacade = jasmine.createSpyObj('MultiCartFacade', ['reloadCart', 'loadCart', 'getCartIdByType']); | ||
|
||
mockRoutingService.getParams.and.returnValue(of({ errorCode: btoa('someErrorCode') })); | ||
mockTranslationService.translate.and.returnValue(of('translatedMessage')); | ||
mockUserIdService.takeUserId.and.returnValue(of('userId')); | ||
mockMultiCartFacade.getCartIdByType.and.returnValue(of('cartId')); | ||
|
||
await TestBed.configureTestingModule({ | ||
declarations: [AdyenRedirectErrorComponent], | ||
providers: [ | ||
{ provide: RoutingService, useValue: mockRoutingService }, | ||
{ provide: GlobalMessageService, useValue: mockGlobalMessageService }, | ||
{ provide: TranslationService, useValue: mockTranslationService }, | ||
{ provide: UserIdService, useValue: mockUserIdService }, | ||
{ provide: MultiCartFacade, useValue: mockMultiCartFacade } | ||
] | ||
}).compileComponents(); | ||
}); | ||
|
||
beforeEach(() => { | ||
fixture = TestBed.createComponent(AdyenRedirectErrorComponent); | ||
component = fixture.componentInstance; | ||
fixture.detectChanges(); | ||
}); | ||
|
||
it('should create', () => { | ||
expect(component).toBeTruthy(); | ||
}); | ||
|
||
it('should add error message and reload cart on init', () => { | ||
const errorCode = 'someErrorCode'; | ||
const translatedMessage = 'translatedMessage'; | ||
const userId = 'userId'; | ||
const cartId = 'cartId'; | ||
|
||
mockRoutingService.getParams.and.returnValue(of({ errorCode: btoa(errorCode) })); | ||
mockTranslationService.translate.and.returnValue(of(translatedMessage)); | ||
mockUserIdService.takeUserId.and.returnValue(of(userId)); | ||
mockMultiCartFacade.getCartIdByType.and.returnValue(of(cartId)); | ||
|
||
component.ngOnInit(); | ||
|
||
expect(mockTranslationService.translate).toHaveBeenCalledWith(component['placeOrderErrorCodePrefix'] + errorCode); | ||
expect(mockGlobalMessageService.add).toHaveBeenCalledWith(translatedMessage, GlobalMessageType.MSG_TYPE_ERROR, component['messageTimeout']); | ||
expect(mockMultiCartFacade.reloadCart).toHaveBeenCalledWith(OCC_CART_ID_CURRENT); | ||
expect(mockMultiCartFacade.loadCart).toHaveBeenCalledWith({ cartId: OCC_CART_ID_CURRENT, userId }); | ||
expect(mockRoutingService.go).toHaveBeenCalledWith({ cxRoute: 'checkoutAdyenPaymentDetails' }); | ||
}); | ||
|
||
it('should unsubscribe from all subscriptions on destroy', () => { | ||
spyOn(component['subscriptions'], 'unsubscribe'); | ||
component.ngOnDestroy(); | ||
expect(component['subscriptions'].unsubscribe).toHaveBeenCalled(); | ||
}); | ||
}); |
File renamed without changes.
67 changes: 67 additions & 0 deletions
67
projects/adyen/adyen-spartacus/src/adyen-redirect/adyen-redirect-success.component.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||
import { of } from 'rxjs'; | ||
import { AdyenRedirectSuccessComponent } from './adyen-redirect-success.component'; | ||
import { RoutingService } from '@spartacus/core'; | ||
import { AdyenOrderService } from '../service/adyen-order.service'; | ||
|
||
describe('AdyenRedirectSuccessComponent', () => { | ||
let component: AdyenRedirectSuccessComponent; | ||
let fixture: ComponentFixture<AdyenRedirectSuccessComponent>; | ||
let mockRoutingService: jasmine.SpyObj<RoutingService>; | ||
let mockAdyenOrderService: jasmine.SpyObj<AdyenOrderService>; | ||
|
||
beforeEach(async () => { | ||
mockRoutingService = jasmine.createSpyObj('RoutingService', ['getParams', 'go']); | ||
mockAdyenOrderService = jasmine.createSpyObj('AdyenOrderService', ['loadOrderDetails', 'getOrderDetails']); | ||
|
||
// Ensure the mocked methods return Observables | ||
mockRoutingService.getParams.and.returnValue(of({ orderCode: '12345' })); | ||
mockAdyenOrderService.getOrderDetails.and.returnValue(of({})); | ||
|
||
await TestBed.configureTestingModule({ | ||
declarations: [AdyenRedirectSuccessComponent], | ||
providers: [ | ||
{ provide: RoutingService, useValue: mockRoutingService }, | ||
{ provide: AdyenOrderService, useValue: mockAdyenOrderService } | ||
] | ||
}).compileComponents(); | ||
}); | ||
|
||
beforeEach(() => { | ||
fixture = TestBed.createComponent(AdyenRedirectSuccessComponent); | ||
component = fixture.componentInstance; | ||
fixture.detectChanges(); | ||
}); | ||
|
||
it('should create', () => { | ||
expect(component).toBeTruthy(); | ||
}); | ||
|
||
it('should load order by code on init', () => { | ||
const orderCode = '12345'; | ||
mockRoutingService.getParams.and.returnValue(of({ orderCode })); | ||
mockAdyenOrderService.getOrderDetails.and.returnValue(of({})); | ||
|
||
component.ngOnInit(); | ||
|
||
expect(mockAdyenOrderService.loadOrderDetails).toHaveBeenCalledWith(orderCode); | ||
}); | ||
|
||
it('should navigate to order confirmation if order details are available', () => { | ||
mockRoutingService.getParams.and.returnValue(of({ orderCode: '12345' })); | ||
mockAdyenOrderService.getOrderDetails.and.returnValue(of({})); | ||
|
||
component.ngOnInit(); | ||
|
||
expect(mockRoutingService.go).toHaveBeenCalledWith({ cxRoute: 'orderConfirmation' }); | ||
}); | ||
|
||
it('should not navigate if order details are not available', () => { | ||
mockRoutingService.getParams.and.returnValue(of({ orderCode: '12345' })); | ||
mockAdyenOrderService.getOrderDetails.and.returnValue(of(undefined)); | ||
|
||
component.ngOnInit(); | ||
|
||
expect(mockRoutingService.go).not.toHaveBeenCalled(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
97 changes: 97 additions & 0 deletions
97
...d/checkout-adyen-delivery-address/adyen-checkout-adyen-delivery-address.component.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||
import { AdyenCheckoutAdyenDeliveryAddressComponent } from './adyen-checkout-adyen-delivery-address.component'; | ||
import { UserAddressService, TranslationService, GlobalMessageService, Address } from '@spartacus/core'; | ||
import { ActiveCartFacade } from '@spartacus/cart/base/root'; | ||
import { CheckoutDeliveryAddressFacade } from '@spartacus/checkout/base/root'; | ||
import { CheckoutStepService } from '@spartacus/checkout/base/components'; | ||
import { AdyenAddressService } from '../../service/adyen-address.service'; | ||
import { of, BehaviorSubject } from 'rxjs'; | ||
import { ActivatedRoute } from '@angular/router'; | ||
import { Pipe, PipeTransform } from '@angular/core'; | ||
|
||
@Pipe({ name: 'cxTranslate' }) | ||
class MockCxTranslatePipe implements PipeTransform { | ||
transform(value: string): string { | ||
return value; | ||
} | ||
} | ||
|
||
describe('AdyenCheckoutAdyenDeliveryAddressComponent', () => { | ||
let component: AdyenCheckoutAdyenDeliveryAddressComponent; | ||
let fixture: ComponentFixture<AdyenCheckoutAdyenDeliveryAddressComponent>; | ||
let mockUserAddressService: any; | ||
let mockCheckoutDeliveryAddressFacade: any; | ||
let mockActiveCartFacade: any; | ||
let mockTranslationService: any; | ||
let mockGlobalMessageService: any; | ||
let mockAdyenAddressService: any; | ||
let mockCheckoutStepService: any; | ||
let mockActivatedRoute: any; | ||
|
||
beforeEach(async () => { | ||
mockUserAddressService = jasmine.createSpyObj('UserAddressService', ['loadAddresses', 'getAddresses', 'getAddressesLoading']); | ||
mockUserAddressService.getAddressesLoading.and.returnValue(of(false)); | ||
mockCheckoutDeliveryAddressFacade = jasmine.createSpyObj('CheckoutDeliveryAddressFacade', ['getDeliveryAddressState']); | ||
mockCheckoutDeliveryAddressFacade.getDeliveryAddressState.and.returnValue(of({ loading: false })); | ||
mockActiveCartFacade = jasmine.createSpyObj('ActiveCartFacade', ['isGuestCart']); | ||
mockActiveCartFacade.isGuestCart.and.returnValue(of(true)); | ||
mockTranslationService = jasmine.createSpyObj('TranslationService', ['translate']); | ||
mockGlobalMessageService = jasmine.createSpyObj('GlobalMessageService', ['add']); | ||
mockAdyenAddressService = jasmine.createSpyObj('AdyenAddressService', ['adyenAddUserAddress']); | ||
mockCheckoutStepService = jasmine.createSpyObj('CheckoutStepService', ['next']); | ||
mockActivatedRoute = { snapshot: { queryParamMap: { get: jasmine.createSpy().and.returnValue('sessionId') } } }; | ||
|
||
await TestBed.configureTestingModule({ | ||
declarations: [AdyenCheckoutAdyenDeliveryAddressComponent,MockCxTranslatePipe], | ||
providers: [ | ||
{ provide: UserAddressService, useValue: mockUserAddressService }, | ||
{ provide: CheckoutDeliveryAddressFacade, useValue: mockCheckoutDeliveryAddressFacade }, | ||
{ provide: ActiveCartFacade, useValue: mockActiveCartFacade }, | ||
{ provide: TranslationService, useValue: mockTranslationService }, | ||
{ provide: GlobalMessageService, useValue: mockGlobalMessageService }, | ||
{ provide: AdyenAddressService, useValue: mockAdyenAddressService }, | ||
{ provide: CheckoutStepService, useValue: mockCheckoutStepService }, | ||
{ provide: ActivatedRoute, useValue: mockActivatedRoute }, | ||
] | ||
}).compileComponents(); | ||
}); | ||
|
||
beforeEach(() => { | ||
fixture = TestBed.createComponent(AdyenCheckoutAdyenDeliveryAddressComponent); | ||
component = fixture.componentInstance; | ||
fixture.detectChanges(); | ||
}); | ||
|
||
it('should create', () => { | ||
expect(component).toBeTruthy(); | ||
}); | ||
|
||
it('should initialize component properties correctly', () => { | ||
expect(component.sameAsDeliveryAddress).toBeTrue(); | ||
expect(component.selectedAddress$).toBeDefined(); | ||
}); | ||
|
||
it('should set selected address correctly in selectAddress', () => { | ||
const address: Address = { id: 'test' } as Address; | ||
component.selectAddress(address); | ||
expect(component.selectedAddress$.getValue()).toEqual(address); | ||
}); | ||
|
||
it('should add a new address and update state correctly in addAddress', () => { | ||
const address: Address = { id: 'test' } as Address; | ||
mockAdyenAddressService.adyenAddUserAddress.and.returnValue(of(address)); | ||
spyOn(component.setBillingAddress, 'emit'); | ||
component.addAddress(address); | ||
expect(mockAdyenAddressService.adyenAddUserAddress).toHaveBeenCalledWith(address); | ||
expect(component.setBillingAddress.emit).toHaveBeenCalledWith(address); | ||
expect(component.selectedAddress$.getValue()).toEqual(address); | ||
}); | ||
|
||
it('should toggle sameAsDeliveryAddress correctly', () => { | ||
component.sameAsDeliveryAddress = true; | ||
component.toggleSameAsDeliveryAddress(); | ||
expect(component.sameAsDeliveryAddress).toBeFalse(); | ||
component.toggleSameAsDeliveryAddress(); | ||
expect(component.sameAsDeliveryAddress).toBeTrue(); | ||
}); | ||
}); |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Oops, something went wrong.