mackerel-client-0.0.0: test/Types/OrganizationSpec.hs
{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
module Types.OrganizationSpec where
import Data.Aeson (decode, encode)
import Data.Aeson.QQ
import Test.Hspec
import Web.Mackerel.Types.Organization
spec :: Spec
spec = do
let organization = Organization {
organizationName = "FooOrganization"
}
let json = [aesonQQ|
{
"name": "FooOrganization"
}
|]
describe "Organization FromJSON" $ do
it "should parse a json" $
decode (encode json) `shouldBe` Just organization
it "should reject an invalid json" $
decode "{}" `shouldBe` (Nothing :: Maybe Organization)
describe "Organization ToJSON" $
it "should encode into a json" $
decode (encode organization) `shouldBe` Just json