ejdb2-binding-0.1.0.0: test/DeleteTests.hs
module DeleteTests ( tests ) where
import Asserts
import Database.EJDB2
import Database.EJDB2.Options
import Plant
import Prelude hiding ( id )
import Test.Tasty
import Test.Tasty.HUnit
tests :: TestTree
tests = withResource (open testDatabaseOpts) close $ \databaseIO ->
testGroup "delete"
[ deleteTest databaseIO, deleteNotExistingTest databaseIO ]
testDatabaseOpts :: Options
testDatabaseOpts = minimalOptions "./test/delete-db" [ truncateOpenFlags ]
deleteTest :: IO Database -> TestTree
deleteTest databaseIO = testCase "deleteTest" $ do
database <- databaseIO
id <- putNew database "plants" plant
delete database "plants" id
storedPlant <- getById database "plants" id :: IO (Maybe Plant)
storedPlant @?= Nothing
where
plant = nothingPlant { id = Nothing
, name = Just "pinus"
, isTree = Just True
, year = Just 1753
, description = Just "wow 🌲"
}
deleteNotExistingTest :: IO Database -> TestTree
deleteNotExistingTest databaseIO = testCase "deleteNotExistingTest" $ do
database <- databaseIO
assertException (userError "ErrorNotFound") (delete database "plants" 42)