HasswordManager/test/Spec.hs
2024-05-26 16:35:15 +02:00

42 lines
1.6 KiB
Haskell

import Test.Hspec
import qualified Crypto as Cr
import qualified Utils as Ut
main :: IO ()
main = hspec $ do
describe "Crypto" $ do
it "should encrypt and decrypt a message correctly" $ do
let originalMessage = "Hello, World!"
masterPassword = "mysecretpassword"
encryptedMessage = Cr.encrypt' masterPassword originalMessage
decryptedMessage = Cr.decrypt' masterPassword encryptedMessage
decryptedMessage `shouldBe` originalMessage
describe "Utils Valid password" $ do
it "should result in Valid for master password validation with valid input" $ do
let password1 = "mysecretpassword"
password2 = "mysecretpassword"
result = Ut.validate_password password1 password2
result `shouldBe` Ut.Valid password1
describe "Utils DoNotMatch password" $ do
it "should result in DoNotMatch for master password validation with non-matching input" $ do
let password1 = "mysecretpassword"
password2 = "nonmatchingpassword"
result = Ut.validate_password password1 password2
result `shouldBe` Ut.DoNotMatch
describe "Utils Empty password" $ do
it "should result in Empty for master password validation with empty input" $ do
let password1 = ""
password2 = ""
result = Ut.validate_password password1 password2
result `shouldBe` Ut.Empty
describe "Utils TooShort password" $ do
it "should result in TooShort for master password validation with too short input" $ do
let password1 = "short"
password2 = "short"
result = Ut.validate_password password1 password2
result `shouldBe` Ut.TooShort