From c990ca37ae39f6f868ff4e028a39c8387a042772 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 13 Jun 2019 16:55:54 +0200 Subject: [PATCH 1/2] fix choice and date selector default value --- src/themes/bootstrap3/ChoiceWidget.js | 3 +-- src/themes/bootstrap3/DateSelector.js | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/themes/bootstrap3/ChoiceWidget.js b/src/themes/bootstrap3/ChoiceWidget.js index 0760f31..783c94f 100644 --- a/src/themes/bootstrap3/ChoiceWidget.js +++ b/src/themes/bootstrap3/ChoiceWidget.js @@ -25,8 +25,7 @@ const renderSelect = field => { required={field.required} multiple={field.multiple} > - {!field.required && - !field.multiple && ( + {false !== field.placeholder && ( diff --git a/src/themes/bootstrap3/DateSelector.js b/src/themes/bootstrap3/DateSelector.js index 97528c8..4b5227b 100644 --- a/src/themes/bootstrap3/DateSelector.js +++ b/src/themes/bootstrap3/DateSelector.js @@ -10,7 +10,7 @@ const DateSelector = props => { id={"props-" + props.name} required={props.required} > - {!props.required && ( + {props.emptyOption && ( From 94edda28759a6f72869596ef41c8cf51dc18927f Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 13 Jun 2019 17:29:49 +0200 Subject: [PATCH 2/2] fix choice test --- .../themes.bootstrap3.ChoiceWidget.spec.js | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/__tests__/themes.bootstrap3.ChoiceWidget.spec.js b/src/__tests__/themes.bootstrap3.ChoiceWidget.spec.js index 415e64b..5ed74cf 100644 --- a/src/__tests__/themes.bootstrap3.ChoiceWidget.spec.js +++ b/src/__tests__/themes.bootstrap3.ChoiceWidget.spec.js @@ -27,7 +27,7 @@ describe("ChoiceWidget", () => { expect(wrapper.find("option").length).toEqual(3); }); - it("required renders no extra field", () => { + it("required attr renders required field", () => { const schema = { title: "A schema", properties: { @@ -45,6 +45,30 @@ describe("ChoiceWidget", () => { ); + const wrapper = render(Component); + expect(wrapper.find("select").length).toEqual(1); + expect(wrapper.find("option").length).toEqual(3); + expect(wrapper.find("select").prop('required')).toEqual(true); + }); + + it("default=false renders no extra field", () => { + const schema = { + title: "A schema", + properties: { + choice: { + default: false, + type: "string", + enum: ["foo", "bar"] + } + } + }; + + const Component = ( + + + + ); + const wrapper = render(Component); expect(wrapper.find("select").length).toEqual(1); expect(wrapper.find("option").length).toEqual(2);