diff options
Diffstat (limited to 'railties/test')
-rw-r--r-- | railties/test/application/dbconsole_test.rb | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/railties/test/application/dbconsole_test.rb b/railties/test/application/dbconsole_test.rb index 7e5e9ea8aa..12d1cfb089 100644 --- a/railties/test/application/dbconsole_test.rb +++ b/railties/test/application/dbconsole_test.rb @@ -9,6 +9,8 @@ module ApplicationTests include ActiveSupport::Testing::Isolation def setup + skip "PTY unavailable" unless available_pty? + build_app end @@ -17,7 +19,6 @@ module ApplicationTests end def test_use_value_defined_in_environment_file_in_database_yml - skip "PTY unavailable" unless available_pty? Dir.chdir(app_path) do app_file "config/database.yml", <<-YAML development: @@ -41,9 +42,37 @@ module ApplicationTests master.puts ".exit" end + def test_respect_environment_option + Dir.chdir(app_path) do + app_file "config/database.yml", <<-YAML + default: &default + adapter: sqlite3 + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + timeout: 5000 + + development: + <<: *default + database: db/development.sqlite3 + + production: + <<: *default + database: db/production.sqlite3 + YAML + end + + master, slave = PTY.open + spawn_dbconsole(slave, "-e production") + assert_output("sqlite>", master) + + master.puts ".databases" + assert_output("production.sqlite3", master) + ensure + master.puts ".exit" + end + private - def spawn_dbconsole(fd) - Process.spawn("#{app_path}/bin/rails dbconsole", in: fd, out: fd, err: fd) + def spawn_dbconsole(fd, options = nil) + Process.spawn("#{app_path}/bin/rails dbconsole #{options}", in: fd, out: fd, err: fd) end def assert_output(expected, io, timeout = 5) |