diff --git a/lib/jsonapi/query_parser.ex b/lib/jsonapi/plugs/query_parser.ex similarity index 100% rename from lib/jsonapi/query_parser.ex rename to lib/jsonapi/plugs/query_parser.ex diff --git a/lib/jsonapi/plug.ex b/lib/jsonapi/plugs/response_content_type.ex similarity index 92% rename from lib/jsonapi/plug.ex rename to lib/jsonapi/plugs/response_content_type.ex index 1468fd80..89b3e993 100644 --- a/lib/jsonapi/plug.ex +++ b/lib/jsonapi/plugs/response_content_type.ex @@ -1,4 +1,4 @@ -defmodule JSONAPI.PlugResponseContentType do +defmodule JSONAPI.ResponseContentType do @moduledoc """ Simply add this plug to your endpoint or your router :api pipeline and it will ensure you return the correct response type. diff --git a/test/jsonapi/plugs/response_content_type_test.exs b/test/jsonapi/plugs/response_content_type_test.exs new file mode 100644 index 00000000..591d55e1 --- /dev/null +++ b/test/jsonapi/plugs/response_content_type_test.exs @@ -0,0 +1,27 @@ +defmodule JSONAPI.ResponseContentTypeTest do + use ExUnit.Case + use Plug.Test + + alias JSONAPI.ResponseContentType + + test "sets response content type" do + conn = + :get + |> conn("/example", "") + |> ResponseContentType.call([]) + |> send_resp(200, "done") + + assert get_resp_header(conn, "content-type") == ["application/vnd.api+json; charset=utf-8"] + end + + test "can be overridden when in play" do + conn = + :get + |> conn("/example", "") + |> Plug.Conn.assign(:override_jsonapi, true) + |> ResponseContentType.call([]) + |> send_resp(200, "done") + + refute get_resp_header(conn, "content-type") == ["application/vnd.api+json; charset=utf-8"] + end +end