-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: Fix tests related to newer imports #3412
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -44,6 +44,11 @@ import { DeepLinkService } from 'src/app/core/services/deep-link.service'; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { platformExpenseData } from 'src/app/core/mock-data/platform/v1/expense.data'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { transformedExpenseData } from 'src/app/core/mock-data/transformed-expense.data'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { LaunchDarklyService } from 'src/app/core/services/launch-darkly.service'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { OrgSettingsService } from 'src/app/core/services/org-settings.service'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { orgSettingsData } from 'src/app/core/test-data/org-settings.service.spec.data'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { SpenderOnboardingService } from 'src/app/core/services/spender-onboarding.service'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { onboardingStatusData } from 'src/app/core/mock-data/onboarding-status.data'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { OnboardingState } from 'src/app/core/models/onboarding-state.enum'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const roles = ['OWNER', 'USER', 'FYLER']; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const email = 'ajain@fyle.in'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -73,6 +78,8 @@ describe('SwitchOrgPage', () => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let transactionService: jasmine.SpyObj<TransactionService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let expensesService: jasmine.SpyObj<ExpensesService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let deepLinkService: jasmine.SpyObj<DeepLinkService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let orgSettingsService: jasmine.SpyObj<OrgSettingsService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let spenderOnboardingService: jasmine.SpyObj<SpenderOnboardingService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beforeEach(waitForAsync(() => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const platformSpy = jasmine.createSpyObj('Platform', ['is']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -110,6 +117,8 @@ describe('SwitchOrgPage', () => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const expensesServiceSpy = jasmine.createSpyObj('ExpensesService', ['getExpenseById']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const deepLinkServiceSpy = jasmine.createSpyObj('DeepLinkService', ['getExpenseRoute']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const ldSpy = jasmine.createSpyObj('LaunchDarklyService', ['initializeUser']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const orgSettingsServiceSpy = jasmine.createSpyObj('OrgSettingsService', ['get']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const spenderOnboardingServiceSpy = jasmine.createSpyObj('SpenderOnboardingSettings', ['getOnboardingSettings']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestBed.configureTestingModule({ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
declarations: [SwitchOrgPage, ActiveOrgCardComponent, OrgCardComponent, FyZeroStateComponent], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -150,6 +159,14 @@ describe('SwitchOrgPage', () => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provide: LoaderService, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useValue: loaderServiceSpy, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provide: OrgSettingsService, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useValue: orgSettingsServiceSpy, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provide: SpenderOnboardingService, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useValue: spenderOnboardingServiceSpy, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
provide: UserService, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useValue: userServiceSpy, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -256,11 +273,14 @@ describe('SwitchOrgPage', () => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deepLinkService = TestBed.inject(DeepLinkService) as jasmine.SpyObj<DeepLinkService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transactionService = TestBed.inject(TransactionService) as jasmine.SpyObj<TransactionService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expensesService = TestBed.inject(ExpensesService) as jasmine.SpyObj<ExpensesService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spenderOnboardingService = TestBed.inject(SpenderOnboardingService) as jasmine.SpyObj<SpenderOnboardingService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orgSettingsService = TestBed.inject(OrgSettingsService) as jasmine.SpyObj<OrgSettingsService>; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
component.searchRef = fixture.debugElement.query(By.css('#search')); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
component.searchOrgsInput = fixture.debugElement.query(By.css('.smartlook-show')); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
component.contentRef = fixture.debugElement.query(By.css('.switch-org__content-container__content-block')); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fixture.detectChanges(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spyOn(component, 'navigateToDashboard').and.callThrough(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
})); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it('should create', () => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -642,16 +662,34 @@ describe('SwitchOrgPage', () => { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
describe('navigateBasedOnUserStatus(): ', () => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it('should navigate to dashboard if status is active', (done) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it('should navigate to dashboard if status is active', fakeAsync(() => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const config = { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
isPendingDetails: false, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
roles, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eou: apiEouRes, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orgSettingsService.get.and.returnValue(of(orgSettingsData)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spenderOnboardingService.getOnboardingStatus.and.returnValue( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
of({ ...onboardingStatusData, state: OnboardingState.COMPLETED }) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tick(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
component.navigateBasedOnUserStatus(config).subscribe((res) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expect(res).toBeNull(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expect(router.navigate).toHaveBeenCalledOnceWith(['/', 'enterprise', 'my_dashboard']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
})); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it('should navigate to spender onboarding if status not COMPLETE', (done) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const config = { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
isPendingDetails: false, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
roles, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eou: apiEouRes, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orgSettingsService.get.and.returnValue(of(orgSettingsData)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spenderOnboardingService.getOnboardingStatus.and.returnValue(of(onboardingStatusData)); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
component.navigateBasedOnUserStatus(config).subscribe((res) => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expect(res).toBeNull(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expect(router.navigate).toHaveBeenCalledOnceWith(['/', 'enterprise', 'spender_onboarding']); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+682
to
693
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) The test is powerful, but let's make it legendary! Consider adding a test case for when some enrollment settings are enabled but others aren't. it('should navigate to dashboard when no enrollment settings are enabled', (done) => {
const config = {
isPendingDetails: false,
roles,
eou: apiEouRes,
};
orgSettingsService.get.and.returnValue(of({
...orgSettingsData,
visa_enrollment_settings: { enabled: false },
mastercard_enrollment_settings: { enabled: false },
amex_feed_enrollment_settings: { enabled: false }
}));
spenderOnboardingService.getOnboardingStatus.and.returnValue(of(onboardingStatusData));
component.navigateBasedOnUserStatus(config).subscribe((res) => {
expect(res).toBeNull();
expect(router.navigate).toHaveBeenCalledWith(['/', 'enterprise', 'my_dashboard']);
done();
});
});
Comment on lines
+682
to
693
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Superstar! The test is good, but let's make it even better! The test case verifies navigation to spender onboarding, but we can enhance it with more assertions and proper async handling. Transform the test to use -it('should navigate to spender onboarding if status not COMPLETE', (done) => {
+it('should navigate to spender onboarding if status not COMPLETE', fakeAsync(() => {
const config = {
isPendingDetails: false,
roles,
eou: apiEouRes,
};
orgSettingsService.get.and.returnValue(of(orgSettingsData));
spenderOnboardingService.getOnboardingStatus.and.returnValue(of(onboardingStatusData));
+ tick();
component.navigateBasedOnUserStatus(config).subscribe((res) => {
expect(res).toBeNull();
expect(router.navigate).toHaveBeenCalledOnceWith(['/', 'enterprise', 'spender_onboarding']);
+ expect(orgSettingsService.get).toHaveBeenCalledTimes(1);
+ expect(spenderOnboardingService.getOnboardingStatus).toHaveBeenCalledTimes(1);
- done();
});
+ tick();
})); 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -31,7 +31,6 @@ import { TransactionService } from 'src/app/core/services/transaction.service'; | |||||||||||||||||||||||||||
import { DeepLinkService } from 'src/app/core/services/deep-link.service'; | ||||||||||||||||||||||||||||
import { ExpensesService } from 'src/app/core/services/platform/v1/spender/expenses.service'; | ||||||||||||||||||||||||||||
import { LaunchDarklyService } from 'src/app/core/services/launch-darkly.service'; | ||||||||||||||||||||||||||||
import { OrgSettings } from 'src/app/core/models/org-settings.model'; | ||||||||||||||||||||||||||||
import { OrgSettingsService } from 'src/app/core/services/org-settings.service'; | ||||||||||||||||||||||||||||
import { SpenderOnboardingService } from 'src/app/core/services/spender-onboarding.service'; | ||||||||||||||||||||||||||||
import { OnboardingState } from 'src/app/core/models/onboarding-state.enum'; | ||||||||||||||||||||||||||||
|
@@ -321,7 +320,12 @@ export class SwitchOrgPage implements OnInit, AfterViewChecked { | |||||||||||||||||||||||||||
navigateToDashboard(openOptInDialog?: boolean): void { | ||||||||||||||||||||||||||||
forkJoin([this.orgSettingsService.get(), this.spenderOnboardingService.getOnboardingStatus()]).subscribe( | ||||||||||||||||||||||||||||
([orgSettings, onboardingStatus]) => { | ||||||||||||||||||||||||||||
if (onboardingStatus.state !== OnboardingState.COMPLETED) { | ||||||||||||||||||||||||||||
if ( | ||||||||||||||||||||||||||||
(orgSettings.visa_enrollment_settings.enabled || | ||||||||||||||||||||||||||||
orgSettings.mastercard_enrollment_settings.enabled || | ||||||||||||||||||||||||||||
orgSettings.amex_feed_enrollment_settings.enabled) && | ||||||||||||||||||||||||||||
onboardingStatus.state !== OnboardingState.COMPLETED | ||||||||||||||||||||||||||||
) { | ||||||||||||||||||||||||||||
Comment on lines
+323
to
+328
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Mind it! Let's simplify this complex condition, shall we? The condition checking multiple enrollment settings can be simplified using Array.some() for better readability, macha! 🕶️ - if (
- (orgSettings.visa_enrollment_settings.enabled ||
- orgSettings.mastercard_enrollment_settings.enabled ||
- orgSettings.amex_feed_enrollment_settings.enabled) &&
- onboardingStatus.state !== OnboardingState.COMPLETED
- ) {
+ const hasEnabledEnrollment = [
+ orgSettings.visa_enrollment_settings,
+ orgSettings.mastercard_enrollment_settings,
+ orgSettings.amex_feed_enrollment_settings
+ ].some(setting => setting.enabled);
+
+ if (hasEnabledEnrollment && onboardingStatus.state !== OnboardingState.COMPLETED) { 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||
this.router.navigate(['/', 'enterprise', 'spender_onboarding']); | ||||||||||||||||||||||||||||
} else { | ||||||||||||||||||||||||||||
this.router.navigate([ | ||||||||||||||||||||||||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,18 +11,17 @@ | |
height: 100%; | ||
} | ||
|
||
&__primary-cta-container { | ||
&__cta-container { | ||
display: flex; | ||
flex-direction: row; | ||
justify-content: flex-end; | ||
} | ||
|
||
&__card-number-input { | ||
width: fit-content !important; | ||
margin-right: 24px; | ||
&::placeholder { | ||
word-spacing: 24px; | ||
} | ||
&__with-go-back { | ||
justify-content: space-between; | ||
} | ||
|
||
&__without-go-back { | ||
justify-content: flex-end; | ||
} | ||
|
||
&__heading { | ||
|
@@ -46,6 +45,7 @@ | |
&__primary-cta { | ||
width: 108px; | ||
align-self: flex-end; | ||
margin-bottom: 20px; | ||
} | ||
|
||
&__toolbar-title { | ||
|
@@ -73,7 +73,7 @@ | |
} | ||
|
||
&__input-container { | ||
padding: 16px 16px 8px; | ||
padding: 16px 16px 8px 16px; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. didn't the shorthand work? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. accidentally added it back from a different PR |
||
border-radius: 8px; | ||
border: 1px solid $grey; | ||
|
||
|
@@ -269,22 +269,11 @@ | |
} | ||
} | ||
|
||
&__primary-cta { | ||
margin: 16px auto; | ||
width: 90%; | ||
|
||
.mat-button-base { | ||
width: 100%; | ||
font-weight: 700; | ||
min-height: 47px; | ||
} | ||
} | ||
|
||
&__otp-container { | ||
display: flex; | ||
justify-content: center; | ||
justify-content: flex-start; | ||
align-items: center; | ||
margin-bottom: 32px; | ||
margin-bottom: 16px; | ||
|
||
&__label { | ||
margin: 0 8px 0 0; | ||
|
@@ -400,15 +389,29 @@ | |
font-size: 14px; | ||
} | ||
} | ||
|
||
&__help-article-icon { | ||
margin: 4px 0px 0px 6px; | ||
width: 14px; | ||
height: 14px; | ||
} | ||
} | ||
|
||
&__footer { | ||
margin-bottom: calc(env(safe-area-inset-bottom)); | ||
} | ||
|
||
&__cta-text { | ||
font-size: 14px; | ||
font-weight: 500; | ||
} | ||
|
||
&__arrow-icon { | ||
margin-right: 6px; | ||
height: 18px; | ||
width: 18px; | ||
} | ||
|
||
&__cta-secondary { | ||
display: flex; | ||
align-items: center; | ||
justify-content: center; | ||
color: $blue-black; | ||
flex-direction: row; | ||
padding: 16px 0; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,6 +23,8 @@ import { snackbarPropertiesRes2 } from 'src/app/core/mock-data/snackbar-properti | |
import { ToastMessageComponent } from 'src/app/shared/components/toast-message/toast-message.component'; | ||
import { UserEventService } from 'src/app/core/services/user-event.service'; | ||
import { FormBuilder } from '@angular/forms'; | ||
import { SpenderOnboardingService } from 'src/app/core/services/spender-onboarding.service'; | ||
import { onboardingStatusData } from 'src/app/core/mock-data/onboarding-status.data'; | ||
|
||
describe('SpenderOnboardingOptInStepComponent', () => { | ||
let component: SpenderOnboardingOptInStepComponent; | ||
|
@@ -35,8 +37,8 @@ describe('SpenderOnboardingOptInStepComponent', () => { | |
let trackingService: jasmine.SpyObj<TrackingService>; | ||
let matSnackbar: jasmine.SpyObj<MatSnackBar>; | ||
let loaderService: jasmine.SpyObj<LoaderService>; | ||
let platformHandlerService: jasmine.SpyObj<PlatformHandlerService>; | ||
let userEventService: jasmine.SpyObj<UserEventService>; | ||
let spenderOnboardingService: jasmine.SpyObj<SpenderOnboardingService>; | ||
let fb: FormBuilder; | ||
|
||
beforeEach(waitForAsync(() => { | ||
|
@@ -63,6 +65,7 @@ describe('SpenderOnboardingOptInStepComponent', () => { | |
const browserHandlerServiceSpy = jasmine.createSpyObj('BrowserHandlerService', ['openLinkWithToolbarColor']); | ||
const platformHandlerServiceSpy = jasmine.createSpyObj('PlatformHandlerService', ['registerBackButtonAction']); | ||
const userEventServiceSpy = jasmine.createSpyObj('UserEventService', ['clearTaskCache']); | ||
const spenderOnboardingServiceSpy = jasmine.createSpyObj('SpenderOnboardingService', ['getOnboardingStatus']); | ||
|
||
TestBed.configureTestingModule({ | ||
declarations: [SpenderOnboardingOptInStepComponent], | ||
|
@@ -80,6 +83,7 @@ describe('SpenderOnboardingOptInStepComponent', () => { | |
{ provide: BrowserHandlerService, useValue: browserHandlerServiceSpy }, | ||
{ provide: PlatformHandlerService, useValue: platformHandlerServiceSpy }, | ||
{ provide: UserEventService, useValue: userEventServiceSpy }, | ||
{ provide: SpenderOnboardingService, useValue: spenderOnboardingServiceSpy }, | ||
], | ||
schemas: [NO_ERRORS_SCHEMA], | ||
}).compileComponents(); | ||
|
@@ -96,7 +100,7 @@ describe('SpenderOnboardingOptInStepComponent', () => { | |
trackingService = TestBed.inject(TrackingService) as jasmine.SpyObj<TrackingService>; | ||
matSnackbar = TestBed.inject(MatSnackBar) as jasmine.SpyObj<MatSnackBar>; | ||
loaderService = TestBed.inject(LoaderService) as jasmine.SpyObj<LoaderService>; | ||
platformHandlerService = TestBed.inject(PlatformHandlerService) as jasmine.SpyObj<PlatformHandlerService>; | ||
spenderOnboardingService = TestBed.inject(SpenderOnboardingService) as jasmine.SpyObj<SpenderOnboardingService>; | ||
userEventService = TestBed.inject(UserEventService) as jasmine.SpyObj<UserEventService>; | ||
fb = TestBed.inject(FormBuilder); | ||
})); | ||
|
@@ -108,6 +112,9 @@ describe('SpenderOnboardingOptInStepComponent', () => { | |
describe('ngOnInit():', () => { | ||
beforeEach(() => { | ||
component.eou = cloneDeep(eouRes2); | ||
spenderOnboardingService.getOnboardingStatus.and.returnValue( | ||
of({ ...onboardingStatusData, step_connect_cards_is_skipped: true }) | ||
); | ||
Comment on lines
+115
to
+117
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Testing like a boss! But let's make it even more powerful! The test setup for onboarding status is good, but let's add more test cases for different scenarios. Add these test cases to cover all scenarios: it('should not show back CTA when step_connect_cards_is_skipped is false', () => {
spenderOnboardingService.getOnboardingStatus.and.returnValue(
of({ ...onboardingStatusData, step_connect_cards_is_skipped: false })
);
fixture.detectChanges();
expect(component.showGoBackCta).toBeFalse();
});
it('should handle error in getOnboardingStatus', () => {
spenderOnboardingService.getOnboardingStatus.and.returnValue(
throwError(() => new Error('Network error'))
);
fixture.detectChanges();
expect(component.showGoBackCta).toBeFalse();
}); |
||
}); | ||
|
||
it('should not set mobileNumberInputValue if mobile number is not present in DB', () => { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Mind it! The test case looks solid, but let's add more assertions!
The test case properly verifies navigation when status is active, but we can make it even more robust by adding assertions for the service calls.
Add these assertions to verify service interactions:
📝 Committable suggestion