diff options
| author | Akshay Nair <phenax5@gmail.com> | 2024-12-14 11:23:35 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2024-12-14 11:23:35 +0530 |
| commit | 80add34b15855932e9201d7426d9df01aa82c845 (patch) | |
| tree | 1a5ce02bf169da0dd49c3bf907da129d5c5f4118 /specs | |
| parent | 8fb21cb43b610c5a04268637155d3efb07217040 (diff) | |
| download | chelleport-80add34b15855932e9201d7426d9df01aa82c845.tar.gz chelleport-80add34b15855932e9201d7426d9df01aa82c845.zip | |
Add key sequence filtering and rendering matched keys
Diffstat (limited to 'specs')
| -rw-r--r-- | specs/Main.hs | 4 | ||||
| -rw-r--r-- | specs/Specs/KeySequenceSpec.hs | 22 |
2 files changed, 24 insertions, 2 deletions
diff --git a/specs/Main.hs b/specs/Main.hs index 436c6aa..335407f 100644 --- a/specs/Main.hs +++ b/specs/Main.hs @@ -1,8 +1,8 @@ module Main (main) where -import qualified Specs.ParserSpec +import qualified Specs.KeySequenceSpec import Test.Hspec (hspec) main :: IO () main = hspec $ do - Specs.ParserSpec.test + Specs.KeySequenceSpec.test diff --git a/specs/Specs/KeySequenceSpec.hs b/specs/Specs/KeySequenceSpec.hs new file mode 100644 index 0000000..8b820b4 --- /dev/null +++ b/specs/Specs/KeySequenceSpec.hs @@ -0,0 +1,22 @@ +module Specs.KeySequenceSpec where + +import Chelleport.KeySequence (nextChars) +import Test.Hspec + +test = do + describe "#nextChars" $ do + it "filters key sequence and returns next characters" $ do + nextChars "AB" [["XYZ", "ABC"], ["AMK", "BBL", "ABD"]] + `shouldBe` Just "CD" + nextChars "A" [["XYZ", "ABC"], ["AMK", "BBL", "ABD"]] + `shouldBe` Just "BM" + + context "when exact match is present" $ do + it "returns next characters" $ do + nextChars "ABD" [["XYZ", "ABC"], ["AMK", "BBL", "ABD"]] + `shouldBe` Just "" + + context "when there are no matches" $ do + it "returns nothing" $ do + nextChars "FOO" [["XYZ", "ABC"], ["AMK", "BBL", "ABD"]] + `shouldBe` Nothing |
