Жасминовый тест для службы angular 7, который возвращает объект Promise, не отражается в покрытии кода.
@Injectable()
export class MyService {
constructor(private http:HttpClient,private httpService: HttpService) {
}
getAllRecords (requestData: MyRequest): Promise<MyResponse> {
return new Promise((resolve, reject) => {
let url:string = `${ApiUrl.getUrl}`;
this.httpService.makeHttpGetRequest(url, requestData)
.subscribe((response) => {
resolve(response.body);
}, (error) => {
reject();
});
});
}
}
Test
describe('MyService', function () {
let myService: MyService;
it('getAllRecords should have been called and return all records', (done) => {
const spy = spyOn(myService, 'getAllRecords').and.returnValue(Promise.resolve({ id: 1 }));
myService.getAllRecords(null);
spy.calls.mostRecent().returnValue.then(() => {
expect(myService.getAllRecords).toHaveBeenCalledWith(null);
done();
});
})
})
Тест проходит успешно, но не отражается в отчете о покрытии кода, созданном в Стамбуле, тест комментирования не влияет на процент покрытия кода.