Extern tag matcher with digit and dot patterns
All checks were successful
Build / audit (push) Successful in 14m36s
Build / test (push) Successful in 15m5s

This commit is contained in:
2024-03-24 13:20:22 +01:00
parent 7e59a8460d
commit 7c9c890056
3 changed files with 57 additions and 53 deletions

View File

@ -11,30 +11,33 @@ import Test.Hspec (Spec, describe, it, shouldBe)
spec :: Spec
spec = do
describe "stableTagTransform" $ do
it "excludes tags with +" $
let given = "v2.6.0+unreleased"
actual = stableTagTransform given
in actual `shouldBe` Nothing
it "recognizes a stable version" $
let given = "v2.6.0"
actual = stableTagTransform given
expected = Just "2.6.0"
in actual `shouldBe` expected
describe "match" $ do
it "matches an exact tag prefixed with v" $
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" $
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 "ignores suffix after wildcard" $
it "matches digits" $
let expected = Just "2.6.0"
actual = match "(v)*(-rc1)" "v2.6.0-rc1"
actual = match "(v)2.6.\\d" "v2.6.0"
in actual `shouldBe` expected
it "matches digits and dot" $
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