The test incorrectly suggested the plug handles duplicate headers, but put_req_header replaces values. Cloudflare only sends one cf-timezone header, making this test unnecessary.
36 lines
1,019 B
Elixir
36 lines
1,019 B
Elixir
defmodule ToweropsWeb.Plugs.CaptureTimezoneTest do
|
|
use ToweropsWeb.ConnCase, async: true
|
|
|
|
alias ToweropsWeb.Plugs.CaptureTimezone
|
|
|
|
describe "call/2" do
|
|
test "captures cf-timezone header and stores in session", %{conn: conn} do
|
|
conn =
|
|
conn
|
|
|> init_test_session(%{})
|
|
|> put_req_header("cf-timezone", "America/Chicago")
|
|
|> CaptureTimezone.call([])
|
|
|
|
assert get_session(conn, :detected_timezone) == "America/Chicago"
|
|
end
|
|
|
|
test "defaults to UTC when cf-timezone header is missing", %{conn: conn} do
|
|
conn =
|
|
conn
|
|
|> init_test_session(%{})
|
|
|> CaptureTimezone.call([])
|
|
|
|
assert get_session(conn, :detected_timezone) == "UTC"
|
|
end
|
|
|
|
test "defaults to UTC when cf-timezone header is empty", %{conn: conn} do
|
|
conn =
|
|
conn
|
|
|> init_test_session(%{})
|
|
|> put_req_header("cf-timezone", "")
|
|
|> CaptureTimezone.call([])
|
|
|
|
assert get_session(conn, :detected_timezone) == "UTC"
|
|
end
|
|
end
|
|
end
|