From 5fc679252f329bd99702ff8fb20aa949a2283099 Mon Sep 17 00:00:00 2001 From: Pablo Brasero Date: Tue, 5 May 2026 14:01:52 +0100 Subject: [PATCH] Fix GPX import mailers, which expected different tag objects --- app/mailers/user_mailer.rb | 2 +- app/views/user_mailer/_gpx_details.html.erb | 2 +- app/views/user_mailer/_gpx_details.text.erb | 2 +- test/jobs/trace_importer_job_test.rb | 4 ++-- test/mailers/previews/user_mailer_preview.rb | 6 +++--- test/mailers/user_mailer_test.rb | 13 ++++++------- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 67749cb84..755aa02a9 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -60,7 +60,7 @@ class UserMailer < ApplicationMailer @trace_name = trace.name @trace_points = trace.size @trace_description = trace.description - @trace_tags = trace.tags + @trace_tags = trace.tags.map(&:tag) @possible_points = possible_points @my_traces_url = url_for(:controller => "traces", :action => "mine") diff --git a/app/views/user_mailer/_gpx_details.html.erb b/app/views/user_mailer/_gpx_details.html.erb index e06153de7..b8a7f91bb 100644 --- a/app/views/user_mailer/_gpx_details.html.erb +++ b/app/views/user_mailer/_gpx_details.html.erb @@ -15,7 +15,7 @@
<%= trace_description %>
<% if trace_tags.length > 0 %>
<%= t ".tags" %>
-
<%= trace_tags.map(&:tag).join(", ") %>
+
<%= trace_tags.join(", ") %>
<% end %> <% if possible_points %>
<%= t ".total_points" %>
diff --git a/app/views/user_mailer/_gpx_details.text.erb b/app/views/user_mailer/_gpx_details.text.erb index e828068b9..393c868ee 100644 --- a/app/views/user_mailer/_gpx_details.text.erb +++ b/app/views/user_mailer/_gpx_details.text.erb @@ -10,7 +10,7 @@ <%= @trace_description %> <% if @trace_tags.length > 0 %> <%= t ".tags" %> - <%= @trace_tags.map(&:tag).join(", ") %> + <%= @trace_tags.join(", ") %> <% end %> <% if @possible_points %> <%= t ".total_points" %> diff --git a/test/jobs/trace_importer_job_test.rb b/test/jobs/trace_importer_job_test.rb index b96aae75a..b06e30c79 100644 --- a/test/jobs/trace_importer_job_test.rb +++ b/test/jobs/trace_importer_job_test.rb @@ -6,7 +6,7 @@ require "minitest/mock" class TraceImporterJobTest < ActiveJob::TestCase def test_success_notification # Check that the user gets a success notification when the trace has valid points - trace = create(:trace) + trace = create(:trace, :tags => build_list(:tracetag, 2)) gpx = Minitest::Mock.new def gpx.actual_points @@ -28,7 +28,7 @@ class TraceImporterJobTest < ActiveJob::TestCase def test_failure_notification # Check that the user gets a failure notification when the trace has no valid points - trace = create(:trace) + trace = create(:trace, :tags => build_list(:tracetag, 2)) gpx = Minitest::Mock.new def gpx.actual_points diff --git a/test/mailers/previews/user_mailer_preview.rb b/test/mailers/previews/user_mailer_preview.rb index eb028a2cf..6734db45d 100644 --- a/test/mailers/previews/user_mailer_preview.rb +++ b/test/mailers/previews/user_mailer_preview.rb @@ -38,13 +38,13 @@ class UserMailerPreview < ActionMailer::Preview def gpx_success user = create(:user, :languages => [I18n.locale]) - trace = create(:trace, :user => user) + trace = create(:trace, :user => user, :tags => build_list(:tracetag, 2)) UserMailer.with(:record => trace, :possible_points => trace.size + 2, :recipient => trace.user).gpx_success end def gpx_failure user = create(:user, :languages => [I18n.locale]) - trace = create(:trace, :user => user) + trace = build(:trace, :user => user, :tags => build_list(:tracetag, 2)) error = begin LibXML::XML::Parser.string("").parse rescue LibXML::XML::Error => e @@ -53,7 +53,7 @@ class UserMailerPreview < ActionMailer::Preview UserMailer.with( :trace_name => trace.name, :trace_description => trace.description, - :trace_tags => trace.tags, + :trace_tags => trace.tags.map(&:tag), :error => error, :recipient => trace.user ).gpx_failure diff --git a/test/mailers/user_mailer_test.rb b/test/mailers/user_mailer_test.rb index f7ca7c6bf..a7f645d90 100644 --- a/test/mailers/user_mailer_test.rb +++ b/test/mailers/user_mailer_test.rb @@ -80,26 +80,25 @@ class UserMailerTest < ActionMailer::TestCase def test_gpx_failure trace = build(:trace, :tags => build_list(:tracetag, 2)) + tag_strings = trace.tags.map(&:tag) email = UserMailer.with( :trace_name => trace.name, :trace_description => trace.description, - :trace_tags => trace.tags, + :trace_tags => tag_strings, :error => "some error", :recipient => trace.user ).gpx_failure - tags = trace.tags.map(&:tag) assert_match trace.name, email.html_part.body.to_s assert_match trace.description, email.html_part.body.to_s - assert_match tags[0], email.html_part.body.to_s - assert_match tags[1], email.html_part.body.to_s + assert_match tag_strings[0], email.html_part.body.to_s + assert_match tag_strings[1], email.html_part.body.to_s assert_match "some error", email.html_part.body.to_s - tags = trace.tags.map(&:tag) assert_match trace.name, email.text_part.body.to_s assert_match trace.description, email.text_part.body.to_s - assert_match tags[0], email.text_part.body.to_s - assert_match tags[1], email.text_part.body.to_s + assert_match tag_strings[0], email.text_part.body.to_s + assert_match tag_strings[1], email.text_part.body.to_s assert_match "some error", email.text_part.body.to_s end -- 2.39.5