diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 7c49561c4..6ab6d1260 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -9,7 +9,8 @@ class Admin::TagsController < Admin::BaseController end def create - Tag.category.create!(tag_params) + Tag.find_or_create_by!(name: tag_params["name"]).update!(kind: "category") + redirect_to admin_tags_path end diff --git a/spec/features/admin/tags_spec.rb b/spec/features/admin/tags_spec.rb index 2dec574f3..6cda5cd2a 100644 --- a/spec/features/admin/tags_spec.rb +++ b/spec/features/admin/tags_spec.rb @@ -88,4 +88,17 @@ describe "Admin tags" do expect(Tag.category.where(name: "wow_category")).to exist end end + + scenario "Upgrade tag to category" do + create(:tag, name: "Soon a category") + + visit admin_tags_path + + within("form.new_tag") do + fill_in "tag_name", with: "Soon a category" + click_button "Create topic" + end + + expect(page).to have_content "Soon a category" + end end