У меня есть функция в службе, в которой у меня есть 3 http get call, и я возвращаю ответ с помощью forkJoin, создающего массив, как я буду тестировать эту функцию сервиса в spec.ts?
это функция в моем компоненте регистрации, который вызывает сервис,
this.register.registrationData()
.subscribe(data => {
this.types = data[0];
this.modules = data[1];
this.packages = data[2];
});
и это моя функция службы регистрации,
registrationData(): Observable<any> {
const companyTypes =this.http.get(ConstantService.apiRoutes.companyTypes);
const modules = this.http.get(ConstantService.apiRoutes.modules);
const packages = this.http.get(ConstantService.apiRoutes.packages);
return forkJoin([companyTypes, modules, packages]);
}
пока это мой файл спецификаций,
it('Should require registration data', () => {
loginRegService.registrationData().subscribe((data) => {
expect(data).toEqual(regData);
})
const reqCompany = httpTestingController.expectOne(`${environment.apiUrl}/anonymous/companyTypes/`);
const reqModule = httpTestingController.expectOne(`${environment.apiUrl}/anonymous/modules/`);
const reqPackage = httpTestingController.expectOne(`${environment.apiUrl}/anonymous/packages/`);
expect(reqCompany.request.method).toBe('GET');
expect(reqModule.request.method).toBe('GET');
expect(reqPackage.request.method).toBe('GET');
const e1 = forkJoin([reqCompany, reqModule, reqPackage]);
reqCompany.flush(companyType);
reqModule.flush(modules);
reqPackage.flush(packages);
});