У меня есть простая служба, которая запрашивает Интернет, а затем на основе возврата генерирует событие через BehaviorSubject
export class ProducerService {
static readonly baseUrl = `${environment.apiUri}/producers`
private readonly admin = new BehaviorSubject<boolean>(false)
readonly admin$ = this.admin.asObservable()
constructor(private readonly http: HttpClient) {
}
queryAdmin(): void {
this.http.get<boolean>(`${ProducerService.baseUrl}/admin`)
.subscribe(x => this.admin.next(x))
}
}
Теперь я пытаюсь написать тест, который проверяет если true, то переменная admin$
получает значение true. Я пробовал это вот так:
it('should emit true when an admin', async(() => {
service.admin$.subscribe(x => expect(x).toBeTrue())
service.queryAdmin()
const req = httpMock.expectOne({url: `${ProducerService.baseUrl}/admin`, method: 'GET'})
req.flush(true)
}))
Это не удается, хотя говорит: «Ожидаемое ложное значение истинно». Что я делаю не так?