packages feed

hw-aeson-0.1.7.0: test/HaskellWorks/Data/AesonSpec.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}

module HaskellWorks.Data.AesonSpec
  ( spec
  ) where

import Data.Aeson
import HaskellWorks.Data.Aeson
import Test.Hspec

import qualified HaskellWorks.Data.Aeson.Compat.Map as JM

{- HLINT ignore "Redundant do"        -}

spec :: Spec
spec = describe "HaskellWorks.Data.Aeson" $ do
  it "objectWithoutNulls should stould strip nulls" $ do
    let actual = objectWithoutNulls
          [ "one"    .= (1 :: Int)
          , "two"    .= Just (2 :: Int)
          , "three"  .= (Nothing :: Maybe Int)
          ]
    let expected = object
          [ "one"    .= (1 :: Int)
          , "two"    .= (2 :: Int)
          ]
    actual `shouldBe` expected
  it "Re-exports complete" $ do
    let _ = JM.toList
    let _ = JM.toMap
    let _ = JM.foldlWithKey
    let _ = JM.fromHashMapText
    let _ = JM.lookup @Int
    let _ = JM.toHashMapText
    let _ = JM.toList
    let _ = JM.toMap

    True