Merge branch 'master' into oas-301-support

This commit is contained in:
kyle
2017-12-07 17:43:33 -08:00
committed by GitHub
15 changed files with 78 additions and 29 deletions

View File

@@ -12,11 +12,12 @@ export default class ArrayModel extends Component {
name: PropTypes.string, name: PropTypes.string,
required: PropTypes.bool, required: PropTypes.bool,
expandDepth: PropTypes.number, expandDepth: PropTypes.number,
specPath: PropTypes.array.isRequired,
depth: PropTypes.number depth: PropTypes.number
} }
render(){ render(){
let { getComponent, getConfigs, schema, depth, expandDepth, name } = this.props let { getComponent, getConfigs, schema, depth, expandDepth, name, specPath } = this.props
let description = schema.get("description") let description = schema.get("description")
let items = schema.get("items") let items = schema.get("items")
let title = schema.get("title") || name let title = schema.get("title") || name
@@ -47,7 +48,7 @@ export default class ArrayModel extends Component {
!description ? null : !description ? null :
<Markdown source={ description } /> <Markdown source={ description } />
} }
<span><Model { ...this.props } getConfigs={ getConfigs } name={null} schema={ items } required={ false } depth={ depth + 1 } /></span> <span><Model { ...this.props } getConfigs={ getConfigs } specPath={[...specPath, "items"]} name={null} schema={ items } required={ false } depth={ depth + 1 } /></span>
] ]
</ModelCollapse> </ModelCollapse>
</span> </span>

View File

@@ -8,7 +8,8 @@ export default class ModelExample extends React.Component {
schema: PropTypes.object.isRequired, schema: PropTypes.object.isRequired,
example: PropTypes.any.isRequired, example: PropTypes.any.isRequired,
isExecute: PropTypes.bool, isExecute: PropTypes.bool,
getConfigs: PropTypes.func.isRequired getConfigs: PropTypes.func.isRequired,
specPath: PropTypes.array.isRequired,
} }
constructor(props, context) { constructor(props, context) {
@@ -32,7 +33,7 @@ export default class ModelExample extends React.Component {
} }
render() { render() {
let { getComponent, specSelectors, schema, example, isExecute, getConfigs } = this.props let { getComponent, specSelectors, schema, example, isExecute, getConfigs, specPath } = this.props
let { defaultModelExpandDepth } = getConfigs() let { defaultModelExpandDepth } = getConfigs()
const ModelWrapper = getComponent("ModelWrapper") const ModelWrapper = getComponent("ModelWrapper")
@@ -54,7 +55,8 @@ export default class ModelExample extends React.Component {
getComponent={ getComponent } getComponent={ getComponent }
getConfigs={ getConfigs } getConfigs={ getConfigs }
specSelectors={ specSelectors } specSelectors={ specSelectors }
expandDepth={ defaultModelExpandDepth } /> expandDepth={ defaultModelExpandDepth }
specPath={specPath} />
} }

View File

@@ -12,7 +12,8 @@ export default class Model extends PureComponent {
isRef: PropTypes.bool, isRef: PropTypes.bool,
required: PropTypes.bool, required: PropTypes.bool,
expandDepth: PropTypes.number, expandDepth: PropTypes.number,
depth: PropTypes.number depth: PropTypes.number,
specPath: PropTypes.array.isRequired,
} }
getModelName =( ref )=> { getModelName =( ref )=> {
@@ -31,7 +32,7 @@ export default class Model extends PureComponent {
} }
render () { render () {
let { getComponent, getConfigs, specSelectors, schema, required, name, isRef } = this.props let { getComponent, getConfigs, specSelectors, schema, required, name, isRef, specPath } = this.props
const ObjectModel = getComponent("ObjectModel") const ObjectModel = getComponent("ObjectModel")
const ArrayModel = getComponent("ArrayModel") const ArrayModel = getComponent("ArrayModel")
const PrimitiveModel = getComponent("PrimitiveModel") const PrimitiveModel = getComponent("PrimitiveModel")
@@ -55,6 +56,7 @@ export default class Model extends PureComponent {
case "object": case "object":
return <ObjectModel return <ObjectModel
className="object" { ...this.props } className="object" { ...this.props }
specPath={specPath}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ schema } schema={ schema }
name={ name } name={ name }

View File

@@ -15,6 +15,7 @@ export default class Models extends Component {
let definitions = specSelectors.definitions() let definitions = specSelectors.definitions()
let { docExpansion, defaultModelExpandDepth } = getConfigs() let { docExpansion, defaultModelExpandDepth } = getConfigs()
let showModels = layoutSelectors.isShown("models", docExpansion === "full" || docExpansion === "list" ) let showModels = layoutSelectors.isShown("models", docExpansion === "full" || docExpansion === "list" )
const specPathBase = specSelectors.isOAS3() ? ["components", "schemas"] : ["definitions"]
const ModelWrapper = getComponent("ModelWrapper") const ModelWrapper = getComponent("ModelWrapper")
const Collapse = getComponent("Collapse") const Collapse = getComponent("Collapse")
@@ -35,6 +36,7 @@ export default class Models extends Component {
<ModelWrapper name={ name } <ModelWrapper name={ name }
expandDepth={ defaultModelExpandDepth } expandDepth={ defaultModelExpandDepth }
schema={ model } schema={ model }
specPath={[...specPathBase, name]}
getComponent={ getComponent } getComponent={ getComponent }
getConfigs={ getConfigs } getConfigs={ getConfigs }
specSelectors={ specSelectors }/> specSelectors={ specSelectors }/>

View File

@@ -14,13 +14,15 @@ export default class ObjectModel extends Component {
name: PropTypes.string, name: PropTypes.string,
isRef: PropTypes.bool, isRef: PropTypes.bool,
expandDepth: PropTypes.number, expandDepth: PropTypes.number,
depth: PropTypes.number depth: PropTypes.number,
specPath: PropTypes.object.isRequired
} }
render(){ render(){
let { schema, name, isRef, getComponent, getConfigs, depth, expandDepth, ...otherProps } = this.props let { schema, name, isRef, getComponent, getConfigs, depth, specPath, expandDepth, ...otherProps } = this.props
let { specSelectors } = otherProps let { specSelectors } = otherProps
let { isOAS3 } = specSelectors
const { isOAS3 } = specSelectors
if(!schema) { if(!schema) {
return null return null
@@ -39,14 +41,13 @@ export default class ObjectModel extends Component {
const Model = getComponent("Model") const Model = getComponent("Model")
const ModelCollapse = getComponent("ModelCollapse") const ModelCollapse = getComponent("ModelCollapse")
const JumpToPathSection = ({ name }) => { const JumpToPathSection = () => {
const path = isOAS3 && isOAS3() ? `components.schemas.${name}` : `definitions.${name}` return <span className="model-jump-to-path"><JumpToPath specPath={specPath} /></span>
return <span className="model-jump-to-path"><JumpToPath path={path} /></span>
} }
const collapsedContent = (<span> const collapsedContent = (<span>
<span>{ braceOpen }</span>...<span>{ braceClose }</span> <span>{ braceOpen }</span>...<span>{ braceClose }</span>
{ {
isRef ? <JumpToPathSection name={ name }/> : "" isRef ? <JumpToPathSection /> : ""
} }
</span>) </span>)
@@ -63,7 +64,7 @@ export default class ObjectModel extends Component {
<ModelCollapse title={titleEl} collapsed={ depth > expandDepth } collapsedContent={ collapsedContent }> <ModelCollapse title={titleEl} collapsed={ depth > expandDepth } collapsedContent={ collapsedContent }>
<span className="brace-open object">{ braceOpen }</span> <span className="brace-open object">{ braceOpen }</span>
{ {
!isRef ? null : <JumpToPathSection name={ name }/> !isRef ? null : <JumpToPathSection />
} }
<span className="inner-object"> <span className="inner-object">
{ {
@@ -94,6 +95,7 @@ export default class ObjectModel extends Component {
<Model key={ `object-${name}-${key}_${value}` } { ...otherProps } <Model key={ `object-${name}-${key}_${value}` } { ...otherProps }
required={ isRequired } required={ isRequired }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, "properties", key]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ value } schema={ value }
depth={ depth + 1 } /> depth={ depth + 1 } />
@@ -132,6 +134,7 @@ export default class ObjectModel extends Component {
<td> <td>
<Model { ...otherProps } required={ false } <Model { ...otherProps } required={ false }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, "additionalProperties"]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ additionalProperties } schema={ additionalProperties }
depth={ depth + 1 } /> depth={ depth + 1 } />
@@ -146,6 +149,7 @@ export default class ObjectModel extends Component {
{anyOf.map((schema, k) => { {anyOf.map((schema, k) => {
return <div key={k}><Model { ...otherProps } required={ false } return <div key={k}><Model { ...otherProps } required={ false }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, "anyOf", k]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ schema } schema={ schema }
depth={ depth + 1 } /></div> depth={ depth + 1 } /></div>
@@ -161,6 +165,7 @@ export default class ObjectModel extends Component {
{oneOf.map((schema, k) => { {oneOf.map((schema, k) => {
return <div key={k}><Model { ...otherProps } required={ false } return <div key={k}><Model { ...otherProps } required={ false }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, "oneOf", k]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ schema } schema={ schema }
depth={ depth + 1 } /></div> depth={ depth + 1 } /></div>
@@ -177,6 +182,7 @@ export default class ObjectModel extends Component {
<Model { ...otherProps } <Model { ...otherProps }
required={ false } required={ false }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, "not"]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
schema={ not } schema={ not }
depth={ depth + 1 } /> depth={ depth + 1 } />

View File

@@ -6,6 +6,7 @@ import { Iterable } from "immutable"
export default class Operation extends PureComponent { export default class Operation extends PureComponent {
static propTypes = { static propTypes = {
specPath: PropTypes.array.isRequired,
operation: PropTypes.instanceOf(Iterable).isRequired, operation: PropTypes.instanceOf(Iterable).isRequired,
response: PropTypes.instanceOf(Iterable), response: PropTypes.instanceOf(Iterable),
request: PropTypes.instanceOf(Iterable), request: PropTypes.instanceOf(Iterable),
@@ -36,6 +37,7 @@ export default class Operation extends PureComponent {
render() { render() {
let { let {
specPath,
response, response,
request, request,
toggleShown, toggleShown,
@@ -57,7 +59,6 @@ export default class Operation extends PureComponent {
let { let {
isShown, isShown,
isAuthorized, isAuthorized,
jumpToKey,
path, path,
method, method,
op, op,
@@ -112,8 +113,10 @@ export default class Operation extends PureComponent {
let onChangeKey = [ path, method ] // Used to add values to _this_ operation ( indexed by path and method ) let onChangeKey = [ path, method ] // Used to add values to _this_ operation ( indexed by path and method )
return ( return (
<div className={`opblock-summary opblock-summary-${method}`} onClick={toggleShown} >
{/*TODO: convert this into a component, that can be wrapped
and pulled in with getComponent */}
<div className={deprecated ? "opblock opblock-deprecated" : isShown ? `opblock opblock-${method} is-open` : `opblock opblock-${method}`} id={isShownKey.join("-")} > <div className={deprecated ? "opblock opblock-deprecated" : isShown ? `opblock opblock-${method} is-open` : `opblock opblock-${method}`} id={isShownKey.join("-")} >
<div className={`opblock-summary opblock-summary-${method}`} onClick={toggleShown} >
<span className="opblock-summary-method">{method.toUpperCase()}</span> <span className="opblock-summary-method">{method.toUpperCase()}</span>
<span className={ deprecated ? "opblock-summary-path__deprecated" : "opblock-summary-path" } > <span className={ deprecated ? "opblock-summary-path__deprecated" : "opblock-summary-path" } >
<a <a
@@ -122,7 +125,7 @@ export default class Operation extends PureComponent {
href={isDeepLinkingEnabled ? `#/${isShownKey.join("/")}` : null}> href={isDeepLinkingEnabled ? `#/${isShownKey.join("/")}` : null}>
<span>{path}</span> <span>{path}</span>
</a> </a>
<JumpToPath path={jumpToKey} /> <JumpToPath path={specPath} /> {/*TODO: use wrapComponents here, swagger-ui doesn't care about jumpToPath */}
</span> </span>
{ !showSummary ? null : { !showSummary ? null :
@@ -170,6 +173,7 @@ export default class Operation extends PureComponent {
<Parameters <Parameters
parameters={parameters} parameters={parameters}
specPath={[...specPath, "parameters"]}
operation={operation} operation={operation}
onChangeKey={onChangeKey} onChangeKey={onChangeKey}
onTryoutClick = { onTryoutClick } onTryoutClick = { onTryoutClick }
@@ -243,6 +247,7 @@ export default class Operation extends PureComponent {
specActions={ specActions } specActions={ specActions }
produces={ produces } produces={ produces }
producesValue={ operation.get("produces_value") } producesValue={ operation.get("produces_value") }
specPath={[...specPath, "responses"]}
path={ path } path={ path }
method={ method } method={ method }
displayRequestDuration={ displayRequestDuration } displayRequestDuration={ displayRequestDuration }

View File

@@ -119,6 +119,8 @@ export default class Operations extends React.Component {
operations.map( op => { operations.map( op => {
const path = op.get("path") const path = op.get("path")
const method = op.get("method") const method = op.get("method")
const specPath = ["paths", path, method]
// FIXME: (someday) this logic should probably be in a selector, // FIXME: (someday) this logic should probably be in a selector,
// but doing so would require further opening up // but doing so would require further opening up
@@ -134,6 +136,7 @@ export default class Operations extends React.Component {
return <OperationContainer return <OperationContainer
key={`${path}-${method}`} key={`${path}-${method}`}
specPath={specPath}
op={op} op={op}
path={path} path={path}
method={method} method={method}

View File

@@ -14,7 +14,8 @@ export default class ParameterRow extends Component {
onChangeConsumes: PropTypes.func.isRequired, onChangeConsumes: PropTypes.func.isRequired,
specSelectors: PropTypes.object.isRequired, specSelectors: PropTypes.object.isRequired,
pathMethod: PropTypes.array.isRequired, pathMethod: PropTypes.array.isRequired,
getConfigs: PropTypes.func.isRequired getConfigs: PropTypes.func.isRequired,
specPath: PropTypes.array.isRequired,
} }
constructor(props, context) { constructor(props, context) {
@@ -69,7 +70,7 @@ export default class ParameterRow extends Component {
} }
render() { render() {
let {param, onChange, getComponent, getConfigs, isExecute, fn, onChangeConsumes, specSelectors, pathMethod} = this.props let {param, onChange, getComponent, getConfigs, isExecute, fn, onChangeConsumes, specSelectors, pathMethod, specPath} = this.props
let { isOAS3 } = specSelectors let { isOAS3 } = specSelectors
@@ -138,6 +139,7 @@ export default class ParameterRow extends Component {
{ {
bodyParam && schema ? <ModelExample getComponent={ getComponent } bodyParam && schema ? <ModelExample getComponent={ getComponent }
specPath={[...specPath, "schema"]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
isExecute={ isExecute } isExecute={ isExecute }
specSelectors={ specSelectors } specSelectors={ specSelectors }

View File

@@ -20,7 +20,8 @@ export default class Parameters extends Component {
onCancelClick: PropTypes.func, onCancelClick: PropTypes.func,
onChangeKey: PropTypes.array, onChangeKey: PropTypes.array,
pathMethod: PropTypes.array.isRequired, pathMethod: PropTypes.array.isRequired,
getConfigs: PropTypes.func.isRequired getConfigs: PropTypes.func.isRequired,
specPath: PropTypes.array.isRequired,
} }
@@ -30,6 +31,7 @@ export default class Parameters extends Component {
tryItOutEnabled: false, tryItOutEnabled: false,
allowTryItOut: true, allowTryItOut: true,
onChangeKey: [], onChangeKey: [],
specPath: [],
} }
onChange = ( param, value, isXml ) => { onChange = ( param, value, isXml ) => {
@@ -58,6 +60,7 @@ export default class Parameters extends Component {
parameters, parameters,
allowTryItOut, allowTryItOut,
tryItOutEnabled, tryItOutEnabled,
specPath,
fn, fn,
getComponent, getComponent,
@@ -92,8 +95,10 @@ export default class Parameters extends Component {
</thead> </thead>
<tbody> <tbody>
{ {
eachMap(parameters, (parameter) => ( eachMap(parameters, (parameter, i) => (
<ParameterRow fn={ fn } <ParameterRow
fn={ fn }
specPath={[...specPath, i]}
getComponent={ getComponent } getComponent={ getComponent }
getConfigs={ getConfigs } getConfigs={ getConfigs }
param={ parameter } param={ parameter }

View File

@@ -47,6 +47,7 @@ export default class Response extends React.Component {
getComponent: PropTypes.func.isRequired, getComponent: PropTypes.func.isRequired,
getConfigs: PropTypes.func.isRequired, getConfigs: PropTypes.func.isRequired,
specSelectors: PropTypes.object.isRequired, specSelectors: PropTypes.object.isRequired,
specPath: PropTypes.array.isRequired,
fn: PropTypes.object.isRequired, fn: PropTypes.object.isRequired,
contentType: PropTypes.string, contentType: PropTypes.string,
controlsAcceptHeader: PropTypes.bool, controlsAcceptHeader: PropTypes.bool,
@@ -72,6 +73,7 @@ export default class Response extends React.Component {
code, code,
response, response,
className, className,
specPath,
fn, fn,
getComponent, getComponent,
getConfigs, getConfigs,
@@ -94,16 +96,19 @@ export default class Response extends React.Component {
const ContentType = getComponent("contentType") const ContentType = getComponent("contentType")
var sampleResponse var sampleResponse
var schema var schema, specPathWithPossibleSchema
if(isOAS3()) { if(isOAS3()) {
let oas3SchemaForContentType = response.getIn(["content", this.state.responseContentType, "schema"]) const schemaPath = ["content", this.state.responseContentType, "schema"]
const oas3SchemaForContentType = response.getIn(schemaPath)
sampleResponse = oas3SchemaForContentType ? getSampleSchema(oas3SchemaForContentType.toJS(), this.state.responseContentType, { sampleResponse = oas3SchemaForContentType ? getSampleSchema(oas3SchemaForContentType.toJS(), this.state.responseContentType, {
includeReadOnly: true includeReadOnly: true
}) : null }) : null
schema = oas3SchemaForContentType ? inferSchema(oas3SchemaForContentType.toJS()) : null schema = oas3SchemaForContentType ? inferSchema(oas3SchemaForContentType.toJS()) : null
specPathWithPossibleSchema = oas3SchemaForContentType ? schemaPath : specPath
} else { } else {
schema = inferSchema(response.toJS()) schema = inferSchema(response.toJS()) // TODO: don't convert back and forth. Lets just stick with immutable for inferSchema
specPathWithPossibleSchema = response.has("schema") ? [...specPath, "schema"] : specPath
sampleResponse = schema ? getSampleSchema(schema, contentType, { sampleResponse = schema ? getSampleSchema(schema, contentType, {
includeReadOnly: true, includeReadOnly: true,
includeWriteOnly: true // writeOnly has no filtering effect in swagger 2.0 includeWriteOnly: true // writeOnly has no filtering effect in swagger 2.0
@@ -145,6 +150,7 @@ export default class Response extends React.Component {
{ example ? ( { example ? (
<ModelExample <ModelExample
specPath={specPathWithPossibleSchema}
getComponent={ getComponent } getComponent={ getComponent }
getConfigs={ getConfigs } getConfigs={ getConfigs }
specSelectors={ specSelectors } specSelectors={ specSelectors }

View File

@@ -17,6 +17,7 @@ export default class Responses extends React.Component {
specSelectors: PropTypes.object.isRequired, specSelectors: PropTypes.object.isRequired,
specActions: PropTypes.object.isRequired, specActions: PropTypes.object.isRequired,
oas3Actions: PropTypes.object.isRequired, oas3Actions: PropTypes.object.isRequired,
specPath: PropTypes.array.isRequired,
fn: PropTypes.object.isRequired fn: PropTypes.object.isRequired
} }
@@ -60,7 +61,8 @@ export default class Responses extends React.Component {
specSelectors, specSelectors,
fn, fn,
producesValue, producesValue,
displayRequestDuration displayRequestDuration,
specPath,
} = this.props } = this.props
let defaultCode = defaultStatusCode( responses ) let defaultCode = defaultStatusCode( responses )
@@ -114,9 +116,11 @@ export default class Responses extends React.Component {
<tbody> <tbody>
{ {
responses.entrySeq().map( ([code, response]) => { responses.entrySeq().map( ([code, response]) => {
let className = tryItOutResponse && tryItOutResponse.get("status") == code ? "response_current" : "" let className = tryItOutResponse && tryItOutResponse.get("status") == code ? "response_current" : ""
return ( return (
<Response key={ code } <Response key={ code }
specPath={[...specPath, code]}
isDefault={defaultCode === code} isDefault={defaultCode === code}
fn={fn} fn={fn}
className={ className } className={ className }

View File

@@ -10,6 +10,7 @@ const RequestBody = ({
specSelectors, specSelectors,
contentType, contentType,
isExecute, isExecute,
specPath,
onChange onChange
}) => { }) => {
const Markdown = getComponent("Markdown") const Markdown = getComponent("Markdown")
@@ -37,6 +38,7 @@ const RequestBody = ({
expandDepth={1} expandDepth={1}
isExecute={isExecute} isExecute={isExecute}
schema={mediaTypeValue.get("schema")} schema={mediaTypeValue.get("schema")}
specPath={[...specPath, "content", contentType]}
example={<RequestBodyEditor example={<RequestBodyEditor
requestBody={requestBody} requestBody={requestBody}
onChange={onChange} onChange={onChange}
@@ -56,7 +58,8 @@ RequestBody.propTypes = {
specSelectors: PropTypes.object.isRequired, specSelectors: PropTypes.object.isRequired,
contentType: PropTypes.string, contentType: PropTypes.string,
isExecute: PropTypes.bool.isRequired, isExecute: PropTypes.bool.isRequired,
onChange: PropTypes.func.isRequired onChange: PropTypes.func.isRequired,
specPath: PropTypes.array.isRequired
} }
export default RequestBody export default RequestBody

View File

@@ -29,6 +29,7 @@ class Parameters extends Component {
fn: PropTypes.object.isRequired, fn: PropTypes.object.isRequired,
tryItOutEnabled: PropTypes.bool, tryItOutEnabled: PropTypes.bool,
allowTryItOut: PropTypes.bool, allowTryItOut: PropTypes.bool,
specPath: PropTypes.array.isRequired,
onTryoutClick: PropTypes.func, onTryoutClick: PropTypes.func,
onCancelClick: PropTypes.func, onCancelClick: PropTypes.func,
onChangeKey: PropTypes.array, onChangeKey: PropTypes.array,
@@ -92,6 +93,7 @@ class Parameters extends Component {
oas3Actions, oas3Actions,
oas3Selectors, oas3Selectors,
pathMethod, pathMethod,
specPath,
operation operation
} = this.props } = this.props
@@ -105,6 +107,8 @@ class Parameters extends Component {
const { isOAS3 } = specSelectors const { isOAS3 } = specSelectors
const requestBody = operation.get("requestBody") const requestBody = operation.get("requestBody")
const requestBodySpecPath = [...specPath.slice(0, -1), "requestBody"] // remove the "parameters" part
return ( return (
<div className="opblock-section"> <div className="opblock-section">
<div className="opblock-section-header"> <div className="opblock-section-header">
@@ -136,9 +140,10 @@ class Parameters extends Component {
</thead> </thead>
<tbody> <tbody>
{ {
eachMap(parameters, (parameter) => ( eachMap(parameters, (parameter, i) => (
<ParameterRow fn={ fn } <ParameterRow fn={ fn }
getComponent={ getComponent } getComponent={ getComponent }
specPath={[...specPath, i]}
getConfigs={ getConfigs } getConfigs={ getConfigs }
param={ parameter } param={ parameter }
key={ parameter.get( "name" ) } key={ parameter.get( "name" ) }
@@ -175,6 +180,7 @@ class Parameters extends Component {
</div> </div>
<div className="opblock-description-wrapper"> <div className="opblock-description-wrapper">
<RequestBody <RequestBody
specPath={requestBodySpecPath}
requestBody={requestBody} requestBody={requestBody}
isExecute={isExecute} isExecute={isExecute}
onChange={(value) => { onChange={(value) => {

View File

@@ -18,6 +18,7 @@ describe("<Models/>", function(){
return components[c] return components[c]
}, },
specSelectors: { specSelectors: {
isOAS3: () => false,
definitions: function() { definitions: function() {
return fromJS({ return fromJS({
def1: {}, def1: {},

View File

@@ -25,6 +25,7 @@ describe("<ObjectModel />", function() {
} }
}, },
isRef : false, isRef : false,
specPath: [],
schema: Immutable.fromJS( schema: Immutable.fromJS(
{ {
"properties": { "properties": {