defmodule TradexWeb.SecurityControllerTest do use TradexWeb.ConnCase import Tradex.InstrumentsFixtures @create_attrs %{ name: "some name", ticker: "some ticker", wkn: "some wkn", isin: "some isin", expiration_date: ~D[2025-01-27], strike_price: "120.5" } @update_attrs %{ name: "some updated name", ticker: "some updated ticker", wkn: "some updated wkn", isin: "some updated isin", expiration_date: ~D[2025-01-28], strike_price: "456.7" } @invalid_attrs %{name: nil, ticker: nil, wkn: nil, isin: nil, expiration_date: nil, strike_price: nil} describe "index" do test "lists all securities", %{conn: conn} do conn = get(conn, ~p"/securities") assert html_response(conn, 200) =~ "Listing Securities" end end describe "new security" do test "renders form", %{conn: conn} do conn = get(conn, ~p"/securities/new") assert html_response(conn, 200) =~ "New Security" end end describe "create security" do test "redirects to show when data is valid", %{conn: conn} do conn = post(conn, ~p"/securities", security: @create_attrs) assert %{id: id} = redirected_params(conn) assert redirected_to(conn) == ~p"/securities/#{id}" conn = get(conn, ~p"/securities/#{id}") assert html_response(conn, 200) =~ "Security #{id}" end test "renders errors when data is invalid", %{conn: conn} do conn = post(conn, ~p"/securities", security: @invalid_attrs) assert html_response(conn, 200) =~ "New Security" end end describe "edit security" do setup [:create_security] test "renders form for editing chosen security", %{conn: conn, security: security} do conn = get(conn, ~p"/securities/#{security}/edit") assert html_response(conn, 200) =~ "Edit Security" end end describe "update security" do setup [:create_security] test "redirects when data is valid", %{conn: conn, security: security} do conn = put(conn, ~p"/securities/#{security}", security: @update_attrs) assert redirected_to(conn) == ~p"/securities/#{security}" conn = get(conn, ~p"/securities/#{security}") assert html_response(conn, 200) =~ "some updated name" end test "renders errors when data is invalid", %{conn: conn, security: security} do conn = put(conn, ~p"/securities/#{security}", security: @invalid_attrs) assert html_response(conn, 200) =~ "Edit Security" end end describe "delete security" do setup [:create_security] test "deletes chosen security", %{conn: conn, security: security} do conn = delete(conn, ~p"/securities/#{security}") assert redirected_to(conn) == ~p"/securities" assert_error_sent 404, fn -> get(conn, ~p"/securities/#{security}") end end end defp create_security(_) do security = security_fixture() %{security: security} end end