module RailsConsoleCommands::TestEnvironment

Public Class Methods

fork() { || ... } click to toggle source
# File lib/rails_console_commands/test_environment.rb, line 8
def fork
  Environment.fork do
    setup_for_test
    yield
  end

  reset_active_record
end

Private Class Methods

add_test_dir_to_load_path() click to toggle source
# File lib/rails_console_commands/test_environment.rb, line 39
def add_test_dir_to_load_path
  test_path = Rails.root.join('test')
  $LOAD_PATH.unshift(test_path) unless $LOAD_PATH.first == test_path
end
reload_classes() click to toggle source
# File lib/rails_console_commands/test_environment.rb, line 24
def reload_classes
  # Overwrite the default config.cache_classes = true,
  # so we can change classes in the test session.
  ActiveSupport::Dependencies.mechanism = :load

  Rails.application.reloader.reload!
  Rails.application.reloader.prepare!
end
reset_active_record() click to toggle source
# File lib/rails_console_commands/test_environment.rb, line 33
def reset_active_record
  return unless defined? ApplicationRecord
  ApplicationRecord.clear_active_connections!
  ApplicationRecord.establish_connection
end
setup_for_test() click to toggle source
# File lib/rails_console_commands/test_environment.rb, line 19
def setup_for_test
  reload_classes
  add_test_dir_to_load_path
end