feat: Display minProperties an maxProperties for object schemas (#6272)

This commit is contained in:
Helen Kosova
2020-07-30 00:06:24 +03:00
committed by GitHub
parent cfede146ff
commit fd5a59a3fd
2 changed files with 21 additions and 1 deletions

View File

@@ -42,7 +42,7 @@ export default class ObjectModel extends Component {
let title = schema.get("title") || displayName || name
let requiredProperties = schema.get("required")
let infoProperties = schema
.filter( ( v, key) => ["nullable"].indexOf(key) !== -1 )
.filter( ( v, key) => ["maxProperties", "minProperties", "nullable"].indexOf(key) !== -1 )
const JumpToPath = getComponent("JumpToPath", true)
const Markdown = getComponent("Markdown", true)

View File

@@ -58,6 +58,10 @@ describe("<ObjectModel />", function() {
...props,
schema: props.schema.set("nullable", true)
}
const propsMinMaxProperties = {
...props,
schema: props.schema.set("minProperties", 1).set("maxProperties", 5)
}
it("renders a collapsible header", function(){
const wrapper = shallow(<ObjectModel {...props}/>)
@@ -87,4 +91,20 @@ describe("<ObjectModel />", function() {
expect(renderProperties.get(0).props.propKey).toEqual("nullable")
expect(renderProperties.get(0).props.propVal).toEqual(true)
})
it("doesn't render `minProperties` and `maxProperties` if they are absent", function() {
const wrapper = shallow(<ObjectModel {...props}/>)
const renderProperties = wrapper.find(Property)
expect(renderProperties.length).toEqual(0)
})
it("renders `minProperties` and `maxProperties` if they are defined", function() {
const wrapper = shallow(<ObjectModel {...propsMinMaxProperties}/>)
const renderProperties = wrapper.find(Property)
expect(renderProperties.length).toEqual(2)
expect(renderProperties.get(0).props.propKey).toEqual("minProperties")
expect(renderProperties.get(0).props.propVal).toEqual(1)
expect(renderProperties.get(1).props.propKey).toEqual("maxProperties")
expect(renderProperties.get(1).props.propVal).toEqual(5)
})
})