-
Notifications
You must be signed in to change notification settings - Fork 267
/
VersionParser.hs
35 lines (31 loc) · 1007 Bytes
/
VersionParser.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{-# LANGUAGE OverloadedStrings #-}
module Unison.Test.VersionParser where
import Control.Error.Safe (rightMay)
import Data.Text
import EasyTest
import Text.Megaparsec
import Unison.Codebase.Editor.RemoteRepo
import Unison.Codebase.Editor.VersionParser
import qualified Unison.Codebase.Path as Path
test :: Test ()
test =
scope "versionparser" . tests . fmap makeTest $
[ ("release/M1j", "releases._M1j"),
("release/M1j.2", "releases._M1j_2"),
("latest-abc", "main"),
("release/M2i_3", "releases._M2i_3"),
("release/M2i-HOTFIX", "releases._M2i_HOTFIX")
]
makeTest :: (Text, Text) -> Test ()
makeTest (version, path) =
scope (unpack version) $
expectEqual
(rightMay $ runParser defaultBaseLib "versionparser" version)
( Just
( ReadShareRemoteNamespace
{ server = DefaultCodeserver,
repo = "unison",
path = Path.fromList ["public", "base"] <> Path.fromText path
}
)
)