JavaScript Q&A Logo
JavaScript Q&A Part of the Q&A Topic Learning Network
Real Questions. Clear Answers.
Ask any question about JavaScript here... and get an instant response.
Q&A Balloon Q&A Logo
Post this Question & Answer:

How do I mock a fetch call with Jest to test async functions in JavaScript?

Asked on Dec 09, 2025

Answer

To mock a fetch call with Jest for testing async functions, you can use Jest's built-in mocking capabilities to simulate the fetch API. This allows you to control the responses and test how your code handles them.
<!-- BEGIN COPY / PASTE -->
        // Example async function using fetch
        async function fetchData(url) {
            const response = await fetch(url);
            if (!response.ok) {
                throw new Error('Network response was not ok');
            }
            return response.json();
        }

        // Jest test with fetch mock
        test('fetchData returns data when fetch is successful', async () => {
            const mockData = { data: '12345' };
            
            // Mock fetch to resolve with a successful response
            global.fetch = jest.fn(() =>
                Promise.resolve({
                    ok: true,
                    json: () => Promise.resolve(mockData),
                })
            );

            const data = await fetchData('https://api.example.com/data');
            expect(data).toEqual(mockData);
            expect(global.fetch).toHaveBeenCalledWith('https://api.example.com/data');
        });

        test('fetchData throws an error when fetch fails', async () => {
            // Mock fetch to resolve with a failed response
            global.fetch = jest.fn(() =>
                Promise.resolve({
                    ok: false,
                })
            );

            await expect(fetchData('https://api.example.com/data')).rejects.toThrow('Network response was not ok');
            expect(global.fetch).toHaveBeenCalledWith('https://api.example.com/data');
        });
        <!-- END COPY / PASTE -->
Additional Comment:
  • The "fetchData" function uses the fetch API to retrieve data from a URL and returns the JSON response.
  • In the first test, "global.fetch" is mocked to return a successful response with mock data.
  • In the second test, "global.fetch" is mocked to simulate a failed fetch response.
  • "jest.fn()" is used to create a mock function for "fetch".
  • Use "expect(...).toEqual(...)" to check if the returned data matches the mock data.
  • Use "expect(...).rejects.toThrow(...)" to test if the function throws an error as expected.
✅ Answered with JavaScript best practices.
← Back to All Questions

Q&A Network
Real Questions. Clear Answers.
JavaScript
Ask Questions / Get Answers about JavaScript!
AI Marketing
Ask Questions / Get Answers about AI Marketing!
Graphic Design
Ask Questions / Get Answers about Graphic Design!
AI Coding
Ask Questions / Get Answers about AI Coding!
AI Video
Ask Questions / Get Answers about AI Video!
Web Development
Ask Questions / Get Answers about Web Development!
Nursing
Ask Questions / Get Answers about Nursing!
Robotics
Ask Questions / Get Answers about Robotics!
Business Finance
Ask Questions / Get Answers about Business Finance!
Digital Burnout
Ask Questions / Get Answers about Digital Burnout!
AI Images
Ask Questions / Get Answers about AI Images!
Web Languages
Ask Questions / Get Answers about Web Languages!
Motion Graphics
Ask Questions / Get Answers about Motion Graphics!
Social Media Psychology
Ask Questions / Get Answers about Social Media Psychology!
AI Design
Ask Questions / Get Answers about AI Design!
AI Ethics
Ask Questions / Get Answers about AI Ethics!
Monetization
Ask Questions / Get Answers about Ad & Monetization!
Photography
Ask Questions / Get Answers about Photography!
Illustration
Ask Questions / Get Answers about Illustration!
Performance
Ask Questions / Get Answers about Web Vitals!
Film Production
Ask Questions / Get Answers about Film Production!
Web Hosting
Ask Questions / Get Answers about Hosting!
AI Education
Ask Questions / Get Answers about AI Education!
MobileDev
Ask Questions / Get Answers about Mobile Developement!
AI Business
Ask Questions / Get Answers about AI Business!
IoT
Ask Questions / Get Answers about IoT!
Cloud Computing
Ask Questions / Get Answers about Cloud Computing!
HTML
Ask Questions / Get Answers about HTML!
Analytics
Ask Questions / Get Answers about Analytics!
Animation
Ask Questions / Get Answers about Animation!
UI/UX Design
Ask Questions / Get Answers about UI/UX Design!
AI Writing
Ask Questions / Get Answers about AI Writing!
Video Editing
Ask Questions / Get Answers about Video Editing!
Tailwind
Ask Questions / Get Answers about Tailwind!
Quantum
Ask Questions / Get Answers about Quantum Computing!
WordPress
Ask Questions / Get Answers about WordPress!
Cybersecurity
Ask Questions / Get Answers about Cybersecurity!
Data Science
Ask Questions / Get Answers about Data Science!
Sound Design
Ask Questions / Get Answers about Sound Design!
Bootstrap
Ask Questions / Get Answers about Bootstrap!
Chatbots
Ask Questions / Get Answers about Chatbots!
DevOps
Ask Questions / Get Answers about DevOps!
AI Audio
Ask Questions / Get Answers about AI Audio!
SEO
Ask Questions / Get Answers about SEO!
Creative Writing
Ask Questions / Get Answers about Creative Writing!
Security
Ask Questions / Get Answers about Website Security!
CSS
Ask Questions / Get Answers about CSS!
3D Design
Ask Questions / Get Answers about 3D Design!
VR & AR
Ask Questions / Get Answers about VR & AR!
AI
Ask Questions / Get Answers about AI!
Podcasting
Ask Questions / Get Answers about Podcasting!
Networking
Ask Questions / Get Answers about Networking!