Refactor class level DSL with macros to convert blocks to instance-scoped methods

This commit is contained in:
Johannes Müller 2017-07-20 10:48:31 +02:00 committed by sdogruyol
parent 53fa65f964
commit ad91a22789
6 changed files with 179 additions and 51 deletions

View file

@ -8,6 +8,10 @@ private class MyApp < Kemal::Application
get "/route2" do |env|
"Route 2"
end
get "/file" do |env|
send_file env, "Serdar".to_slice
end
end
describe MyApp do
@ -24,4 +28,23 @@ describe MyApp do
end
end
end
it "sends file with binary stream" do
request = HTTP::Request.new("GET", "/file")
response = call_request_on_app(MyApp.new, request)
response.status_code.should eq(200)
response.headers["Content-Type"].should eq("application/octet-stream")
response.headers["Content-Length"].should eq("6")
end
it "responds to delayed route" do
app = MyApp.new
app.setup
app.get "/delayed" do |env|
"Happy addition!"
end
request = HTTP::Request.new("GET", "/delayed")
client_response = call_request_on_app(app, request)
client_response.body.should eq("Happy addition!")
end
end