From cadac264f876b9f849ebd05f99224f473e2004f4 Mon Sep 17 00:00:00 2001 From: Michael Adams Date: Tue, 29 Sep 2020 21:44:07 +1300 Subject: [PATCH] Fix deprecation warning when showing error with rails 6. --- lib/active_record/migrations/tasks.rb | 2 +- spec/active_record/migrations_spec.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/active_record/migrations/tasks.rb b/lib/active_record/migrations/tasks.rb index 6732d9d..d5a03e5 100644 --- a/lib/active_record/migrations/tasks.rb +++ b/lib/active_record/migrations/tasks.rb @@ -42,7 +42,7 @@ module Tasks module DatabaseTasks def each_current_configuration(environment, spec_name = nil) unless configuration = ActiveRecord::Base.configurations[environment] - raise ArgumentError.new("Cannot find configuration for environment #{environment.inspect} in #{ActiveRecord::Base.configurations.keys}") + raise ArgumentError.new("Cannot find configuration for environment #{environment.inspect} in #{ActiveRecord::Base.configurations.to_h.keys}") end # This is a hack because DatabaseTasks functionality uses string for keys. diff --git a/spec/active_record/migrations_spec.rb b/spec/active_record/migrations_spec.rb index 0ae95ae..c49847d 100644 --- a/spec/active_record/migrations_spec.rb +++ b/spec/active_record/migrations_spec.rb @@ -53,4 +53,14 @@ expect(File.read('db/schema.rb')).to include("version: 2016_12_08_121932") end end + + it "should handle non-existent configuration" do + require 'active_record/migrations/tasks' + ActiveRecord::Base.configurations = { + "development" => "null://test", + } + expect do + ActiveRecord::Tasks::DatabaseTasks.send(:each_current_configuration, "foo") + end.to raise_error(ArgumentError, 'Cannot find configuration for environment "foo" in ["development"]') + end end