| defmodule Plausible.SiteTest do | |
| use Plausible.DataCase | |
| alias Plausible.Site | |
| doctest Plausible.Site | |
| describe "tz_offset/2" do | |
| test "returns offset from utc in seconds" do | |
| site = build(:site, timezone: "US/Eastern") | |
| assert Site.tz_offset(site, ~U[2023-01-01 00:00:00Z]) == -18_000 | |
| end | |
| test "returns correct offset from utc during summer time" do | |
| site = build(:site, timezone: "US/Eastern") | |
| assert Site.tz_offset(site, ~U[2023-07-01 00:00:00Z]) == -14_400 | |
| end | |
| test "returns correct offset when changing from winter to summer time" do | |
| site = build(:site, timezone: "US/Eastern") | |
| assert Site.tz_offset(site, ~U[2023-03-12 06:59:59Z]) == -18_000 | |
| assert Site.tz_offset(site, ~U[2023-03-12 07:00:00Z]) == -14_400 | |
| end | |
| test "returns correct offset when changing from summer to winter time" do | |
| site = build(:site, timezone: "US/Eastern") | |
| assert Site.tz_offset(site, ~U[2023-11-05 05:59:59Z]) == -14_400 | |
| assert Site.tz_offset(site, ~U[2023-11-05 06:00:00Z]) == -18_000 | |
| end | |
| end | |
| end | |