import Test.Tasty
import Test.Tasty.HUnit
import qualified Data.ByteString.Char8 as BS8
import System.CredentialStore
main :: IO ()
main = defaultMain tests
tests :: TestTree
tests = testGroup "Credential store"
[ testCase "Save-load-delete credential" testCred
]
testCred :: Assertion
testCred = withCredentialStore $ \store -> do
putCredential store credentialName credentialValue
v <- getCredential store credentialName
assertEqual "value don't match" (Just credentialValue) v
deleteCredential store credentialName
v' <- getCredential store credentialName
assertEqual "value not deleted" Nothing (v' :: Maybe BS8.ByteString)
where
credentialName = "credential-store-test"
credentialValue = BS8.pack "foobar"