aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2017-09-03 04:15:25 +0930
committerMatthew Draper <matthew@trebex.net>2017-09-04 05:43:01 +0930
commite4b0488851c65d73433621263e66f1e4c295eec0 (patch)
tree61e95e913fc5e8bb11889b1ce83cfb3892a20af5 /railties
parent925e6d561ae8847777e57f6a0bacc930d35bf05b (diff)
downloadrails-e4b0488851c65d73433621263e66f1e4c295eec0.tar.gz
rails-e4b0488851c65d73433621263e66f1e4c295eec0.tar.bz2
rails-e4b0488851c65d73433621263e66f1e4c295eec0.zip
Preload Rails component gems in railties tests
Diffstat (limited to 'railties')
-rw-r--r--railties/test/application/configuration_test.rb1
-rw-r--r--railties/test/application/generators_test.rb1
-rw-r--r--railties/test/application/initializers/frameworks_test.rb2
-rw-r--r--railties/test/isolation/abstract_unit.rb20
4 files changed, 22 insertions, 2 deletions
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index f6d26c8ff7..64939e4ab4 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -314,6 +314,7 @@ module ApplicationTests
end
test "the application can be eager loaded even when there are no frameworks" do
+ FileUtils.rm_rf("#{app_path}/app/jobs/application_job.rb")
FileUtils.rm_rf("#{app_path}/app/models/application_record.rb")
FileUtils.rm_rf("#{app_path}/app/mailers/application_mailer.rb")
FileUtils.rm_rf("#{app_path}/config/environments")
diff --git a/railties/test/application/generators_test.rb b/railties/test/application/generators_test.rb
index 58197a8f6b..9248aec2ef 100644
--- a/railties/test/application/generators_test.rb
+++ b/railties/test/application/generators_test.rb
@@ -174,6 +174,7 @@ module ApplicationTests
test "ARGV is mutated as expected" do
require "#{app_path}/config/environment"
+ require "rails/command"
Rails::Command.const_set("APP_PATH", "rails/all")
FileUtils.cd(rails_root) do
diff --git a/railties/test/application/initializers/frameworks_test.rb b/railties/test/application/initializers/frameworks_test.rb
index d643c85181..0d02bc8a0c 100644
--- a/railties/test/application/initializers/frameworks_test.rb
+++ b/railties/test/application/initializers/frameworks_test.rb
@@ -211,7 +211,7 @@ module ApplicationTests
test "database middleware doesn't initialize when activerecord is not in frameworks" do
use_frameworks []
require "#{app_path}/config/environment"
- assert_nil defined?(ActiveRecord::Base)
+ assert !defined?(ActiveRecord::Base) || ActiveRecord.autoload?(:Base)
end
test "use schema cache dump" do
diff --git a/railties/test/isolation/abstract_unit.rb b/railties/test/isolation/abstract_unit.rb
index e79bf09654..0ccfec1eb9 100644
--- a/railties/test/isolation/abstract_unit.rb
+++ b/railties/test/isolation/abstract_unit.rb
@@ -299,7 +299,7 @@ module TestHelpers
end
def use_frameworks(arr)
- to_remove = [:actionmailer, :activerecord] - arr
+ to_remove = [:actionmailer, :activerecord, :activestorage, :activejob] - arr
if to_remove.include?(:activerecord)
remove_from_config "config.active_record.*"
@@ -329,4 +329,22 @@ Module.new do
File.open("#{app_template_path}/config/boot.rb", "w") do |f|
f.puts "require 'rails/all'"
end
+
+ # Fake 'Bundler.require' -- we run using the repo's Gemfile, not an
+ # app-specific one: we don't want to require every gem that lists.
+ contents = File.read("#{app_template_path}/config/application.rb")
+ contents.sub!(/^Bundler\.require.*/, "%w(turbolinks).each { |r| require r }")
+ File.write("#{app_template_path}/config/application.rb", contents)
+
+ require "rails"
+
+ require "active_model"
+ require "active_job"
+ require "active_record"
+ require "action_controller"
+ require "action_mailer"
+ require "action_view"
+ require "active_storage"
+ require "action_cable"
+ require "sprockets"
end unless defined?(RAILS_ISOLATED_ENGINE)