Skip to content
This repository has been archived by the owner on Jul 28, 2023. It is now read-only.

Commit

Permalink
Fix bug with broken requests
Browse files Browse the repository at this point in the history
  • Loading branch information
emptyflash committed Nov 15, 2016
1 parent 39cc3d7 commit 828fe4e
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 18 deletions.
2 changes: 1 addition & 1 deletion lib/plug/forward_request.ex
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ defmodule Heimdall.Plug.ForwardRequest do
def init(opts), do: opts

defp build_request_path(path_info) do
"/" <> Enum.join(path_info)
"/" <> Enum.join(path_info, "/")
end

defp build_query_string(query_string) do
Expand Down
47 changes: 30 additions & 17 deletions test/plug/forward_request_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,39 @@ defmodule Heimdall.Test.Plug.ForwardRequestTest do
:ok
end

test "call sends request to configured forward location" do
forward_url = %{"forward_url" => "http://localhost:8088"}
conn =
:get
|> conn("http://localhost/forward-test")
|> ForwardRequest.call(ForwardRequest.init(forward_url))
describe "call" do
test "sends request to configured forward location" do
forward_url = %{"forward_url" => "http://localhost:8088"}
conn =
:get
|> conn("http://localhost/forward-test")
|> ForwardRequest.call(ForwardRequest.init(forward_url))

assert conn.status == 200
assert conn.resp_body == "forwarded"
end
assert conn.status == 200
assert conn.resp_body == "forwarded"
end

test "call with opts sends request to passed forward location" do
forward_url = %{"forward_url" => "http://localhost:8088"}
conn =
:get
|> conn("http://wrong-place.com/forward-test")
|> ForwardRequest.call(ForwardRequest.init(forward_url))
test "with opts sends request to passed forward location" do
forward_url = %{"forward_url" => "http://localhost:8088"}
conn =
:get
|> conn("http://wrong-place.com/forward-test")
|> ForwardRequest.call(ForwardRequest.init(forward_url))

assert conn.status == 200
assert conn.resp_body == "forwarded"
assert conn.status == 200
assert conn.resp_body == "forwarded"
end

test "properly creates request with extended path" do
forward_url = %{"forward_url" => "http://localhost:8088"}
conn =
:get
|> conn("http://localhost/forward-test/with/more")
|> ForwardRequest.call(ForwardRequest.init(forward_url))

assert conn.status == 200
assert conn.resp_body == "forwarded"
end
end

test "changing the path info changes the request path" do
Expand Down
5 changes: 5 additions & 0 deletions test/test_router.ex
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ defmodule Heimdall.Test.TestRouter do
|> resp(200, "forwarded")
end

get "/forward-test/with/more" do
conn
|> resp(200, "forwarded")
end

get "/test" do
conn
|> resp(200, "ok")
Expand Down

0 comments on commit 828fe4e

Please sign in to comment.