packages feed

htree-0.1.1.0: test/Spec/HTree/Traverse.hs

module Spec.HTree.Traverse (spec) where

import Data.Functor.Const (Const (Const))
import Data.HTree.Tree (HTree, hctraverse)
import Spec.HTree.Fixtures (ex, exShown, unI, type Ex)
import Spec.HTree.Helpers (forgetHTree)
import Test.Hspec (Spec, describe, it)

spec :: Spec
spec = do
  describe "use hctraverse" $ do
    it "yields the same result as expected" $ do
      let traversed :: Maybe (HTree (Const String) Ex)
          traversed = hctraverse @Show (Just . Const . show . unI) ex
      Just `traverse` exShown == (forgetHTree <$> traversed)