Skip to content

Commit

Permalink
Add Plug.Static tests
Browse files Browse the repository at this point in the history
* Add test that asserts Plug.Static.call/2 serves files from the
  app directory using a :from with an application name and
  directory.

* Add test that asserts Plug.Static.init/1 preserves a two-tuple
  :from with an application name and directory.

* Add test that asserts Plug.Static.init/1 transforms an
  application name :from to a two-tuple :from with the
  application name and a directory.
  • Loading branch information
thymusvulgaris committed Jun 26, 2024
1 parent 90590ab commit 612a289
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/plug/static_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,29 @@ defmodule Plug.StaticTest do
assert get_resp_header(conn, "vary") == ["Accept-Encoding"]
end

test "call/2 serves files from the app directory using a :from with an application name and directory" do
app_dir = Application.app_dir(:plug)
fixture = Path.join(app_dir, "tmp.txt")

try do
:ok = File.write!(fixture, "ABCD")

opts = [
at: "priv/static",
from: {:plug, "."}
]

conn =
conn(:get, "/priv/static/tmp.txt")
|> call(opts)

assert conn.status == 200
assert conn.resp_body == "ABCD"
after
:ok = File.rm!(fixture)
end
end

test "raises an exception if :from isn't a binary or an atom" do
assert_raise ArgumentError, fn ->
defmodule ExceptionPlug do
Expand Down Expand Up @@ -843,4 +866,16 @@ defmodule Plug.StaticTest do

assert conn.status == 200
end

test "init/1 preserves a two-tuple :from with an application name and directory" do
assert %{from: {:foo, "foo/bar/foobar"}} =
Plug.Static.init(
at: "/",
from: {:foo, "foo/bar/foobar"}
)
end

test "init/1 transforms an application name :from to a two-tuple :from with the application name and a directory" do
assert %{from: {:foo, "priv/static"}} = Plug.Static.init(at: "/", from: :foo)
end
end

0 comments on commit 612a289

Please sign in to comment.