diff --git a/guides/bug_report_templates/action_mailer_gem.rb b/guides/bug_report_templates/action_mailer_gem.rb new file mode 100644 index 0000000000000..ad6415d7a7736 --- /dev/null +++ b/guides/bug_report_templates/action_mailer_gem.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require "bundler/inline" + +gemfile(true) do + source "https://rubygems.org" + + git_source(:github) { |repo| "https://github.com/#{repo}.git" } + + # Activate the gem you are reporting the issue against. + gem "rails", "~> 7.1.0" +end + +require "action_mailer/railtie" + +class TestMailer < ActionMailer::Base + def hello_world + @message = "Hello, world" + + mail from: "test@example.com", to: "user@example.com" do |format| + format.html { render inline: "

<%= @message %>

" } + format.text { render inline: "<%= @message %>" } + end + end +end + +require "minitest/autorun" + +class BugTest < ActionMailer::TestCase + test "renders HTML and Text body" do + email = TestMailer.hello_world + + email.deliver_now + + assert_dom_email do + assert_dom "h1", text: "Hello, world" + end + assert_includes email.text_part.body, "Hello, world" + end +end diff --git a/guides/bug_report_templates/action_mailer_main.rb b/guides/bug_report_templates/action_mailer_main.rb new file mode 100644 index 0000000000000..af12a45f57e5d --- /dev/null +++ b/guides/bug_report_templates/action_mailer_main.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require "bundler/inline" + +gemfile(true) do + source "https://rubygems.org" + + git_source(:github) { |repo| "https://github.com/#{repo}.git" } + + gem "rails", github: "rails/rails", branch: "main" +end + +require "action_mailer/railtie" + +class TestMailer < ActionMailer::Base + def hello_world + @message = "Hello, world" + + mail from: "test@example.com", to: "user@example.com" do |format| + format.html { render inline: "

<%= @message %>

" } + format.text { render inline: "<%= @message %>" } + end + end +end + +require "minitest/autorun" + +class BugTest < ActionMailer::TestCase + test "renders HTML and Text body" do + email = TestMailer.hello_world + + email.deliver_now + + assert_dom_email do + assert_dom "h1", text: "Hello, world" + end + assert_includes email.text_part.body, "Hello, world" + end +end diff --git a/guides/source/contributing_to_ruby_on_rails.md b/guides/source/contributing_to_ruby_on_rails.md index 936d6c3d4bd86..227728dfcae68 100644 --- a/guides/source/contributing_to_ruby_on_rails.md +++ b/guides/source/contributing_to_ruby_on_rails.md @@ -44,6 +44,7 @@ Having a way to reproduce your issue will help people confirm, investigate, and * Template for Action Pack (controllers, routing) issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_controller_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_controller_main.rb) * Template for Active Job issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/active_job_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/active_job_main.rb) * Template for Active Storage issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/active_storage_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/active_storage_main.rb) +* Template for Action Mailer issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_mailer_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_mailer_main.rb) * Template for Action Mailbox issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_mailbox_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/action_mailbox_main.rb) * Generic template for other issues: [gem](https://github.com/rails/rails/blob/main/guides/bug_report_templates/generic_gem.rb) / [main](https://github.com/rails/rails/blob/main/guides/bug_report_templates/generic_main.rb)