У меня странная ошибка, при которой при использовании Jest spyOn
и насмешке над возвращаемым значением значение этого объекта возвращается как неопределенное.
import { Location as LocationAPI } from '../index'
import REST from '../../MafRestApi'
const mockCoordinatesArray = [{'longitude': 116.0654299154163, 'latitude': -33.85910894972095, 'altitude': 1182.5}]
it('Calls the Location Coordinates API and gets a response', () => {
jest.spyOn(REST, 'get').mockReturnValue(Promise.resolve(mockCoordinatesArray))
return LocationAPI.getLocationCoordinates()
.then((results) => {
expect(results).toEqual(mockCoordinatesArray)
})
})
Методы LocationAPI.getLocationCoordinates()
выглядят так:
getLocationCoordinates (): Promise<Array<LocationCoordinates>> {
return REST.get(`${ENDPOINTS.LOCATION}`)
.then((coordinates) => coordinates.map((coordinate) => new LocationCoordinates(coordinate)))
}
Это spyOn
успешно перехватывает.
В результате Jest получается:
Error: expect(received).toEqual(expected)
Expected value to equal: [{"altitude": 1182.5, "latitude": -33.85910894972095, "longitude": 116.0654299154163}]
Received:[{"altitude": undefined, "latitude": undefined, "longitude": undefined}]
Я использовал точно такую же подпись для другого вызова API, и он работает нормально.
Почему ключи остаются неповрежденными там, где нет значений?