// Mocking the global.fetch and global.Headers global.fetch = jest.fn(); global.Headers = jest.fn(); // Helper to mock a success JSON response. fetch.mockResponseSuccessJSON = (body) => { fetch.mockImplementationOnce(() => Promise.resolve({ json: () => Promise.resolve(JSON.parse(body)), ok: true, status: 200, statusText: 'OK', }), ); }; // Helper to mock a success text response. fetch.mockResponseSuccessText = (body) => { fetch.mockImplementationOnce(() => Promise.resolve({ text: () => Promise.resolve(body), ok: true, status: 200, statusText: 'OK', }), ); }; // Helper to mock a failure response. fetch.mockResponseFailure = () => { fetch.mockImplementationOnce(() => Promise.resolve({ status: 500, statusText: 'Internal Error', }), ); }; fetch.mockResponseCrash = () => { fetch.mockImplementationOnce(() => // eslint-disable-next-line prefer-promise-reject-errors Promise.reject({ status: 500, statusText: 'Internal Error', }), ); }; // Helper to mock a timeout response. fetch.mockResponseTimeout = () => { fetch.mockImplementationOnce(() => { const timeout = 1000; return new Promise((resolve) => { setTimeout(() => setTimeout(resolve, timeout), timeout); }); }); };