0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-28 00:17:06 +01:00
wagtail/client/tests/mock-fetch.js
2024-02-14 15:04:17 +00:00

59 lines
1.3 KiB
JavaScript

// 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);
});
});
};