add hash tests

This commit is contained in:
yanvoi 2024-05-26 16:50:04 +02:00
parent b9a6664fcf
commit b05899bc9d

View File

@ -1,10 +1,11 @@
import Test.Hspec import Test.Hspec
import qualified Crypto as Cr import qualified Crypto as Cr
import Data.ByteString.UTF8 (fromString)
import qualified Utils as Ut import qualified Utils as Ut
main :: IO () main :: IO ()
main = hspec $ do main = hspec $ do
describe "Crypto" $ do describe "Crypto Encryption & Decryption" $ do
it "should encrypt and decrypt a message correctly" $ do it "should encrypt and decrypt a message correctly" $ do
let originalMessage = "Hello, World!" let originalMessage = "Hello, World!"
masterPassword = "mysecretpassword" masterPassword = "mysecretpassword"
@ -12,6 +13,22 @@ main = hspec $ do
decryptedMessage = Cr.decrypt' masterPassword encryptedMessage decryptedMessage = Cr.decrypt' masterPassword encryptedMessage
decryptedMessage `shouldBe` originalMessage decryptedMessage `shouldBe` originalMessage
describe "Crypto Hash Identical" $ do
it "should hash identical ByteString's to the same output" $ do
let input1 = "Hello, World!"
input2 = "Hello, World!"
hash1 = Cr.hash' $ fromString input1
hash2 = Cr.hash' $ fromString input2
hash1 `shouldBe` hash2
describe "Crypto Hash Different" $ do
it "should hash different ByteString's to different output" $ do
let input1 = "Hello, World!"
input2 = "Hello, World"
hash1 = Cr.hash' $ fromString input1
hash2 = Cr.hash' $ fromString input2
hash1 `shouldNotBe` hash2
describe "Utils Valid password" $ do describe "Utils Valid password" $ do
it "should result in Valid for master password validation with valid input" $ do it "should result in Valid for master password validation with valid input" $ do
let password1 = "mysecretpassword" let password1 = "mysecretpassword"