From 6adc3da727a8b658784fad9d92927f8a53236793 Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Fri, 18 Jan 2019 15:07:05 +0900 Subject: Restrict frameworks to load in engine test For avoid to affect tests. Also, `action_text:install` task execute `yarn add`. This is an expensive and should be avoided if it is not needed. --- railties/test/railties/engine_test.rb | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'railties/test') diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb index 508367212b..851407dede 100644 --- a/railties/test/railties/engine_test.rb +++ b/railties/test/railties/engine_test.rb @@ -87,11 +87,10 @@ module RailtiesTest end RUBY + restrict_frameworks boot_rails Dir.chdir(app_path) do - # Install Active Storage, Action Mailbox, and Action Text migration files first so as not to affect test. - `bundle exec rake active_storage:install action_mailbox:install action_text:install` output = `bundle exec rake bukkits:install:migrations` ["CreateUsers", "AddLastNameToUsers", "CreateSessions"].each do |migration_name| @@ -174,11 +173,10 @@ module RailtiesTest class CreateKeys < ActiveRecord::Migration::Current; end RUBY + restrict_frameworks boot_rails Dir.chdir(app_path) do - # Install Active Storage, Action Mailbox, and Action Text migrations first so as not to affect test. - `bundle exec rake active_storage:install action_mailbox:install action_text:install` output = `bundle exec rake railties:install:migrations`.split("\n") assert_match(/Copied migration \d+_create_users\.core_engine\.rb from core_engine/, output.first) @@ -1509,5 +1507,25 @@ YAML def app Rails.application end + + # Restrict frameworks to load in order to avoid engine frameworks affect tests. + def restrict_frameworks + remove_from_config("require 'rails/all'") + remove_from_config("require_relative 'boot'") + remove_from_env_config("development", "config.active_storage.*") + frameworks = <<~RUBY + require "rails" + require "active_model/railtie" + require "active_job/railtie" + require "active_record/railtie" + require "action_controller/railtie" + require "action_mailer/railtie" + require "action_view/railtie" + require "sprockets/railtie" + require "rails/test_unit/railtie" + RUBY + environment = File.read("#{app_path}/config/application.rb") + File.open("#{app_path}/config/application.rb", "w") { |f| f.puts frameworks + "\n" + environment } + end end end -- cgit v1.2.3 From ebf5e3189962ec88c8f8a62b7aca199471e98f8a Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Fri, 25 Jan 2019 12:06:19 +0900 Subject: Preload all component gems To avoid running require individually. --- railties/test/isolation/abstract_unit.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'railties/test') diff --git a/railties/test/isolation/abstract_unit.rb b/railties/test/isolation/abstract_unit.rb index e9cf60a13d..ca7601f6fe 100644 --- a/railties/test/isolation/abstract_unit.rb +++ b/railties/test/isolation/abstract_unit.rb @@ -504,6 +504,8 @@ Module.new do require "action_view" require "active_storage" require "action_cable" + require "action_mailbox" + require "action_text" require "sprockets" require "action_view/helpers" -- cgit v1.2.3