dillonkearns/elm-pages/12.1.2

NOTE: the latest version is 12.3.0

Test.BackendTask.Time

Configure virtual time zones for BackendTask tests.

To set the virtual time itself, see Test.BackendTask.withTime.

TimeZone

Represents a time zone for use in tests with withTimeZone and withTimeZoneByName. Create values with utc, fixedOffsetZone, or customTimeZone.

Constructors

UTC time zone (offset 0).

import Test.BackendTask as BackendTaskTest
import Test.BackendTask.Time as BackendTaskTime


BackendTaskTest.init
    |> BackendTaskTime.withTimeZone BackendTaskTime.utc

A time zone with a fixed offset in minutes from UTC. Negative values are west of UTC (e.g., -300 for US Eastern Standard Time).

import Test.BackendTask.Time as BackendTaskTime


BackendTaskTime.fixedOffsetZone -300
Int
-> List
{ start : Int
, offset : Int
}

A time zone with a default offset and a list of era transitions. Each era specifies a start time (minutes since epoch) and its UTC offset in minutes. These values match the format used by Time.customZone.

import Test.BackendTask.Time as BackendTaskTime


-- Mar 10, 2024 07:00 UTC = 1710054000000 ms / 60000 = 28500900 minutes
BackendTaskTime.customTimeZone -300
    [ { start = 28500900, offset = -240 } ]

Test Setup

withTimeZone : TimeZone -> TestSetup -> TestSetup

Set the default virtual time zone for BackendTask.Time.zone and BackendTask.Time.zoneFor.

import Test.BackendTask as BackendTaskTest
import Test.BackendTask.Time as BackendTaskTime


BackendTaskTest.init
    |> BackendTaskTime.withTimeZone BackendTaskTime.utc
withTimeZoneByName : String -> TimeZone -> TestSetup -> TestSetup

Register a named time zone for BackendTask.Time.zoneByName and BackendTask.Time.zoneByNameFor.

import Test.BackendTask as BackendTaskTest
import Test.BackendTask.Time as BackendTaskTime


BackendTaskTest.init
    |> BackendTaskTime.withTimeZoneByName "America/Chicago"
        (BackendTaskTime.fixedOffsetZone -360)