From f33279c41b17545bfbe7c0f9baa5d1b49c814a30 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 10 Nov 2021 11:47:03 -0700 Subject: [PATCH] Test for valid service redirects Updates testing to iterate through all available services and validate that each one correctly produces a 302 redirect. --- .github/workflows/elixir.yml | 2 +- test/farside_test.exs | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index d36ef4f..e4b5981 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -38,4 +38,4 @@ jobs: run: FARSIDE_TEST=1 mix run update.exs - name: Run tests - run: mix test + run: mix test --trace diff --git a/test/farside_test.exs b/test/farside_test.exs index 0673fc4..6347691 100644 --- a/test/farside_test.exs +++ b/test/farside_test.exs @@ -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