diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index 721f0373c7c..df0a0c68555 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -133,7 +133,7 @@ class TopicsController < ApplicationController end changes.delete(:title) if topic.title == changes[:title] - changes.delete(:category_id) if (changes[:category_id].blank? or topic.category_id == changes[:category_id].to_i) + changes.delete(:category_id) if topic.category_id == changes[:category_id].to_i success = true if changes.length > 0 diff --git a/spec/controllers/topics_controller_spec.rb b/spec/controllers/topics_controller_spec.rb index 23e98b73c00..f355d340e82 100644 --- a/spec/controllers/topics_controller_spec.rb +++ b/spec/controllers/topics_controller_spec.rb @@ -724,6 +724,11 @@ describe TopicsController do xhr :put, :update, topic_id: @topic.id, slug: @topic.title, category_id: 123 end + it 'allows to change category to "uncategorized"' do + Topic.any_instance.expects(:change_category_to_id).with(0).returns(true) + xhr :put, :update, topic_id: @topic.id, slug: @topic.title, category_id: "" + end + it "returns errors with invalid titles" do xhr :put, :update, topic_id: @topic.id, slug: @topic.title, title: 'asdf' expect(response).not_to be_success