From 64ff8852b1d12e6b5bbdd623219409a8307a151f Mon Sep 17 00:00:00 2001 From: Shelby Sanders Date: Thu, 8 Oct 2020 18:39:29 -0700 Subject: [PATCH] Add showExtentions support for Responses --- src/components/Responses/Response.tsx | 3 ++- src/services/__tests__/models/Response.test.ts | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/Responses/Response.tsx b/src/components/Responses/Response.tsx index 6d1e1a28..bc6ece8b 100644 --- a/src/components/Responses/Response.tsx +++ b/src/components/Responses/Response.tsx @@ -16,7 +16,8 @@ export class ResponseView extends React.Component<{ response: ResponseModel }> { const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined); - const empty = Object.keys(extensions).length === 0 && headers.length === 0 && mimes.length === 0 && !description; + const empty = (!extensions || Object.keys(extensions).length === 0) && + headers.length === 0 && mimes.length === 0 && !description; return (
diff --git a/src/services/__tests__/models/Response.test.ts b/src/services/__tests__/models/Response.test.ts index ebb836c0..7902293c 100644 --- a/src/services/__tests__/models/Response.test.ts +++ b/src/services/__tests__/models/Response.test.ts @@ -39,5 +39,12 @@ describe('Models', () => { const resp = new ResponseModel({ ...props, code: 'default', defaultAsError: true }); expect(resp.type).toEqual('error'); }); + + test('should be error if showExtensions is true', () => { + const options = new RedocNormalizedOptions({ showExtensions: true }); + const resp = new ResponseModel(parser, 'default', true, { 'x-example': {a: 1} } as any, options); + expect(Object.keys(resp.extensions).length).toEqual(1); + expect(resp.extensions['x-example']).toEqual({a: 1}); + }); }); });