implemented Handlers.incAnchorBy

This commit is contained in:
Jonathan Lamothe 2021-09-22 20:54:09 -04:00
parent 994e2777c3
commit 89879153de
2 changed files with 27 additions and 0 deletions

View File

@ -31,6 +31,7 @@ module Helpers (
editParam,
editAnchor,
incParamBy,
incAnchorBy,
incStrBy
) where
@ -145,6 +146,15 @@ incParamBy
-> Maybe Url
incParamBy n p = editParam p $ incStrBy n
-- | Increment an anchor by a given amount (if possible)
incAnchorBy
:: Integer
-- ^ the amount to increment by
-> Url
-- ^ the 'Url' to edit
-> Maybe Url
incAnchorBy n = editAnchor $ incStrBy n
-- | Increment a 'String' representation of an 'Integer' by a given
-- amount (if possible)
incStrBy

View File

@ -39,6 +39,7 @@ spec = do
editParamSpec
editAnchorSpec
incParamBySpec
incAnchorBySpec
incStrBySpec
textToUrlSpec :: Spec
@ -194,6 +195,22 @@ incParamBySpec = describe "incParamBy" $ mapM_
, ( "c", Just "foo" )
]
incAnchorBySpec :: Spec
incAnchorBySpec = describe "incAnchorBy" $ mapM_
( \(desc, n, url, expected) -> context desc $
it ("should be " ++ show expected) $
incAnchorBy n url `shouldBe` expected
)
-- description, number, url, expected
[ ( "+1", 1, urlWith "1", Just $ urlWith "2" )
, ( "+2", 2, urlWith "1", Just $ urlWith "3" )
, ( "empty", 1, simpleUrl, Just simpleUrl )
, ( "non-numeric", 1, urlWith "foo", Nothing )
]
where urlWith str = simpleUrl { anchor = Just str }
incStrBySpec :: Spec
incStrBySpec = describe "incStrBy" $ mapM_
( \(n, str, expected) ->