packages feed

schemas-0.4.0.0: test/Schemas/OpenApi2Spec.hs

{-# LANGUAGE OverloadedLists   #-}
{-# LANGUAGE OverloadedStrings #-}

module Schemas.OpenApi2Spec where


import qualified Data.HashMap.Strict        as Map
import           Person
import           Person2
import           Schemas
import           Schemas.OpenApi2
import           SchemasSpec
import           Test.Hspec

spec :: Spec
spec = do
  let personDocument = toOpenApi2Document defaultOptions [("Person", schemaFor @Person)]
  describe "OpenApi2 schema" $
    schemaSpec schema (definitions personDocument Map.! "Person")
  describe "toOpenApi2Document" $ do
    it "works for Person" $ do
      Map.keys (definitions personDocument) `shouldContain` ["Person"]
      Map.keys (failures personDocument) `shouldNotContain` ["Person"]
    it "works for Person2" $ do
      let document = toOpenApi2Document defaultOptions [("Person2", schemaFor @Person2)]
      Map.keys (definitions document) `shouldContain` ["Person2"]
      Map.keys (failures document) `shouldNotContain` ["Person2"]