defmodule ToweropsWeb.ApiDocsControllerTest do use ToweropsWeb.ConnCase, async: true import Towerops.AccountsFixtures import Towerops.OrganizationsFixtures alias Towerops.ApiTokens describe "GET /docs/api" do test "renders index without login", %{conn: conn} do conn = get(conn, "/docs/api") assert html_response(conn, 200) =~ "API" end test "renders index for logged-in user without API tokens", %{conn: conn} do user = user_fixture() org = organization_fixture(user.id) conn = conn |> log_in_user(user) |> Plug.Conn.put_session(:current_organization_id, org.id) |> get("/docs/api") # The current template doesn't surface sample_token, but the controller # branch still resolves it. Just assert the page renders for org-scoped users. assert html_response(conn, 200) =~ "API" end test "renders index for logged-in user with API tokens", %{conn: conn} do user = user_fixture() org = organization_fixture(user.id) {:ok, {_token, _raw}} = ApiTokens.create_api_token(%{ organization_id: org.id, user_id: user.id, name: "Test Token" }) conn = conn |> log_in_user(user) |> Plug.Conn.put_session(:current_organization_id, org.id) |> get("/docs/api") assert html_response(conn, 200) =~ "API" end end end