Я тестирую свой метод публикации HttpClient с помощью жасмина: но это ошибка, потому что возвращаемое значение моего метода c бизнес-логики является пустым массивом, но если я запустил тот же метод из компонента angular, значение - это заполненный массив, равный моим фиктивным данным.
it('should call POST /MonitoraggioWS/rs/public/getListaCanaliWSR and return all Channels', () => {
let actualData = {};
let filter: IChannelFilter = {channelCode:'', resourceId:'', resourceType:'QUEUE'};
service.getAllChannels(filter).subscribe(data => actualData = data);
backend.expectOne((req: HttpRequest<any>) => {
return req.url === `/MonitoraggioWS/rs/public/getListaCanaliWSR` && req.method === 'POST'
}, 'Load all channels from /MonitoraggioWS/rs/public/getListaCanaliWSR').flush(channels);
expect(actualData).toEqual(channels);
});
служба:
const headers = new HttpHeaders().set('Content-Type', 'application/json');
return this.httpClient.post<IChannel[]>(`/MonitoraggioWS/rs/public/getListaCanaliWSR`, JSON.stringify(filter),{headers: headers}).pipe(
map((data: any) => {
let channelList: IChannel[] = [];
if(data && data.channelAdapterList){
data.channelAdapterList.forEach(data =>{
channelList.push({
lastUpdateTimestamp: data.lastUpdateTimestamp,lastUpdateUser: data.lastUpdateUser, external: data.external,
headerExit: data.headerExit, id: data.channelCode, description: data.description, channelCode: data.channelCode,
headerFormat: data.headerFormat, resourceId: data.resourceId, resourceType: data.resourceType, saviour: data.saviour,
version: data.version, organizationLevelTwoDefinition: data.organizationLevelTwoDefinition,
organizationLevelOneDefinition: data.organizationLevelTwoDefinition, mappingOid: data.mappingOid, key: null,
});
});
}
return channelList;
}), catchError( error => {
return throwError( 'MonitoringAPI Something went wrong! '+ error);
})
);
}
Мой тест завершился неудачно, потому что actualDate (возвращаемое значение моего бизнес-метода - Array [ ]), но если я запустил метод из компонента angular, массив будет заполнен теми же значениями, что и мой макет, возможно, проблема в моем бизнес-логе c service?