diff options
author | Robin Dupret <robin.dupret@gmail.com> | 2017-06-05 23:19:00 +0200 |
---|---|---|
committer | Robin Dupret <robin.dupret@gmail.com> | 2017-07-16 14:39:09 +0200 |
commit | 1acd9a6464668d4d54ab30d016829f60b70dbbeb (patch) | |
tree | 4723a83664338541f6cfd8d49f8dbb0ebbc0466d /railties/test | |
parent | 16f2b2044eaaa54b7bc205ef9af1689a152b2fdf (diff) | |
download | rails-1acd9a6464668d4d54ab30d016829f60b70dbbeb.tar.gz rails-1acd9a6464668d4d54ab30d016829f60b70dbbeb.tar.bz2 rails-1acd9a6464668d4d54ab30d016829f60b70dbbeb.zip |
Allow to pass a connection to the `dbconsole` command
Since 0a4f6009, it's possible to specify a 3-level database
configuration to gather connections by environment.
The `dbconsole` command will try to look for a database configuration
which points to the current environment but with such flavour, the
environment key is flushed out so let's add the ability to specify
the connection and pick `primary` by default to be consistent with
Active Record.
Diffstat (limited to 'railties/test')
-rw-r--r-- | railties/test/commands/dbconsole_test.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/railties/test/commands/dbconsole_test.rb b/railties/test/commands/dbconsole_test.rb index 0f8c5dbb79..94bfe3a652 100644 --- a/railties/test/commands/dbconsole_test.rb +++ b/railties/test/commands/dbconsole_test.rb @@ -200,6 +200,49 @@ class Rails::DBConsoleTest < ActiveSupport::TestCase assert_match(/Unknown command-line client for db/, output) end + def test_primary_is_automatically_picked_with_3_level_configuration + sample_config = { + "test" => { + "primary" => { + "adapter" => "postgresql" + } + } + } + + app_db_config(sample_config) do + assert_equal "postgresql", Rails::DBConsole.new.config["adapter"] + end + end + + def test_specifying_a_custom_connection_and_environment + stub_available_environments(["development"]) do + dbconsole = parse_arguments(["-c", "custom", "-e", "development"]) + + assert_equal "development", dbconsole[:environment] + assert_equal "custom", dbconsole.connection + end + end + + def test_specifying_a_missing_connection + app_db_config({}) do + e = assert_raises(ActiveRecord::AdapterNotSpecified) do + Rails::Command.invoke(:dbconsole, ["-c", "i_do_not_exist"]) + end + + assert_includes e.message, "'i_do_not_exist' connection is not configured." + end + end + + def test_specifying_a_missing_environment + app_db_config({}) do + e = assert_raises(ActiveRecord::AdapterNotSpecified) do + Rails::Command.invoke(:dbconsole) + end + + assert_includes e.message, "'test' database is not configured." + end + end + def test_print_help_short stdout = capture(:stdout) do Rails::Command.invoke(:dbconsole, ["-h"]) |