From b1e43106721671223b0b5fe4dcb0ae2461279817 Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Sat, 26 Jun 2021 19:08:37 +0000 Subject: [PATCH] [day-05] test imc controller --- .../controllers/imc_controller_test.exs | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/wabanex_web/controllers/imc_controller_test.exs diff --git a/test/wabanex_web/controllers/imc_controller_test.exs b/test/wabanex_web/controllers/imc_controller_test.exs new file mode 100644 index 0000000..170c875 --- /dev/null +++ b/test/wabanex_web/controllers/imc_controller_test.exs @@ -0,0 +1,39 @@ +defmodule WabanexWeb.IMCControllerTest do + use WabanexWeb.ConnCase, async: true + + describe "index/2" do + test "when all params are valid returns the imc info", %{conn: conn} do + params = %{"filename" => "students.csv"} + + response = + conn + |> get(Routes.imc_path(conn, :index, params)) + |> json_response(:ok) + + expected_response = %{ + "result" => %{ + "Americo" => 24.508945765204302, + "Ana" => 21.30394857667585, + "Claudio" => 30.42184964845863, + "João" => 31.88775510204082, + "Luiz" => 27.777777777777775 + } + } + + assert expected_response == response + end + + test "when params are invalid returns an error", %{conn: conn} do + params = %{"filename" => "unavailable.csv"} + + response = + conn + |> get(Routes.imc_path(conn, :index, params)) + |> json_response(:bad_request) + + expected_response = %{"result" => "Error while opening the file"} + + assert expected_response == response + end + end +end