packages feed

scuttlebutt-types-0.2.0: test/LinkSpec.hs

{-# LANGUAGE OverloadedStrings #-}

module LinkSpec where

import Ssb.Types.Link
import Ssb.Types.Key
import Test.Hspec
import Data.Text
import Data.Maybe

feedLink :: Text
feedLink = "@LA9HYf5rnUJFHHTklKXLLRyrEytayjbFZRo76Aj/qKs=.ed25519"

spec :: Spec
spec = do
	describe "Link" $ do
		it "parses" $ do
			let (Right l) = parseLink feedLink
			linkSigil l `shouldBe` '@'
			linkTo l `shouldBe` "LA9HYf5rnUJFHHTklKXLLRyrEytayjbFZRo76Aj/qKs="
			linkTag l `shouldBe` "ed25519"
			formatLink l `shouldBe` feedLink
	describe "FeedLink" $ do
		it "parses" $ do
			let (Right l) = fromLink =<< parseLink feedLink
			unFeedLink l `shouldBe` fromJust (parseEd25519PublicKey "LA9HYf5rnUJFHHTklKXLLRyrEytayjbFZRo76Aj/qKs=")