Асинхронное тестирование с помощью Fetch API в Jest

  1. Использование синтаксиса async/await:

    test('example test', async () => {
     const response = await fetch('https://api.example.com/data');
     const data = await response.json();
     expect(data).toEqual(/* expected value */);
    });
  2. Использование обещаний:

    test('example test', () => {
     return fetch('https://api.example.com/data')
       .then(response => response.json())
       .then(data => {
         expect(data).toEqual(/* expected value */);
       });
    });
  3. Использование asyncи done:

    test('example test', (done) => {
     fetch('https://api.example.com/data')
       .then(response => response.json())
       .then(data => {
         expect(data).toEqual(/* expected value */);
         done();
       })
       .catch(error => {
         done.fail(error);
       });
    });
  4. Использование async/awaitс resolves:

    test('example test', async () => {
     await expect(fetch('https://api.example.com/data')).resolves.toEqual(/* expected value */);
    });
  5. Использование async/awaitс rejects:

    test('example test', async () => {
     await expect(fetch('https://api.example.com/data')).rejects.toThrow(/* expected error */);
    });