FIX: prevent minimum_required_tags on category being set to null (#6703)
* FIX: prevent minimum_required_tags on category being set to null * add migration for NOT_NULL constraint for minimum_required_tags * add specs
This commit is contained in:
parent
5b6c1b1670
commit
4a8f21d387
|
@ -169,7 +169,7 @@
|
|||
<label for="category-minimum-tags">
|
||||
{{i18n 'category.minimum_required_tags'}}
|
||||
</label>
|
||||
{{text-field value=category.minimum_required_tags id="category-minimum-tags" type="number"}}
|
||||
{{text-field value=category.minimum_required_tags id="category-minimum-tags" type="number" min="0"}}
|
||||
|
||||
</section>
|
||||
{{/if}}
|
||||
|
|
|
@ -149,9 +149,8 @@ class CategoriesController < ApplicationController
|
|||
category_params.delete(:position)
|
||||
|
||||
# properly null the value so the database constraint doesn't catch us
|
||||
if category_params.has_key?(:email_in) && category_params[:email_in].blank?
|
||||
category_params[:email_in] = nil
|
||||
end
|
||||
category_params[:email_in] = nil if category_params[:email_in]&.blank?
|
||||
category_params[:minimum_required_tags] = 0 if category_params[:minimum_required_tags]&.blank?
|
||||
|
||||
old_permissions = cat.permissions_params
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddNotNullMinimumRequiredTagsOnCategories < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
change_column_null :categories, :minimum_required_tags, false, 0
|
||||
end
|
||||
end
|
|
@ -91,6 +91,7 @@ describe CategoriesController do
|
|||
|
||||
it "raises an exception when the text color is missing" do
|
||||
post "/categories.json", params: { name: "hello", color: "ff0" }
|
||||
expect(response.status).to eq(400)
|
||||
end
|
||||
|
||||
describe "failure" do
|
||||
|
@ -299,6 +300,7 @@ describe CategoriesController do
|
|||
custom_fields: {
|
||||
"dancing" => "frogs"
|
||||
},
|
||||
minimum_required_tags: ""
|
||||
}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
|
@ -311,6 +313,7 @@ describe CategoriesController do
|
|||
expect(category.color).to eq("ff0")
|
||||
expect(category.auto_close_hours).to eq(72)
|
||||
expect(category.custom_fields).to eq("dancing" => "frogs")
|
||||
expect(category.minimum_required_tags).to eq(0)
|
||||
end
|
||||
|
||||
it 'logs the changes correctly' do
|
||||
|
|
Loading…
Reference in New Issue