craft-0.0.0.1: test/Craft/SSHSpec.hs
module Craft.SSHSpec (spec) where
import Test.Hspec
import Test.Hspec.Megaparsec
import qualified Text.Megaparsec as MP
import Craft.SSH
spec :: Spec
spec = do
describe "parseKeyType" $ do
let parse = MP.parse parseKeyType ""
it "fails on empty string" $
parse `shouldFailOn` ""
it "fails on just prefix" $
parse `shouldFailOn` "ssh-"
it "fails on uppercase prefix" $
parse `shouldFailOn` "SSH-RSA"
it "parses DSA" $
parse "ssh-dsa" `shouldParse` DSA
it "parses RSA" $
parse "ssh-rsa" `shouldParse` RSA
it "parses RSA1" $
parse "ssh-rsa1" `shouldParse` RSA1
it "parses ECDSA" $
parse "ssh-ecdsa" `shouldParse` ECDSA
it "parses ED25519" $
parse "ssh-ed25519" `shouldParse` ED25519
it "parses other keytypes" $
parse "ssh-foobar" `shouldParse` (KeyType "ssh-foobar")
it "parses mixed case" $
parse "ssh-rSa" `shouldParse` RSA