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