diff options
| author | Akshay Nair <phenax5@gmail.com> | 2024-12-20 20:45:11 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2024-12-20 20:45:11 +0530 |
| commit | 69f9c8ac053de7793c31c87572c9e044ae8369ee (patch) | |
| tree | e4d017be238d1064c274a33a55550fccc968d21b /specs | |
| parent | 496c7d048df6a9a3650c0a0b996888decb4ea9d1 (diff) | |
| download | chelleport-69f9c8ac053de7793c31c87572c9e044ae8369ee.tar.gz chelleport-69f9c8ac053de7793c31c87572c9e044ae8369ee.zip | |
Minor refactor
Diffstat (limited to 'specs')
| -rw-r--r-- | specs/Specs/AppEventSpec.hs | 2 | ||||
| -rw-r--r-- | specs/Specs/AppStateUpdateSpec.hs | 31 |
2 files changed, 21 insertions, 12 deletions
diff --git a/specs/Specs/AppEventSpec.hs b/specs/Specs/AppEventSpec.hs index 18e685b..3cdbe94 100644 --- a/specs/Specs/AppEventSpec.hs +++ b/specs/Specs/AppEventSpec.hs @@ -39,7 +39,7 @@ test = do context "when space key is pressed" $ do it "triggers left mouse button click" $ do let action = eventHandler $ mkKeyboardEvent SDL.KeycodeSpace SDL.Pressed - action `shouldBe` Just TriggerLeftClick + action `shouldBe` Just (TriggerMouseClick LeftClick) context "when tab key is pressed" $ do it "resets key state" $ do diff --git a/specs/Specs/AppStateUpdateSpec.hs b/specs/Specs/AppStateUpdateSpec.hs index d8502db..3f8ca47 100644 --- a/specs/Specs/AppStateUpdateSpec.hs +++ b/specs/Specs/AppStateUpdateSpec.hs @@ -2,6 +2,8 @@ module Specs.AppStateUpdateSpec where import Chelleport (initialState, update) import Chelleport.Types +import Chelleport.Utils (uniq) +import Control.Monad (join) import Mock import qualified SDL import Test.Hspec @@ -11,13 +13,20 @@ test = do describe "#initialState" $ do it "returns the initial state of the app" $ do (initState, _) <- runWithMocks initialState - length (stateGrid initState) `shouldBe` 9 - stateGrid initState `shouldSatisfy` all ((== 16) . length) - stateGrid initState `shouldSatisfy` all (all ((== 2) . length)) stateKeySequence initState `shouldBe` [] stateIsMatched initState `shouldBe` False stateIsShiftPressed initState `shouldBe` False + it "returns grid with 16x9 key sequences" $ do + (initState, _) <- runWithMocks initialState + length (stateGrid initState) `shouldBe` 9 + stateGrid initState `shouldSatisfy` all ((== 16) . length) + stateGrid initState `shouldSatisfy` all (all ((== 2) . length)) + + it "returns grid with all unique key sequences" $ do + (initState, _) <- runWithMocks initialState + join (stateGrid initState) `shouldBe` uniq (join $ stateGrid initState) + describe "#update" $ do let defaultState = State @@ -55,27 +64,27 @@ test = do ((_, action), _) <- runWithMocks $ update currentState $ HandleKeyInput SDL.KeycodeF action `shouldBe` Just (MoveMousePosition (0, 1)) - context "with action TriggerLeftClick" $ do + context "with action TriggerMouseClick" $ do let currentState = defaultState - it "hides window and triggers left click" $ do - (_, mock) <- runWithMocks $ update currentState TriggerLeftClick + it "hides window and triggers mouse click" $ do + (_, mock) <- runWithMocks $ update currentState $ TriggerMouseClick LeftClick calls mock `shouldContain` [CallHideWindow, CallPressMouseButton LeftClick] it "continues with action ShutdownApp without updating state" $ do - ((nextState, action), _) <- runWithMocks $ update currentState TriggerLeftClick + ((nextState, action), _) <- runWithMocks $ update currentState $ TriggerMouseClick LeftClick action `shouldBe` Just ShutdownApp nextState `shouldBe` currentState - context "with action ChainLeftClick" $ do + context "with action ChainMouseClick" $ do let currentState = defaultState - it "hides window, triggers left click and shows the window again" $ do - (_, mock) <- runWithMocks $ update currentState ChainLeftClick + it "hides window, triggers mouse click and shows the window again" $ do + (_, mock) <- runWithMocks $ update currentState $ ChainMouseClick LeftClick calls mock `shouldBe` [CallHideWindow, CallPressMouseButton LeftClick, CallShowWindow] it "continues with action ResetKeys without updating state" $ do - ((nextState, action), _) <- runWithMocks $ update currentState ChainLeftClick + ((nextState, action), _) <- runWithMocks $ update currentState $ ChainMouseClick LeftClick action `shouldBe` Just ResetKeys nextState `shouldBe` currentState |
