From b05899bc9d746e91a522b14b30e233c3943eea0a Mon Sep 17 00:00:00 2001 From: yanvoi Date: Sun, 26 May 2024 16:50:04 +0200 Subject: [PATCH] add hash tests --- test/Spec.hs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/Spec.hs b/test/Spec.hs index 31987d1..0972588 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -1,10 +1,11 @@ import Test.Hspec import qualified Crypto as Cr +import Data.ByteString.UTF8 (fromString) import qualified Utils as Ut main :: IO () main = hspec $ do - describe "Crypto" $ do + describe "Crypto Encryption & Decryption" $ do it "should encrypt and decrypt a message correctly" $ do let originalMessage = "Hello, World!" masterPassword = "mysecretpassword" @@ -12,6 +13,22 @@ main = hspec $ do decryptedMessage = Cr.decrypt' masterPassword encryptedMessage 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 it "should result in Valid for master password validation with valid input" $ do let password1 = "mysecretpassword"