mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
HeadRequestHandler: run GET handler and don't return the body (#655)
This commit is contained in:
parent
84ea6627ac
commit
8ebe171279
7 changed files with 115 additions and 8 deletions
|
@ -29,7 +29,7 @@ describe "Config" do
|
|||
config = Kemal.config
|
||||
config.add_handler CustomTestHandler.new
|
||||
Kemal.config.setup
|
||||
config.handlers.size.should eq(7)
|
||||
config.handlers.size.should eq(8)
|
||||
end
|
||||
|
||||
it "toggles the shutdown message" do
|
||||
|
|
37
spec/head_request_handler_spec.cr
Normal file
37
spec/head_request_handler_spec.cr
Normal file
|
@ -0,0 +1,37 @@
|
|||
require "./spec_helper"
|
||||
|
||||
describe "Kemal::HeadRequestHandler" do
|
||||
it "implicitly handles GET endpoints, with Content-Length header" do
|
||||
get "/" do
|
||||
"hello"
|
||||
end
|
||||
request = HTTP::Request.new("HEAD", "/")
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.body.should eq("")
|
||||
client_response.headers["Content-Length"].should eq("5")
|
||||
end
|
||||
|
||||
it "prefers explicit HEAD endpoint if specified" do
|
||||
Kemal::RouteHandler::INSTANCE.add_route("HEAD", "/") { "hello" }
|
||||
get "/" do
|
||||
raise "shouldn't be called!"
|
||||
end
|
||||
request = HTTP::Request.new("HEAD", "/")
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.body.should eq("")
|
||||
client_response.headers["Content-Length"].should eq("5")
|
||||
end
|
||||
|
||||
it "gives compressed Content-Length when gzip enabled" do
|
||||
gzip true
|
||||
get "/" do
|
||||
"hello"
|
||||
end
|
||||
headers = HTTP::Headers{"Accept-Encoding" => "gzip"}
|
||||
request = HTTP::Request.new("HEAD", "/", headers)
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.body.should eq("")
|
||||
client_response.headers["Content-Encoding"].should eq("gzip")
|
||||
client_response.headers["Content-Length"].should eq("25")
|
||||
end
|
||||
end
|
|
@ -13,7 +13,7 @@ describe "Macros" do
|
|||
it "adds a custom handler" do
|
||||
add_handler CustomTestHandler.new
|
||||
Kemal.config.setup
|
||||
Kemal.config.handlers.size.should eq 7
|
||||
Kemal.config.handlers.size.should eq 8
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -150,7 +150,7 @@ describe "Macros" do
|
|||
it "adds HTTP::CompressHandler to handlers" do
|
||||
gzip true
|
||||
Kemal.config.setup
|
||||
Kemal.config.handlers[4].should be_a(HTTP::CompressHandler)
|
||||
Kemal.config.handlers[5].should be_a(HTTP::CompressHandler)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue