class FullStackConsoleTest
Public Instance Methods
setup()
click to toggle source
# File railties/test/application/console_test.rb, line 102 def setup skip "PTY unavailable" unless available_pty? build_app app_file "app/models/post.rb", <<-CODE class Post < ActiveRecord::Base end CODE system "#{app_path}/bin/quails runner 'Post.connection.create_table :posts'" @master, @slave = PTY.open end
spawn_console(options)
click to toggle source
# File railties/test/application/console_test.rb, line 126 def spawn_console(options) Process.spawn( "#{app_path}/bin/quails console #{options}", in: @slave, out: @slave, err: @slave ) assert_output "> ", @master, 30 end
teardown()
click to toggle source
# File railties/test/application/console_test.rb, line 115 def teardown teardown_app end
test_environment_option_and_irb_option()
click to toggle source
# File railties/test/application/console_test.rb, line 151 def test_environment_option_and_irb_option spawn_console("test -- --verbose") write_prompt "a = 1", "a = 1" write_prompt "puts Quails.env", "puts Quails.env\r\ntest" @master.puts "quit" end
test_sandbox()
click to toggle source
# File railties/test/application/console_test.rb, line 135 def test_sandbox spawn_console("--sandbox") write_prompt "Post.count", "=> 0" write_prompt "Post.create" write_prompt "Post.count", "=> 1" @master.puts "quit" spawn_console("--sandbox") write_prompt "Post.count", "=> 0" write_prompt "Post.transaction { Post.create; raise }" write_prompt "Post.count", "=> 0" @master.puts "quit" end
write_prompt(command, expected_output = nil)
click to toggle source
# File railties/test/application/console_test.rb, line 119 def write_prompt(command, expected_output = nil) @master.puts command assert_output command, @master assert_output expected_output, @master if expected_output assert_output "> ", @master end