mirror of
https://github.com/Redocly/redoc.git
synced 2024-11-25 18:13:44 +03:00
fix: nested items with refs (#2035)
This commit is contained in:
parent
a366de4cf6
commit
51127aadc3
|
@ -13,7 +13,7 @@ export interface OAuthFlowProps {
|
||||||
export function OAuthFlowComponent(props: OAuthFlowProps) {
|
export function OAuthFlowComponent(props: OAuthFlowProps) {
|
||||||
const { type, flow, RequiredScopes } = props;
|
const { type, flow, RequiredScopes } = props;
|
||||||
const scopesNames = Object.keys(flow?.scopes || {});
|
const scopesNames = Object.keys(flow?.scopes || {});
|
||||||
console.log('rended');
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<SecurityRow>
|
<SecurityRow>
|
||||||
|
|
|
@ -207,6 +207,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -465,6 +474,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -698,6 +716,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -998,6 +1025,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -1256,6 +1292,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -1489,6 +1534,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -1745,6 +1799,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -2042,6 +2105,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -2300,6 +2372,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
@ -2533,6 +2614,15 @@ exports[`Components SchemaView discriminator should correctly render SchemaView
|
||||||
},
|
},
|
||||||
"rightPanel": Object {
|
"rightPanel": Object {
|
||||||
"backgroundColor": "#263238",
|
"backgroundColor": "#263238",
|
||||||
|
"servers": Object {
|
||||||
|
"overlay": Object {
|
||||||
|
"backgroundColor": "#fafafa",
|
||||||
|
"textColor": "#263238",
|
||||||
|
},
|
||||||
|
"url": Object {
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
},
|
||||||
|
},
|
||||||
"textColor": "#ffffff",
|
"textColor": "#ffffff",
|
||||||
"width": "40%",
|
"width": "40%",
|
||||||
},
|
},
|
||||||
|
|
|
@ -133,6 +133,13 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Case6": {
|
||||||
|
"type": "array",
|
||||||
|
"minItems": 1,
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/Tag"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Cat": {
|
"Cat": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -148,6 +155,29 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Tag": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"description": "Tag ID",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/Id"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "tag name",
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Id": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int64",
|
||||||
|
"readOnly": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,6 +133,13 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Case6": {
|
||||||
|
"type": "array",
|
||||||
|
"minItems": 1,
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/Tag"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Cat": {
|
"Cat": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -148,6 +155,29 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Tag": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"description": "Tag ID",
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/Id"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "tag name",
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Id": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int64",
|
||||||
|
"readOnly": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,6 +212,22 @@ describe('Models', () => {
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
test.each(eachArray)(
|
||||||
|
'schemaDefinition should resolve prefixItems with additional array items',
|
||||||
|
specFixture => {
|
||||||
|
const spec = require(specFixture);
|
||||||
|
const parser = new OpenAPIParser(spec, undefined, opts);
|
||||||
|
const schema = new SchemaModel(parser, spec.components.schemas.Case6, '', opts);
|
||||||
|
expect(schema.type).toBe('array');
|
||||||
|
expect(schema.typePrefix).toBe('Array of ');
|
||||||
|
expect(schema.items?.fields).toHaveLength(2);
|
||||||
|
expect(schema.items?.pointer).toEqual('#/components/schemas/Tag');
|
||||||
|
expect(schema.isPrimitive).toBe(false);
|
||||||
|
expect(schema.items?.isPrimitive).toBe(false);
|
||||||
|
expect(schema.minItems).toBe(1);
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -209,7 +209,8 @@ export class SchemaModel {
|
||||||
this.displayFormat = this.items?.format || '';
|
this.displayFormat = this.items?.format || '';
|
||||||
this.typePrefix = this.items?.typePrefix || '' + l('arrayOf');
|
this.typePrefix = this.items?.typePrefix || '' + l('arrayOf');
|
||||||
this.title = this.title || this.items?.title || '';
|
this.title = this.title || this.items?.title || '';
|
||||||
this.isPrimitive = this.items?.isPrimitive || this.isPrimitive;
|
this.isPrimitive =
|
||||||
|
this.items?.isPrimitive !== undefined ? this.items?.isPrimitive : this.isPrimitive;
|
||||||
|
|
||||||
if (this.example === undefined && this.items?.example !== undefined) {
|
if (this.example === undefined && this.items?.example !== undefined) {
|
||||||
this.example = [this.items.example];
|
this.example = [this.items.example];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user