Skip to content

Commit

Permalink
fix(headers): make headers' params case insensitive
Browse files Browse the repository at this point in the history
  • Loading branch information
aleksandryackovlev committed Feb 17, 2021
1 parent b76bccc commit 370d621
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
43 changes: 43 additions & 0 deletions src/operations/operation.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,49 @@ describe('Operation', () => {
},
});
});

it("should convert header params' names to lower case", () => {
const operationWithParams = new Operation({
method: 'post',
path: '/pet/:petId',
generator,
operation: {
parameters: [
{
name: 'X-Api-Key',
in: 'header',
description: 'api key',
required: true,
schema: {
type: 'string',
},
},
],
},
});

expect(operationWithParams.getParamsSchemas()).toStrictEqual({
header: {
type: 'object',
required: ['x-api-key'],
properties: {
'x-api-key': {
type: 'string',
},
},
},
query: {
type: 'object',
additionalProperties: false,
required: [],
},
path: {
type: 'object',
additionalProperties: false,
required: [],
},
});
});
});

describe('getBodySchema', () => {
Expand Down
19 changes: 17 additions & 2 deletions src/operations/operation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,25 @@ export class Operation {
) {
const prevRequired: string[] = schemas[parameter.in].required || [];

set(schemas, [parameter.in, 'properties', parameter.name], parameter.schema);
set(
schemas,
[
parameter.in,
'properties',
parameter.in === 'header' ? parameter.name.toLowerCase() : parameter.name,
],
parameter.schema
);

if (parameter.required) {
set(schemas, [parameter.in, 'required'], [...prevRequired, parameter.name]);
set(
schemas,
[parameter.in, 'required'],
[
...prevRequired,
parameter.in === 'header' ? parameter.name.toLowerCase() : parameter.name,
]
);
}
}
});
Expand Down

0 comments on commit 370d621

Please sign in to comment.