diff options
author | Vincent Ambo <mail@tazj.in> | 2021-12-13T22·51+0300 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2021-12-13T23·15+0300 |
commit | 019f8fd2113df4c5247c3969c60fd4f0e08f91f7 (patch) | |
tree | 76a857f61aa88f62a30e854651e8439db77fd0ea /users/wpcarro/zoo/Spec.hs | |
parent | 464bbcb15c09813172c79820bcf526bb10cf4208 (diff) | |
parent | 6123e976928ca3d8d93f0b2006b10b5f659eb74d (diff) |
subtree(users/wpcarro): docking briefcase at '24f5a642' r/3226
git-subtree-dir: users/wpcarro git-subtree-mainline: 464bbcb15c09813172c79820bcf526bb10cf4208 git-subtree-split: 24f5a642af3aa1627bbff977f0a101907a02c69f Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
Diffstat (limited to 'users/wpcarro/zoo/Spec.hs')
-rw-r--r-- | users/wpcarro/zoo/Spec.hs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/users/wpcarro/zoo/Spec.hs b/users/wpcarro/zoo/Spec.hs new file mode 100644 index 000000000000..ba3f71d7c754 --- /dev/null +++ b/users/wpcarro/zoo/Spec.hs @@ -0,0 +1,54 @@ +-------------------------------------------------------------------------------- +module Spec where +-------------------------------------------------------------------------------- +import RIO +import Test.Hspec +import Test.QuickCheck +import Main hiding (main) + +import qualified RIO.Text as Text +-------------------------------------------------------------------------------- + +main :: IO () +main = hspec $ do + describe "Main" $ do + it "handles seconds" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "s"]) == + (Just defaultShiftTimeRequest { shiftSeconds = x }) + + it "handles minutes" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "m"]) == + (Just defaultShiftTimeRequest { shiftMinutes = x }) + + it "handles hours" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "h"]) == + (Just defaultShiftTimeRequest { shiftHours = x }) + + it "handles days" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "d"]) == + (Just defaultShiftTimeRequest { shiftDays = x }) + + it "handles weeks" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "w"]) == + (Just defaultShiftTimeRequest { shiftWeeks = x }) + + it "handles months" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "M"]) == + (Just defaultShiftTimeRequest { shiftMonths = x }) + + it "handles quarters" $ do + property $ \x -> parseTime (Text.concat [x & show & Text.pack, "q"]) == + (Just defaultShiftTimeRequest { shiftQuarters = x }) + + it "handles multiple shifts" $ do + parseTime "1s-20m5h0d-4w100M-3y2q" == + (Just $ ShiftTimeRequest + { shiftSeconds = 1 + , shiftMinutes = -20 + , shiftHours = 5 + , shiftDays = 0 + , shiftWeeks = -4 + , shiftMonths = 100 + , shiftQuarters = 2 + , shiftYears = -3 + }) |