Merge branch 'renovate/all-minor-patch' into 'main'
[ProtonMail-WebClient.git] / packages / testing / lib / mockApiWithServer.ts
blob76f95a4fef425857c887936a5a00c3e001f30622
1 import { jest } from '@jest/globals';
3 function handleResponse(response: Response) {
4     return response.text().then((text) => {
5         const data = text && JSON.parse(text);
7         if (!response.ok) {
8             const error = (data && data.message) || response.statusText;
9             return Promise.reject(error);
10         }
12         return data;
13     });
16 export const mockApiWithServer = jest.fn((config: any) => {
17     const url = new URL(`http://localhost/${config.url}`);
19     if (config.params) {
20         url.search = new URLSearchParams(config.params).toString();
21     }
23     return fetch(url.toString(), {
24         method: config.method,
25     })
26         .then(handleResponse)
27         .catch((ex) => {
28             throw ex;
29         });
30 });