taskell-1.9.3.0: test/Taskell/IO/Keyboard/TypesTest.hs
module Taskell.IO.Keyboard.TypesTest
( test_types
) where
import ClassyPrelude
import Test.Tasty
import Test.Tasty.HUnit
import qualified Taskell.Events.Actions.Types as A (ActionType (..))
import Taskell.IO.Keyboard (addMissing, badMapping, defaultBindings)
import Taskell.IO.Keyboard.Types (Binding (..), Bindings)
notFull :: Bindings
notFull = [(BChar 'œ', A.Quit), (BChar 'U', A.Undo)]
notFullResult :: Bindings
notFullResult = notFull <> (drop 2 defaultBindings)
bad :: Bindings
bad = [(BChar 'q', A.Quit), (BChar 'u', A.Nothing), (BChar '>', A.Nothing), (BChar '<', A.ListLeft)]
-- tests
test_types :: TestTree
test_types =
testGroup
"Events.Actions.Types"
[ testCase
"not missing"
(assertEqual "Finds no missing items" defaultBindings (addMissing defaultBindings))
, testCase
"not missing"
(assertEqual "Finds missing items" notFullResult (addMissing notFull))
, testCase
"bad mapping"
(assertEqual "Finds bad mapping" (Left "invalid mapping") (badMapping bad))
]