mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add a test that exercice better the behavior we expect in the query cache
In production the query cache was already being loaded before the first request even without #33856, so added a test to make sure of it. This new test is passing even if #33856 is reverted.
This commit is contained in:
parent
b79f3cc96b
commit
a8359d837c
1 changed files with 43 additions and 2 deletions
|
@ -371,7 +371,7 @@ class LoadingTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
test "active record query cache hooks are installed before first request" do
|
||||
test "active record query cache hooks are installed before first request in production" do
|
||||
app_file "app/controllers/omg_controller.rb", <<-RUBY
|
||||
begin
|
||||
class OmgController < ActionController::Metal
|
||||
|
@ -395,7 +395,40 @@ class LoadingTest < ActiveSupport::TestCase
|
|||
end
|
||||
RUBY
|
||||
|
||||
require "#{rails_root}/config/environment"
|
||||
boot_app "production"
|
||||
|
||||
require "rack/test"
|
||||
extend Rack::Test::Methods
|
||||
|
||||
get "/omg/show"
|
||||
assert_equal "Query cache is enabled.", last_response.body
|
||||
end
|
||||
|
||||
test "active record query cache hooks are installed before first request in development" do
|
||||
app_file "app/controllers/omg_controller.rb", <<-RUBY
|
||||
begin
|
||||
class OmgController < ActionController::Metal
|
||||
ActiveSupport.run_load_hooks(:action_controller, self)
|
||||
def show
|
||||
if ActiveRecord::Base.connection.query_cache_enabled
|
||||
self.response_body = ["Query cache is enabled."]
|
||||
else
|
||||
self.response_body = ["Expected ActiveRecord::Base.connection.query_cache_enabled to be true"]
|
||||
end
|
||||
end
|
||||
end
|
||||
rescue => e
|
||||
puts "Error loading metal: \#{e.class} \#{e.message}"
|
||||
end
|
||||
RUBY
|
||||
|
||||
app_file "config/routes.rb", <<-RUBY
|
||||
Rails.application.routes.draw do
|
||||
get "/:controller(/:action)"
|
||||
end
|
||||
RUBY
|
||||
|
||||
boot_app "development"
|
||||
|
||||
require "rack/test"
|
||||
extend Rack::Test::Methods
|
||||
|
@ -415,4 +448,12 @@ class LoadingTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def boot_app(env = "development")
|
||||
ENV["RAILS_ENV"] = env
|
||||
|
||||
require "#{app_path}/config/environment"
|
||||
ensure
|
||||
ENV.delete "RAILS_ENV"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue