mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Add more tests to Puma::Events. (#1162)
This commit is contained in:
parent
c7c40f307e
commit
b66cf49fa3
1 changed files with 107 additions and 4 deletions
|
@ -6,15 +6,16 @@ class TestEvents < Minitest::Test
|
|||
def test_null
|
||||
events = Puma::Events.null
|
||||
|
||||
assert_kind_of Puma::NullIO, events.stdout
|
||||
assert_kind_of Puma::NullIO, events.stderr
|
||||
assert_instance_of Puma::NullIO, events.stdout
|
||||
assert_instance_of Puma::NullIO, events.stderr
|
||||
assert_equal events.stdout, events.stderr
|
||||
end
|
||||
|
||||
def test_strings
|
||||
events = Puma::Events.strings
|
||||
|
||||
assert_kind_of StringIO, events.stdout
|
||||
assert_kind_of StringIO, events.stderr
|
||||
assert_instance_of StringIO, events.stdout
|
||||
assert_instance_of StringIO, events.stderr
|
||||
end
|
||||
|
||||
def test_stdio
|
||||
|
@ -55,4 +56,106 @@ class TestEvents < Minitest::Test
|
|||
|
||||
assert_equal true, obj.res
|
||||
end
|
||||
|
||||
def test_fire_callback_with_multiple_arguments
|
||||
res = []
|
||||
|
||||
events = Puma::Events.null
|
||||
|
||||
events.register(:exec) { |*args| res.concat(args) }
|
||||
|
||||
events.fire(:exec, :foo, :bar, :baz)
|
||||
|
||||
assert_equal [:foo, :bar, :baz], res
|
||||
end
|
||||
|
||||
def test_on_booted_callback
|
||||
res = false
|
||||
|
||||
events = Puma::Events.null
|
||||
|
||||
events.on_booted { res = true }
|
||||
|
||||
events.fire_on_booted!
|
||||
|
||||
assert res
|
||||
end
|
||||
|
||||
def test_log_writes_to_stdout
|
||||
out, _ = capture_io do
|
||||
Puma::Events.stdio.log("ready")
|
||||
end
|
||||
|
||||
assert_equal "ready\n", out
|
||||
end
|
||||
|
||||
def test_write_writes_to_stdout
|
||||
out, _ = capture_io do
|
||||
Puma::Events.stdio.write("ready")
|
||||
end
|
||||
|
||||
assert_equal "ready", out
|
||||
end
|
||||
|
||||
def test_debug_writes_to_stdout_if_env_is_present
|
||||
original_debug, ENV["PUMA_DEBUG"] = ENV["PUMA_DEBUG"], "1"
|
||||
|
||||
out, _ = capture_io do
|
||||
Puma::Events.stdio.debug("ready")
|
||||
end
|
||||
|
||||
assert_equal "% ready\n", out
|
||||
ensure
|
||||
ENV["PUMA_DEBUG"] = original_debug
|
||||
end
|
||||
|
||||
def test_debug_not_write_to_stdout_if_env_is_not_present
|
||||
out, _ = capture_io do
|
||||
Puma::Events.stdio.debug("ready")
|
||||
end
|
||||
|
||||
assert_empty out
|
||||
end
|
||||
|
||||
def test_error_writes_to_stderr_and_exits
|
||||
did_exit = false
|
||||
|
||||
_, err = capture_io do
|
||||
Puma::Events.stdio.error("interrupted")
|
||||
end
|
||||
|
||||
assert_equal "ERROR: interrupted", err
|
||||
rescue SystemExit
|
||||
did_exit = true
|
||||
ensure
|
||||
assert did_exit
|
||||
end
|
||||
|
||||
def test_pid_formatter
|
||||
pid = Process.pid
|
||||
|
||||
out, _ = capture_io do
|
||||
events = Puma::Events.stdio
|
||||
|
||||
events.formatter = Puma::Events::PidFormatter.new
|
||||
|
||||
events.write("ready")
|
||||
end
|
||||
|
||||
assert_equal "[#{ pid }] ready", out
|
||||
end
|
||||
|
||||
def test_custom_log_formatter
|
||||
custom_formatter = proc { |str| "-> #{ str }" }
|
||||
|
||||
out, _ = capture_io do
|
||||
events = Puma::Events.stdio
|
||||
|
||||
events.formatter = custom_formatter
|
||||
|
||||
events.write("ready")
|
||||
end
|
||||
|
||||
assert_equal "-> ready", out
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue