diff --git a/spec/lib/concern/has_custom_fields_spec.rb b/spec/lib/concern/has_custom_fields_spec.rb index b23c8cc1834..26ebe91a337 100644 --- a/spec/lib/concern/has_custom_fields_spec.rb +++ b/spec/lib/concern/has_custom_fields_spec.rb @@ -222,6 +222,31 @@ RSpec.describe HasCustomFields do ).to eq(1) end + it "stores boolean values in boolean fields as t or f" do + test_item = CustomFieldsTestItem.new + CustomFieldsTestItem.register_custom_field_type("bool", :boolean) + + test_item.custom_fields["bool"] = "true" + test_item.save_custom_fields + + expect(CustomFieldsTestItemCustomField.last.value).to eq("t") + + test_item.custom_fields["bool"] = "false" + test_item.save_custom_fields + + expect(CustomFieldsTestItemCustomField.last.value).to eq("f") + end + + it "coerces non-integer values in integer fields" do + test_item = CustomFieldsTestItem.new + CustomFieldsTestItem.register_custom_field_type("int", :integer) + + test_item.custom_fields["int"] = "true" + test_item.save_custom_fields + + expect(CustomFieldsTestItemCustomField.last.value).to eq("0") + end + it "supports type coercion" do test_item = CustomFieldsTestItem.new CustomFieldsTestItem.register_custom_field_type("bool", :boolean)