I'm currently receiving an error in my testing:
12 | const response = await axios.get('http://mock-api-call/weather/get-weather');
13 |
> 14 | setWeather(response.data.result.weather);
| ^
15 | };
16 |
17 | useEffect(() => {
The error is referencing my api call in component. Originally I was getting a error message from React to wrap my tests in an act function which I've followed it's prompts with, but don't know whether I've followed it correctly although all the tests are working I would like to know if I've used act incorrectly of whether this is a React 18 issue. Here are some tests examples:
jest.mock('axios');
const mockedAxios = axios as jest.Mocked<typeof axios>;
describe('Return Weather Component Data', () => {
beforeEach(() => {
mockedAxios.get.mockResolvedValue({
data: {
result: {
weather: {
forcast: 'Sunny',
max: 28,
min: 17,
description: 'Clear skys all day with a warm summber breaze ariving in the afternoon',
},
},
},
});
});
test('should return description', async () => {
await act(async () => {
const { getByText } = render(<WeatherComponent />);
waitFor(() => {
expect(
getByText('Clear skys all day with a warm summber breaze ariving in the afternoon'),
).toBeInTheDocument();
});
});
});
test('should return forcast', async () => {
await act(async () => {
const { getByText } = render(<WeatherComponent />);
waitFor(() => {
expect(getByText(/Sunny/i)).toBeInTheDocument();
});
});
});
test('should return temp', async () => {
await act(async () => {
const { getByText } = render(<WeatherComponent />);
waitFor(() => {
expect(getByText(/Sunny with a low of 17 and a high of 28/i)).toBeInTheDocument();
});
});
});
});
error message:
Warning: The current testing environment is not configured to support act(...)