From 705fc59ffb645b5f866a80719e11f3ed5ce4b7e2 Mon Sep 17 00:00:00 2001 From: Julien COLLARD Date: Fri, 12 Jan 2024 11:26:32 +0100 Subject: [PATCH 1/2] add response headers support --- packages/mock-addon/src/utils/faker.js | 6 +++--- packages/mock-addon/src/utils/response.js | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/mock-addon/src/utils/faker.js b/packages/mock-addon/src/utils/faker.js index 9c27c66..19be453 100644 --- a/packages/mock-addon/src/utils/faker.js +++ b/packages/mock-addon/src/utils/faker.js @@ -134,16 +134,16 @@ export class Faker { return global.realFetch(input, options); } - const { response, status, delay = 0 } = matched; + const { response, status, delay = 0, headers = {} } = matched; let mockResponseSent = false; return new Promise((resolve, reject) => { const timeoutId = setTimeout(() => { if (typeof response === 'function') { - resolve(CustomResponse(url, status, response(request))); + resolve(CustomResponse(url, status, response(request), headers)); } else { - resolve(CustomResponse(url, status, response)); + resolve(CustomResponse(url, status, response, headers)); } mockResponseSent = true; diff --git a/packages/mock-addon/src/utils/response.js b/packages/mock-addon/src/utils/response.js index 2287f0b..a3ea0fe 100644 --- a/packages/mock-addon/src/utils/response.js +++ b/packages/mock-addon/src/utils/response.js @@ -2,7 +2,7 @@ import 'whatwg-fetch'; import statusTextMap from './statusMap'; import { defaultResponseHeaders } from './headers'; -export function CustomResponse(url, status, responseText) { +export function CustomResponse(url, status, responseText, headers) { const text = typeof responseText === 'string' ? responseText @@ -14,7 +14,8 @@ export function CustomResponse(url, status, responseText) { statusText: statusTextMap[status.toString()], headers: new Headers({ ...defaultResponseHeaders, + ...headers }), - url, + url }); } From c39e86a24c0cec51f72ce3c28ca523221317283e Mon Sep 17 00:00:00 2001 From: Julien COLLARD Date: Fri, 12 Jan 2024 17:43:02 +0100 Subject: [PATCH 2/2] add HEAD as valid method for mocking request --- packages/mock-addon/src/utils/faker.js | 15 ++++++++++++--- packages/mock-addon/src/utils/response.js | 4 ++-- packages/mock-addon/src/utils/validator.js | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/mock-addon/src/utils/faker.js b/packages/mock-addon/src/utils/faker.js index 19be453..ad760b9 100644 --- a/packages/mock-addon/src/utils/faker.js +++ b/packages/mock-addon/src/utils/faker.js @@ -134,16 +134,25 @@ export class Faker { return global.realFetch(input, options); } - const { response, status, delay = 0, headers = {} } = matched; + const { response, status, delay = 0, responseHeaders = {} } = matched; let mockResponseSent = false; return new Promise((resolve, reject) => { const timeoutId = setTimeout(() => { if (typeof response === 'function') { - resolve(CustomResponse(url, status, response(request), headers)); + resolve( + CustomResponse( + url, + status, + response(request), + responseHeaders + ) + ); } else { - resolve(CustomResponse(url, status, response, headers)); + resolve( + CustomResponse(url, status, response, responseHeaders) + ); } mockResponseSent = true; diff --git a/packages/mock-addon/src/utils/response.js b/packages/mock-addon/src/utils/response.js index a3ea0fe..338225b 100644 --- a/packages/mock-addon/src/utils/response.js +++ b/packages/mock-addon/src/utils/response.js @@ -14,8 +14,8 @@ export function CustomResponse(url, status, responseText, headers) { statusText: statusTextMap[status.toString()], headers: new Headers({ ...defaultResponseHeaders, - ...headers + ...headers, }), - url + url, }); } diff --git a/packages/mock-addon/src/utils/validator.js b/packages/mock-addon/src/utils/validator.js index 3e0be46..c65fe4c 100644 --- a/packages/mock-addon/src/utils/validator.js +++ b/packages/mock-addon/src/utils/validator.js @@ -1,6 +1,6 @@ import statusTextMap from '../utils/statusMap'; -const methods = ['GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'OPTIONS']; +const methods = ['GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD']; const statusCodes = Object.keys(statusTextMap); const isObject = (value) =>