Ich habe um mit Phoenix zu spielen und ich mag einen Download-Link zu einer PDF-Datei zur Verfügung zu stellen:Phoenix Tests akzeptieren keine aktivierten Antwort-Header
Der folgende Code in meiner Dev-Umgebung funktioniert gut. Wenn ich auf den Link klicke, wird eine PDF-Datei heruntergeladen.
case File.read(localpath) do
{:ok, pdf_content} ->
conn
|> put_resp_header("Content-Type", "application/pdf")
|> put_resp_header("Content-Disposition", ~s[attachment; filename="#{file}"])
|>200, pdf_content)
{:error, _} ->
conn
|>:not_found, "Not Found")
end
Allerdings, wenn ich Tests durchführen, das Verhalten zu überprüfen, werde ich eine Fehlermeldung erhalten:
** (Plug.Conn.InvalidHeaderError) header key is not lowercase: "Content-Type"
stacktrace:
(plug) lib/plug/conn.ex:957: Plug.Conn.validate_header_key!/2
(plug) lib/plug/conn.ex:556: Plug.Conn.put_resp_header/3
Dies erscheint mir aus 2 Gründen seltsam:
- Warum hat die Header in niedrigeren Buchstaben sein?
- Warum unterscheidet sich das Verhalten in der Entwicklungsumgebung und in der Testumgebung?