More tests
This commit is contained in:
@ -41,14 +41,14 @@ data JsonBook = JsonBook { identifier :: BookID
|
||||
, description :: Maybe Text
|
||||
, channels :: [Text]
|
||||
, tags :: [Text] }
|
||||
deriving (Generic, Show)
|
||||
deriving (Generic, Show, Eq)
|
||||
|
||||
data PostBook = PostBook { contentType :: Text
|
||||
, title :: Text
|
||||
, description :: Maybe Text
|
||||
, channels :: [Text]
|
||||
, tags :: [Text] }
|
||||
deriving (Generic, Show)
|
||||
deriving (Generic, Show, Eq)
|
||||
|
||||
|
||||
instance ToJSON JsonBook
|
||||
|
@ -1,11 +1,13 @@
|
||||
{-# Language TypeApplications #-}
|
||||
module Main where
|
||||
|
||||
import API.Books
|
||||
import qualified Data.Aeson as A
|
||||
import Data.Char (isPrint)
|
||||
import Data.GenValidity.Text ()
|
||||
import qualified Data.Text as T
|
||||
import Database.Schema
|
||||
import Prelude
|
||||
import Test.Hspec
|
||||
import Test.Validity
|
||||
|
||||
@ -37,6 +39,14 @@ instance GenUnchecked Visibility
|
||||
instance GenValid Visibility
|
||||
instance GenInvalid Visibility
|
||||
instance Validity Visibility
|
||||
instance GenUnchecked JsonBook
|
||||
instance GenValid JsonBook
|
||||
instance GenInvalid JsonBook
|
||||
instance Validity JsonBook
|
||||
instance GenUnchecked PostBook
|
||||
instance GenValid PostBook
|
||||
instance GenInvalid PostBook
|
||||
instance Validity PostBook
|
||||
|
||||
spec :: Spec
|
||||
spec = do
|
||||
@ -48,6 +58,8 @@ spec = do
|
||||
it "Works for ChannelID" $ inverseFunctionsIfSecondSucceedsOnValid (A.encode @ChannelID) A.decode
|
||||
it "Works for Role" $ inverseFunctionsIfSecondSucceedsOnValid (A.encode @Role) A.decode
|
||||
it "Works for Visibility" $ inverseFunctionsIfSecondSucceedsOnValid (A.encode @Visibility) A.decode
|
||||
it "Works for JsonBook" $ inverseFunctionsIfSecondSucceedsOnValid (A.encode @JsonBook) A.decode
|
||||
it "Works for PostBook" $ inverseFunctionsIfSecondSucceedsOnValid (A.encode @PostBook) A.decode
|
||||
|
||||
main :: IO ()
|
||||
main = hspec spec
|
||||
|
Reference in New Issue
Block a user