mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-18 13:02:11 +03:00
cc8e2ccc78
server: add scheduled triggers Co-authored-by: Alexis King <lexi.lambda@gmail.com> Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io> Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com>
45 lines
1.3 KiB
Haskell
45 lines
1.3 KiB
Haskell
module Data.TimeSpec (spec) where
|
|
-- | Time-related properties we care about.
|
|
|
|
import Data.Aeson
|
|
import Data.Time
|
|
import Data.Time.Clock.Units
|
|
import Prelude
|
|
import Test.Hspec
|
|
|
|
spec :: Spec
|
|
spec = do
|
|
timeUnitsSpec
|
|
diffTimeSpec
|
|
|
|
timeUnitsSpec :: Spec
|
|
timeUnitsSpec =
|
|
describe "time units" $ do
|
|
it "converts correctly" $ do
|
|
seconds 123 `shouldBe` 123
|
|
milliseconds 123 `shouldBe` 0.123
|
|
microseconds 123 `shouldBe` 0.000123
|
|
nanoseconds 123 `shouldBe` 0.000000123
|
|
|
|
it "has a correct Read instance" $ do
|
|
seconds (read "123") `shouldBe` 123
|
|
milliseconds (read "123") `shouldBe` 0.123
|
|
microseconds (read "123") `shouldBe` 0.000123
|
|
nanoseconds (read "123") `shouldBe` 0.000000123
|
|
|
|
it "JSON serializes as proper units" $ do
|
|
toJSON (1 :: Seconds) `shouldBe` Number 1
|
|
decode "1.0" `shouldBe` Just (1 :: Seconds)
|
|
|
|
it "converts with convertDuration" $ do
|
|
convertDuration (2 :: Minutes) `shouldBe` (120 :: NominalDiffTime)
|
|
convertDuration (60 :: Seconds) `shouldBe` (1 :: Minutes)
|
|
|
|
diffTimeSpec :: Spec
|
|
diffTimeSpec =
|
|
describe "DiffTime" $ do
|
|
it "JSON serializes as seconds" $ do
|
|
-- although we would prefer to use Seconds instead...
|
|
toJSON (1 :: DiffTime) `shouldBe` Number 1
|
|
decode "1.0" `shouldBe` Just (1 :: DiffTime)
|