Я пытался переопределить службу через BeforeEach, и это не влияет на effect.ts, который имеет условие, если электронная почта подтверждена или нет. Но это работает, когда подписка
authService.currentUser.subscribe(user => (user.emailVerified = false));
это тестовый код
class MockAuthService {
currentUser = of(fromSeeds.userAuth);
}
describe('AuthEffects', () => {
...
let authService: AuthService;
beforeEach(async () => {
TestBed.configureTestingModule({
......,
{ provide: AuthService, useClass: MockAuthService },
...
})
})
describe('listen$', () => {
beforeEach(async () => {
TestBed.overrideProvider(authService.currentUser, {
useValue: of({ ...fromSeeds.userAuth, emailVerified: false })
});
});
it('should', () => {
// test here
})
});
есть другая информация, которую я использую этот spyOn, он обновляет электронную почту currentUser, подтвержденную как ложную, но после прохождения условия (если проверено= верно) в действительности.
spyOn(authService.currentUser, 'pipe').and.returnValue(
of({ ...fromSeeds.userAuth, emailVerified: false })
);