diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-08-11 13:53:48 +0300 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-08-11 13:53:48 +0300 |
| commit | a2e8e1bcf2fbfcc8cc1b980cca2b93df86e1a7fe (patch) | |
| tree | 20644ae36ab6b5496f46e777b89bfa84bb1fa2f0 /test/SlackBuilder/LatestVersionCheckSpec.hs | |
| parent | 8b3f87ecf2d623a276948bd388bb5a7a28d5139d (diff) | |
| download | slackbuilder-a2e8e1bcf2fbfcc8cc1b980cca2b93df86e1a7fe.tar.gz | |
Rename tests directory into test
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 |
