From fd5a59a3fd77520df5eb87cd5459c8b729471aa5 Mon Sep 17 00:00:00 2001 From: Helen Kosova Date: Thu, 30 Jul 2020 00:06:24 +0300 Subject: [PATCH] feat: Display minProperties an maxProperties for object schemas (#6272) --- src/core/components/object-model.jsx | 2 +- test/mocha/components/object-model.jsx | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/core/components/object-model.jsx b/src/core/components/object-model.jsx index f5444ab1..9cea3e48 100644 --- a/src/core/components/object-model.jsx +++ b/src/core/components/object-model.jsx @@ -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) diff --git a/test/mocha/components/object-model.jsx b/test/mocha/components/object-model.jsx index 892e1ee8..5a67d718 100644 --- a/test/mocha/components/object-model.jsx +++ b/test/mocha/components/object-model.jsx @@ -58,6 +58,10 @@ describe("", 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() @@ -87,4 +91,20 @@ describe("", 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() + const renderProperties = wrapper.find(Property) + expect(renderProperties.length).toEqual(0) + }) + + it("renders `minProperties` and `maxProperties` if they are defined", function() { + const wrapper = shallow() + 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) + }) })