From f9c0cca44e1b83bcf90d7d07f865e5780c4ae3e9 Mon Sep 17 00:00:00 2001 From: manu vasconcelos Date: Fri, 27 Sep 2024 14:36:22 -0300 Subject: [PATCH] small bug fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit when we have an array with one item uniq! returns nil - which was causing an issue in project_media tag creation – and I think was misleading in fact_check clean_tags --- app/models/annotations/tag.rb | 2 +- app/models/fact_check.rb | 2 +- test/models/fact_check_test.rb | 14 ++++++++++++++ test/models/tag_test.rb | 14 ++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/models/annotations/tag.rb b/app/models/annotations/tag.rb index 39287ffa5..cf3e017af 100644 --- a/app/models/annotations/tag.rb +++ b/app/models/annotations/tag.rb @@ -96,7 +96,7 @@ def self.create_project_media_tags(project_media_id, tags_json) if !project_media.nil? tags = JSON.parse(tags_json) - clean_tags = tags.map { |tag| tag.strip.gsub(/^#/, '') }.uniq! + clean_tags = tags.map { |tag| tag.strip.gsub(/^#/, '') }.uniq clean_tags.each { |tag| Tag.create! annotated: project_media, tag: tag.strip, skip_check_ability: true } else error = StandardError.new("[ProjectMedia] Exception creating project media's tags in background. Project media is nil.") diff --git a/app/models/fact_check.rb b/app/models/fact_check.rb index e93703b39..9b6744559 100644 --- a/app/models/fact_check.rb +++ b/app/models/fact_check.rb @@ -59,7 +59,7 @@ def self.get_exported_data(query, team) def clean_tags return if self.tags.blank? - self.tags.map! { |tag| tag.strip.gsub(/^#/, '') }.uniq! + self.tags = self.tags.map! { |tag| tag.strip.gsub(/^#/, '') }.uniq end private diff --git a/test/models/fact_check_test.rb b/test/models/fact_check_test.rb index 8ac8b6340..43cf6e466 100644 --- a/test/models/fact_check_test.rb +++ b/test/models/fact_check_test.rb @@ -603,5 +603,19 @@ def setup fc = create_fact_check claim_description: cd, tags: ['one', 'one', '#one'] assert_equal 1, fc.tags.count + assert_equal 'one', fc.tags.first + end + + test "should add existing tag to a new fact check" do + pm = create_project_media + cd = create_claim_description(project_media: pm) + create_fact_check claim_description: cd, tags: ['one'] + + pm2 = create_project_media + cd2 = create_claim_description(project_media: pm2) + fc2 = create_fact_check claim_description: cd2, tags: ['#one'] + + assert_equal 1, fc2.tags.count + assert_equal 'one', fc2.tags.first end end diff --git a/test/models/tag_test.rb b/test/models/tag_test.rb index f2590cd49..1723eb9db 100644 --- a/test/models/tag_test.rb +++ b/test/models/tag_test.rb @@ -319,4 +319,18 @@ def setup assert_equal 1, pm.reload.annotations('tag').count end + + test ":create_project_media_tags should be able to add an existing tag to a new project media" do + Sidekiq::Testing.fake! + + team = create_team + project = create_project team: team + pm = create_project_media project: project + Tag.create_project_media_tags(pm.id, ['one'].to_json) + + pm2 = create_project_media project: project + Tag.create_project_media_tags(pm2.id, ['#one'].to_json) + + assert_equal 1, pm2.reload.annotations('tag').count + end end