Я новичок в тестировании и пытаюсь найти способ вызвать ошибку с помощью функции asyn c.
Вот тестовый файл
import Yelp from './Yelp';
import axios from 'axios';
jest.mock('axios');
describe('testing searchRestaurantsInfo', () => {
// Other tests
test('returns error', async () => {
await expect(
Yelp.searchRestaurantsInfo('q_IoMdeM57U70GwqjXxGJw')
).rejects.toThrow('Error');
});
});
I получить ошибку
testing searchRestaurantsInfo › returns error
expect(received).rejects.toThrow()
Received promise resolved instead of rejected
Resolved to value: "Error"
102 |
103 | test('returns error', async () => {
> 104 | await expect(
| ^
105 | Yelp.searchRestaurantsInfo('q_IoMdeM57U70GwqjXxGJw')
106 | ).rejects.toThrow(TypeError);
107 | });
И вот Yelp. js
import axios from 'axios';
let YELP_API_KEY = process.env.REACT_APP_YELP_API_KEY;
const Yelp = {
// Provides info about a single restaurant
async searchRestaurantsInfo(id) {
try {
let response = await axios.get(
`https://cors-anywhere.herokuapp.com/https://api.yelp.com/v3/businesses/${id}`,
{
headers: {
Authorization: `Bearer ${YELP_API_KEY}`,
'X-Requested-With': 'XMLHttpRequest',
'Access-Control-Allow-Origin': '*',
},
}
);
let responseRew = await axios.get(
`https://cors-anywhere.herokuapp.com/https://api.yelp.com/v3/businesses/${id}/reviews`,
{
headers: {
Authorization: `Bearer ${YELP_API_KEY}`,
'X-Requested-With': 'XMLHttpRequest',
'Access-Control-Allow-Origin': '*',
},
}
);
const parameters = {
name: response.data.name,
address: response.data.location.display_address[0],
coordinates: {
lat: response.data.coordinates.latitude,
lng: response.data.coordinates.longitude,
},
city: response.data.location.display_address[1],
rating: response.data.rating,
photos: response.data.photos,
phone: response.data.phone,
price: response.data.price,
categories: response.data.categories[0].title,
url: response.data.url,
reviews: responseRew.data.reviews,
};
return parameters;
} catch (e) {
console.log(e);
return 'Error';
}
},
}
Я искал решение, и на самом деле то, что я придумал, происходит отсюда: Можете ли вы написать asyn c тесты, ожидающие Throw? но у меня это не работает, и я не понимаю, что делаю неправильно.
Спасибо за вашу помощь!