Skip to content

Commit 4584974

Browse files
ffittschentmspzz
andauthored
Remove query parameters from repo name parsed from binary Cartfile entry (#222)
* Remove query parameters from binary Cartfile entry * Add test for gitRepoNameFromCartfileEntry Co-authored-by: Tommaso Piazza <[email protected]>
1 parent 6f4a08c commit 4584974

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/Utils.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ gitRepoNameFromCartfileEntry (CartfileEntry GitHub (Location l) _) =
213213
gitRepoNameFromCartfileEntry (CartfileEntry Git (Location l) _) =
214214
ProjectName . T.unpack . T.replace ".git" "" . last . splitWithSeparator '/' . T.pack $ l
215215
gitRepoNameFromCartfileEntry (CartfileEntry Binary (Location l) _) =
216-
ProjectName . T.unpack . T.replace ".json" "" . last . splitWithSeparator '/' . T.pack $ l
216+
ProjectName . T.unpack . head . T.splitOn ".json" . last . splitWithSeparator '/' . T.pack $ l
217217

218218

219219

tests/Tests.hs

+15
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Data.Either ( rights )
1010
import Data.List ( intercalate
1111
, nub
1212
, intersect
13+
, isInfixOf
1314
)
1415
import Data.Yaml ( decodeEither'
1516
, encode
@@ -148,6 +149,17 @@ prop_filterRomeFileEntriesByPlatforms_min :: [RomefileEntry] -> [RomefileEntry]
148149
prop_filterRomeFileEntriesByPlatforms_min base filteringValues =
149150
(length $ base `filterRomeFileEntriesByPlatforms` filteringValues) <= length base
150151

152+
binaryURLPathWithParameters :: Gen String
153+
binaryURLPathWithParameters = do
154+
firstPart <- arbitrary
155+
secondPart <- arbitrary
156+
lastPart <- arbitrary `suchThat` (\a -> not $ "/" `isInfixOf` a || ".json" `isInfixOf` a)
157+
return $ "https://" ++ firstPart ++ "/" ++ secondPart ++ "/" ++ "binary.json?some_paramter=test&" ++ lastPart
158+
159+
prop_gitRepoNameFromCartfileEntry_alaways_binary :: String -> Bool
160+
prop_gitRepoNameFromCartfileEntry_alaways_binary url =
161+
gitRepoNameFromCartfileEntry (CartfileEntry Binary (Location url) (Version "")) == ProjectName "binary"
162+
151163
main :: IO ()
152164
main = do
153165

@@ -189,3 +201,6 @@ main = do
189201

190202
putStrLn "prop_filterRomeFileEntriesByPlatforms_filters"
191203
quickCheck (withMaxSuccess 1000 prop_filterRomeFileEntriesByPlatforms_filters)
204+
205+
putStrLn "prop_gitRepoNameFromCartfileEntry_alaways_binary"
206+
quickCheck (withMaxSuccess 1000 $ forAll binaryURLPathWithParameters prop_gitRepoNameFromCartfileEntry_alaways_binary)

0 commit comments

Comments
 (0)