defmodule ToweropsWeb.Endpoint.BodyReaderTest do use ToweropsWeb.ConnCase, async: true alias ToweropsWeb.Endpoint.BodyReader describe "read_body/2" do test "passes through non-protobuf body" do body_content = ~s({"key": "value"}) conn = "POST" |> Plug.Test.conn("/", body_content) |> put_req_header("content-type", "application/json") |> Plug.Conn.put_private(:raw_body, nil) conn = Plug.Conn.assign(conn, :plug_body_reader, {BodyReader, :read_body, []}) {:ok, body, _conn} = BodyReader.read_body(conn, []) assert body == body_content end test "skips body parsing for protobuf content type", %{conn: conn} do conn = put_req_header(conn, "content-type", "application/x-protobuf") assert {:ok, "", ^conn} = BodyReader.read_body(conn, []) end end end