test/caddy_test.rb in caddy-0.0.2 vs test/caddy_test.rb in caddy-1.0.0

- old
+ new

@@ -1,5 +1,86 @@ -require "minitest/autorun" -require "caddy" +require "test_helper" class CaddyTest < Minitest::Test + def setup + Caddy.stop + Caddy.refresher = -> {} + Caddy.refresh_interval = 30 + Caddy.error_handler = nil + end + + def test_basic_lookup + Caddy.refresher = -> { {foo: "bar"} } + Caddy.start + sleep(0.1) + + assert_equal "bar", Caddy[:foo] + end + + def test_basic_interval_updating + x = 0 + Caddy.refresher = lambda do + x += 1 + {baz: x} + end + Caddy.refresh_interval = 2 + Caddy.start + sleep(3) + + assert_operator Caddy[:baz], :>=, 2 + end + + def test_restart + Caddy.refresher = -> { {foo: "baz"} } + Caddy.start + sleep(0.1) + Caddy.stop + Caddy.restart + + assert_equal "baz", Caddy[:foo] + end + + def test_error_handling + reported = nil + Caddy.refresher = -> { raise "boom" } + Caddy.error_handler = -> (ex) { reported = ex } + Caddy.start + sleep(0.1) + + assert_equal "boom", reported.message + end + + def test_incepted_error_handling + Caddy.refresher = -> { raise "boom" } + Caddy.error_handler = -> (_) { raise "boomboom" } + Caddy.start + end + + def test_bad_error_handler + Caddy.refresher = -> { raise "boom" } + Caddy.error_handler = "no" + Caddy.start + end + + def test_timeout + Caddy.refresher = -> { sleep 5 } + Caddy.refresh_interval = 1 + Caddy.start + end + + def test_no_handler + Caddy.refresher = -> { raise "boom" } + Caddy.start + end + + def test_requires_refesher + Caddy.refresher = nil + + assert_raises { Caddy.start } + end + + def test_requires_positive_interval + Caddy.refresh_interval = -2 + + assert_raises { Caddy.start } + end end