mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
33fdae0584
`Minitest.plugin_rails_init` sets `Minitest.backtrace_filter` to `Rails.backtrace_cleaner` right before tests are run, overwriting the value set in test_helper.rb. `Rails.backtrace_cleaner` silences backtrace lines that do not start with `Rails.root` followed by e.g. "lib/" or "test/". Thus when `Rails.root` is a subdirectory of the project directory -- for example, when testing a plugin that has a dummy app -- all lines of the backtrace are silenced. This commit adds a fallback such that when all backtrace lines are silenced, the original `Minitest.backtrace_filter` is used instead. Additionally, this commit refactors and expands existing test coverage.
56 lines
1.7 KiB
Ruby
56 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
ENV["RAILS_ENV"] = "test"
|
|
ENV["RAILS_INBOUND_EMAIL_PASSWORD"] = "tbsy84uSV1Kt3ZJZELY2TmShPRs91E3yL4tzf96297vBCkDWgL"
|
|
|
|
require_relative "../test/dummy/config/environment"
|
|
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../test/dummy/db/migrate", __dir__)]
|
|
require "rails/test_help"
|
|
|
|
require "byebug"
|
|
require "webmock/minitest"
|
|
|
|
require "rails/test_unit/reporter"
|
|
Rails::TestUnitReporter.executable = "bin/test"
|
|
|
|
if ActiveSupport::TestCase.respond_to?(:fixture_path=)
|
|
ActiveSupport::TestCase.fixture_path = File.expand_path("fixtures", __dir__)
|
|
ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
|
|
ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files"
|
|
ActiveSupport::TestCase.fixtures :all
|
|
end
|
|
|
|
require "action_mailbox/test_helper"
|
|
|
|
class ActiveSupport::TestCase
|
|
include ActionMailbox::TestHelper, ActiveJob::TestHelper
|
|
end
|
|
|
|
class ActionDispatch::IntegrationTest
|
|
private
|
|
def credentials
|
|
ActionController::HttpAuthentication::Basic.encode_credentials "actionmailbox", ENV["RAILS_INBOUND_EMAIL_PASSWORD"]
|
|
end
|
|
|
|
def switch_password_to(new_password)
|
|
previous_password, ENV["RAILS_INBOUND_EMAIL_PASSWORD"] = ENV["RAILS_INBOUND_EMAIL_PASSWORD"], new_password
|
|
yield
|
|
ensure
|
|
ENV["RAILS_INBOUND_EMAIL_PASSWORD"] = previous_password
|
|
end
|
|
end
|
|
|
|
if ARGV.include?("-v")
|
|
ActiveRecord::Base.logger = Logger.new(STDOUT)
|
|
ActiveJob::Base.logger = Logger.new(STDOUT)
|
|
end
|
|
|
|
class BounceMailer < ActionMailer::Base
|
|
def bounce(to:)
|
|
mail from: "receiver@example.com", to: to, subject: "Your email was not delivered" do |format|
|
|
format.html { render plain: "Sorry!" }
|
|
end
|
|
end
|
|
end
|
|
|
|
require_relative "../../tools/test_common"
|