From d662546927c97b511041564c969492e17bac355c Mon Sep 17 00:00:00 2001 From: Denny Bresch Date: Thu, 15 Jun 2017 10:14:46 +0200 Subject: [PATCH] Fixed tag merge bug. --- app/models/tag.rb | 6 +++--- test/unit/tag_test.rb | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/app/models/tag.rb b/app/models/tag.rb index 3c327071e..79606689f 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -211,12 +211,12 @@ rename tag items def self.rename(data) - new_tag_name = data[:name].strip - old_tag_item = Tag::Item.find(data[:id]) + new_tag_name = data[:name].strip + old_tag_item = Tag::Item.find(data[:id]) already_existing_tag = Tag::Item.lookup(name: new_tag_name) # check if no remame is needed - return true if new_tag_name.downcase == old_tag_item.name.downcase + return true if new_tag_name == old_tag_item.name # merge old with new tag if already existing if already_existing_tag diff --git a/test/unit/tag_test.rb b/test/unit/tag_test.rb index fff602e9e..a193b1092 100644 --- a/test/unit/tag_test.rb +++ b/test/unit/tag_test.rb @@ -342,4 +342,53 @@ class TagTest < ActiveSupport::TestCase assert(tags_ticket2.include?('some rename tag2')) end + + test 'tags - rename and merge tag with existing tag' do + + ticket1 = Ticket.create( + title: 'rename tag1', + group: Group.lookup(name: 'Users'), + customer_id: 2, + updated_by_id: 1, + created_by_id: 1, + ) + ticket2 = Ticket.create( + title: 'rename tag2', + group: Group.lookup(name: 'Users'), + customer_id: 2, + updated_by_id: 1, + created_by_id: 1, + ) + + ticket1.tag_add('tagname1', 1) + ticket1.tag_add('tagname2', 1) + + ticket2.tag_add('Tagname2', 1) + + tags_ticket1 = ticket1.tag_list + assert_equal(2, tags_ticket1.count) + assert(tags_ticket1.include?('tagname1')) + assert(tags_ticket1.include?('tagname2')) + + tags_ticket2 = ticket2.tag_list + assert_equal(1, tags_ticket2.count) + assert(tags_ticket2.include?('Tagname2')) + + tag_item1 = Tag::Item.lookup(name: 'Tagname2') + Tag::Item.rename( + id: tag_item1.id, + name: 'tagname2', + created_by_id: 1, + ) + + tags_ticket1 = ticket1.tag_list + assert_equal(2, tags_ticket1.count) + assert(tags_ticket1.include?('tagname1')) + assert(tags_ticket1.include?('tagname2')) + + tags_ticket2 = ticket2.tag_list + assert_equal(1, tags_ticket2.count) + assert(tags_ticket2.include?('tagname2')) + + end end