diff options
Diffstat (limited to 'test/SlackBuilder/LatestVersionCheckSpec.hs')
| -rw-r--r-- | test/SlackBuilder/LatestVersionCheckSpec.hs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/SlackBuilder/LatestVersionCheckSpec.hs b/test/SlackBuilder/LatestVersionCheckSpec.hs new file mode 100644 index 0000000..54901c1 --- /dev/null +++ b/test/SlackBuilder/LatestVersionCheckSpec.hs @@ -0,0 +1,53 @@ +{- This Source Code Form is subject to the terms of the Mozilla Public License, + v. 2.0. If a copy of the MPL was not distributed with this file, You can + obtain one at https://mozilla.org/MPL/2.0/. -} + +module SlackBuilder.LatestVersionCheckSpec + ( spec + ) where + +import SlackBuilder.LatestVersionCheck +import Test.Hspec (Spec, describe, it, shouldBe) + +spec :: Spec +spec = do + describe "match" $ do + it "matches an exact tag prefixed with v" $ + let expected = Just "2.6.0" + actual = match "(v)2.6.0" "v2.6.0" + in actual `shouldBe` expected + + it "matches a glob pattern prefixed with v" $ + let expected = Just "2.6.0" + actual = match "(v)*" "v2.6.0" + in actual `shouldBe` expected + + it "matches digits" $ + let expected = Just "2.6.0" + actual = match "(v)2.6.\\d" "v2.6.0" + in actual `shouldBe` expected + + it "matches digits and dots" $ + let expected = Just "2.6.0" + actual = match "(v)\\." "v2.6.0" + in actual `shouldBe` expected + + it "rejects unexpected suffix" $ + let expected = Nothing + actual = match "(v)\\." "v2.6.0-rc1" + in actual `shouldBe` expected + + it "rejects remaining umatched characters" $ + let expected = Nothing + actual = match "2.6.0-rc1" "2.6.0" + in actual `shouldBe` expected + + it "consumes the last token matching nothing" $ + let expected = Just "abc" + actual = match "abc\\d\\d" "abc" + in actual `shouldBe` expected + + it "matches at least one digit" $ + let expected = Nothing + actual = match "1.\\D.3" "1..3" + in actual `shouldBe` expected |
