diff --git a/packages/mock-addon/src/utils/faker.js b/packages/mock-addon/src/utils/faker.js index 9c27c66..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 } = 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))); + resolve( + CustomResponse( + url, + status, + response(request), + responseHeaders + ) + ); } else { - resolve(CustomResponse(url, status, response)); + 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 2287f0b..338225b 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,6 +14,7 @@ export function CustomResponse(url, status, responseText) { statusText: statusTextMap[status.toString()], headers: new Headers({ ...defaultResponseHeaders, + ...headers, }), 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) =>