Test for valid service redirects

Updates testing to iterate through all available services and validate
that each one correctly produces a 302 redirect.
This commit is contained in:
Ben Busby 2021-11-10 11:47:03 -07:00
parent 2189c9ddca
commit f33279c41b
No known key found for this signature in database
GPG key ID: 339B7B7EB5333D14
2 changed files with 39 additions and 1 deletions

View file

@ -38,4 +38,4 @@ jobs:
run: FARSIDE_TEST=1 mix run update.exs
- name: Run tests
run: mix test
run: mix test --trace

View file

@ -1,4 +1,6 @@
defmodule FarsideTest do
@services_json Application.fetch_env!(:farside, :services_json)
use ExUnit.Case
use Plug.Test
@ -15,4 +17,40 @@ defmodule FarsideTest do
assert conn.state == :sent
assert conn.status == 200
end
test "/ping" do
conn =
:get
|> conn("/ping", "")
|> Router.call(@opts)
assert conn.state == :sent
assert conn.status == 200
assert conn.resp_body == "PONG"
end
test "/:service" do
{:ok, file} = File.read(@services_json)
{:ok, service_list} = Poison.decode(file, as: [%{}])
service_names =
Enum.map(
service_list,
fn service -> service["type"] end
)
IO.puts("")
Enum.map(service_names, fn service_name ->
IO.puts("/#{service_name}")
conn =
:get
|> conn("/#{service_name}", "")
|> Router.call(@opts)
assert conn.state == :set
assert conn.status == 302
end)
end
end