+require_relative "../config/environment"
+require "rails/test_help"
+require "webmock/minitest"
+
+WebMock.disable_net_connect!(:allow_localhost => true)
+
+module ActiveSupport
+ class TestCase
+ include FactoryBot::Syntax::Methods
+ include ActiveJob::TestHelper
+
+ # Run tests in parallel with specified workers
+ parallelize(:workers => :number_of_processors)
+
+ ##
+ # takes a block which is executed in the context of a different
+ # ActionController instance. this is used so that code can call methods
+ # on the node controller whilst testing the old_node controller.
+ def with_controller(new_controller)
+ controller_save = @controller
+ begin
+ @controller = new_controller
+ yield
+ ensure
+ @controller = controller_save
+ end
+ end
+
+ ##
+ # execute a block with missing translation exceptions suppressed
+ def without_i18n_exceptions
+ exception_handler = I18n.exception_handler
+ begin
+ I18n.exception_handler = nil
+ yield
+ ensure
+ I18n.exception_handler = exception_handler
+ end
+ end
+
+ ##
+ # work round minitest insanity that causes it to tell you
+ # to use assert_nil to test for nil, which is fine if you're
+ # comparing to a nil constant but not if you're comparing
+ # an expression that might be nil sometimes
+ def assert_equal_allowing_nil(exp, act, msg = nil)
+ if exp.nil?
+ assert_nil act, msg
+ else
+ assert_equal exp, act, msg
+ end
+ end