shikensu-0.3.4: tests/Test/Helpers.hs
module Test.Helpers
( assertDef
, assertEq
, assertEqm
, define
) where
import Flow
import Shikensu
import Shikensu.Sorting (sortByAbsolutePath)
import Test.Tasty.HUnit (Assertion, assertEqual)
import qualified Data.List as List (head, sortBy)
-- Assertions
assertDef :: (Eq a, Show a) => IO Definition -> (Definition -> a) -> a -> Assertion
assertDef definition recordFn value =
fmap recordFn definition >>= assertEq value
assertEq :: (Eq a, Show a) => a -> a -> Assertion
assertEq =
assertEqual ""
assertEqm :: (Eq a, Show a) => IO a -> a -> Assertion
assertEqm a b =
a >>= assertEqual "" b
-- Shortcuts
define :: String -> String -> IO Definition
define pattern root =
root
|> Shikensu.listRelative [pattern]
|> fmap (List.sortBy sortByAbsolutePath)
|> fmap List.head