mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
add test coverage for bin/setup
.
Make sure this script keeps working and has consistent output.
This commit is contained in:
parent
a64d47ff04
commit
2d1a7b9c76
1 changed files with 54 additions and 0 deletions
54
railties/test/application/bin_setup_test.rb
Normal file
54
railties/test/application/bin_setup_test.rb
Normal file
|
@ -0,0 +1,54 @@
|
|||
require 'isolation/abstract_unit'
|
||||
|
||||
module ApplicationTests
|
||||
class BinSetupTest < ActiveSupport::TestCase
|
||||
include ActiveSupport::Testing::Isolation
|
||||
|
||||
def setup
|
||||
build_app
|
||||
end
|
||||
|
||||
def teardown
|
||||
teardown_app
|
||||
end
|
||||
|
||||
def test_bin_setup
|
||||
Dir.chdir(app_path) do
|
||||
app_file 'db/schema.rb', <<-RUBY
|
||||
ActiveRecord::Schema.define(version: 20140423102712) do
|
||||
create_table(:articles) {}
|
||||
end
|
||||
RUBY
|
||||
|
||||
list_tables = lambda { `bin/rails runner 'p ActiveRecord::Base.connection.tables'`.strip }
|
||||
File.write("log/my.log", "zomg!")
|
||||
|
||||
assert_equal '[]', list_tables.call
|
||||
assert_equal 5, File.size("log/my.log")
|
||||
assert_not File.exist?("tmp/restart.txt")
|
||||
`bin/setup 2>&1`
|
||||
assert_equal 0, File.size("log/my.log")
|
||||
assert_equal '["articles", "schema_migrations"]', list_tables.call
|
||||
assert File.exist?("tmp/restart.txt")
|
||||
end
|
||||
end
|
||||
|
||||
def test_bin_setup_output
|
||||
Dir.chdir(app_path) do
|
||||
app_file 'db/schema.rb', ""
|
||||
|
||||
output = `bin/setup 2>&1`
|
||||
assert_equal(<<-OUTPUT, output)
|
||||
== Installing dependencies ==
|
||||
The Gemfile's dependencies are satisfied
|
||||
|
||||
== Preparing database ==
|
||||
|
||||
== Removing old logs and tempfiles ==
|
||||
|
||||
== Restarting application server ==
|
||||
OUTPUT
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue