Skip to content

Commit

Permalink
chore: use mod attr
Browse files Browse the repository at this point in the history
  • Loading branch information
yordis committed Oct 25, 2024
1 parent 7639506 commit 5002c48
Showing 1 changed file with 31 additions and 27 deletions.
58 changes: 31 additions & 27 deletions test/tesla_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ defmodule TeslaTest do
require Tesla

@url "http://localhost:#{Application.compile_env(:httparrot, :http_port)}"
@api_url "http://api.example.com"

describe "Adapters" do
defmodule ModuleAdapter do
Expand Down Expand Up @@ -280,38 +281,38 @@ defmodule TeslaTest do
end

describe "build_url/2" do
setup do
{:ok, url: "http://api.example.com"}
end

test "returns URL with query params from keyword list", %{url: url} do
test "returns URL with query params from keyword list" do
query_params = [user: 3, page: 2]
assert build_url(url, query_params) === url <> "?user=3&page=2"
assert build_url(@api_url, query_params) == @api_url <> "?user=3&page=2"
end

test "returns URL with query params from nested keyword list", %{url: url} do
test "returns URL with query params from nested keyword list" do
query_params = [nested: [more_nested: [argument: 1]]]
assert build_url(url, query_params) === url <> "?nested%5Bmore_nested%5D%5Bargument%5D=1"

assert build_url(@api_url, query_params) ==
@api_url <> "?nested%5Bmore_nested%5D%5Bargument%5D=1"
end

test "returns URL with query params from tuple list", %{url: url} do
test "returns URL with query params from tuple list" do
query_params = [{"user", 3}, {"page", 2}]
assert build_url(url, query_params) === url <> "?user=3&page=2"
assert build_url(@api_url, query_params) == @api_url <> "?user=3&page=2"
end

test "returns URL with query params from nested tuple list", %{url: url} do
test "returns URL with query params from nested tuple list" do
query_params = [{"nested", [{"more_nested", [{"argument", 1}]}]}]
assert build_url(url, query_params) === url <> "?nested%5Bmore_nested%5D%5Bargument%5D=1"

assert build_url(@api_url, query_params) ==
@api_url <> "?nested%5Bmore_nested%5D%5Bargument%5D=1"
end

test "returns URL with new query params concated from keyword list", %{url: url} do
url_with_param = url <> "?user=4"
test "returns URL with new query params concated from keyword list" do
url_with_param = @api_url <> "?user=4"
query_params = [page: 2, status: true]
assert build_url(url_with_param, query_params) === url <> "?user=4&page=2&status=true"
assert build_url(url_with_param, query_params) == @api_url <> "?user=4&page=2&status=true"
end

test "returns normal URL when query list is empty", %{url: url} do
assert build_url(url, []) == url
test "returns normal URL when query list is empty" do
assert build_url(@api_url, []) == @api_url
end

test "returns error when passing wrong params" do
Expand All @@ -325,24 +326,27 @@ defmodule TeslaTest do
end

describe "build_url/3" do
setup do
{:ok, url: "http://api.example.com"}
test "encoding www_form" do
query_params = [name: "foo bar", page: 2]
assert build_url(@api_url, query_params, :www_form) == @api_url <> "?name=foo+bar&page=2"
assert build_url(@api_url, query_params, :www_form) == build_url(@api_url, query_params)
end

test "encoding www_form", %{url: url} do
test "encoding rfc3986" do
query_params = [name: "foo bar", page: 2]
assert build_url(url, query_params, :www_form) === url <> "?name=foo+bar&page=2"
assert build_url(url, query_params, :www_form) === build_url(url, query_params)
assert build_url(@api_url, query_params, :rfc3986) == @api_url <> "?name=foo%20bar&page=2"
end

test "encoding rfc3986", %{url: url} do
test "default encoding www_form" do
query_params = [name: "foo bar", page: 2]
assert build_url(url, query_params, :rfc3986) === url <> "?name=foo%20bar&page=2"
assert build_url(@api_url, query_params, :www_form) == build_url(@api_url, query_params)
end
end

test "default encoding www_form", %{url: url} do
query_params = [name: "foo bar", page: 2]
assert build_url(url, query_params, :www_form) === build_url(url, query_params)
describe "build_url/1" do
test "returns URL with query params from Tesla.Env struct" do
env = %Tesla.Env{url: @api_url, query: [user: 3, page: 2]}
assert Tesla.build_url(env) == @api_url <> "?user=3&page=2"
end
end
end

0 comments on commit 5002c48

Please sign in to comment.