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); 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 && (