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