From 568923344f0941b2771459dd8dbe935ac971a968 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 28 Dec 2024 14:53:58 +0530 Subject: Allow clicking with enter --- specs/Specs/AppEventSpec.hs | 18 +++++++++++++++++- specs/Specs/AppStateSpec.hs | 2 +- specs/Specs/ViewSpec.hs | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) (limited to 'specs') diff --git a/specs/Specs/AppEventSpec.hs b/specs/Specs/AppEventSpec.hs index e643958..98509de 100644 --- a/specs/Specs/AppEventSpec.hs +++ b/specs/Specs/AppEventSpec.hs @@ -2,6 +2,7 @@ module Specs.AppEventSpec where import Chelleport (eventHandler) import Chelleport.Types +import Data.Default (Default (def)) import qualified SDL import SDL.Internal.Numbered (FromNumber (fromNumber)) import Test.Hspec @@ -26,7 +27,7 @@ test = do SDL.keyboardEventKeyMotion = motion } let defaultMod = fromNumber 0 - let currentState = defaultAppState + let currentState = def context "when window quit event is triggered" $ do it "shuts down app" $ do @@ -58,6 +59,21 @@ test = do let action = eventHandler currentState $ mkKeyboardEvent SDL.KeycodeSpace SDL.Pressed (defaultMod {SDL.keyModifierLeftShift = True}) action `shouldBe` Just (ChainMouseClick LeftClick) + context "when enter key is pressed" $ do + it "triggers left mouse button click" $ do + let action = eventHandler currentState $ mkKeyboardEvent SDL.KeycodeReturn SDL.Pressed defaultMod + action `shouldBe` Just (TriggerMouseClick LeftClick) + + context "when pressed with right shift" $ do + it "chains left mouse button click" $ do + let action = eventHandler currentState $ mkKeyboardEvent SDL.KeycodeReturn SDL.Pressed (defaultMod {SDL.keyModifierRightShift = True}) + action `shouldBe` Just (ChainMouseClick LeftClick) + + context "when pressed with left shift" $ do + it "chains left mouse button click" $ do + let action = eventHandler currentState $ mkKeyboardEvent SDL.KeycodeReturn SDL.Pressed (defaultMod {SDL.keyModifierLeftShift = True}) + action `shouldBe` Just (ChainMouseClick LeftClick) + context "when minus key is pressed" $ do it "triggers left mouse button click" $ do let action = eventHandler currentState $ mkKeyboardEvent SDL.KeycodeMinus SDL.Pressed defaultMod diff --git a/specs/Specs/AppStateSpec.hs b/specs/Specs/AppStateSpec.hs index 44da414..d69ab0e 100644 --- a/specs/Specs/AppStateSpec.hs +++ b/specs/Specs/AppStateSpec.hs @@ -39,7 +39,7 @@ test = do action `shouldBe` Just (SetMode defaultSearchMode) describe "#update" $ do - let defaultState = defaultAppState {stateGrid = [["ABC", "DEF"], ["DJK", "JKL"]]} + let defaultState = def {stateGrid = [["ABC", "DEF"], ["DJK", "JKL"]]} context "with action ChainMouseClick" $ do context "when repetition is 1" $ do diff --git a/specs/Specs/ViewSpec.hs b/specs/Specs/ViewSpec.hs index 79c8173..f3cfdf2 100644 --- a/specs/Specs/ViewSpec.hs +++ b/specs/Specs/ViewSpec.hs @@ -3,12 +3,13 @@ module Specs.ViewSpec where import Chelleport.Config import Chelleport.Types import Chelleport.View +import Data.Default (Default (def)) import Test.Hspec import TestUtils test :: SpecWith () test = do - let defaultState = defaultAppState {stateGrid = [["ABC", "DEF"], ["DJK", "JKL"]]} + let defaultState = def {stateGrid = [["ABC", "DEF"], ["DJK", "JKL"]]} describe "#render" $ do context "when key sequence is empty" $ do -- cgit v1.3.1