gitlab-haskell-1.0.0.0: tests/API/GroupsTests.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module API.GroupsTests (groupsTests) where
import API.Common
import Data.Aeson
import qualified Data.ByteString.Lazy.Char8 as BSL
import GitLab
import Test.Tasty
-- | https://docs.gitlab.com/ee/api/groups.html
groupsTests :: [TestTree]
groupsTests =
concat
[ let fname = "data/api/groups/list-groups.json"
in gitlabJsonParserTests
"list-groups"
fname
(parseOne =<< BSL.readFile fname :: IO [Group])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Group]
parseOne (encode decodedFile) :: IO [Group]
),
let fname = "data/api/groups/list-group-shared-projects.json"
in gitlabJsonParserTests
"list-group-shared-projects"
fname
(parseOne =<< BSL.readFile fname :: IO [Project])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Project]
parseOne (encode decodedFile) :: IO [Project]
),
let fname = "data/api/groups/update-group.json"
in gitlabJsonParserTests
"update-group"
fname
(parseOne =<< BSL.readFile fname :: IO Group)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Group
parseOne (encode decodedFile) :: IO Group
),
let fname = "data/api/groups/list-group-subgroups.json"
in gitlabJsonParserTests
"list-group-subgroups"
fname
(parseOne =<< BSL.readFile fname :: IO [Group])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Group]
parseOne (encode decodedFile) :: IO [Group]
),
let fname = "data/api/groups/list-group-projects.json"
in gitlabJsonParserTests
"list-group-projects"
fname
(parseOne =<< BSL.readFile fname :: IO [Project])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Project]
parseOne (encode decodedFile) :: IO [Project]
),
let fname = "data/api/groups/list-groups-with-stats.json"
in gitlabJsonParserTests
"list-groups-with-stats"
fname
(parseOne =<< BSL.readFile fname :: IO [Group])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Group]
parseOne (encode decodedFile) :: IO [Group]
),
let fname = "data/api/groups/list-group-descendant-groups.json"
in gitlabJsonParserTests
"list-group-descendant-groups"
fname
(parseOne =<< BSL.readFile fname :: IO [Group])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Group]
parseOne (encode decodedFile) :: IO [Group]
),
let fname = "data/api/groups/details-of-group.json"
in gitlabJsonParserTests
"details-of-group"
fname
(parseOne =<< BSL.readFile fname :: IO Group)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Group
parseOne (encode decodedFile) :: IO Group
),
let fname = "data/api/groups/search-for-group.json"
in gitlabJsonParserTests
"search-for-group"
fname
(parseOne =<< BSL.readFile fname :: IO [Group])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Group]
parseOne (encode decodedFile) :: IO [Group]
),
let fname = "data/api/groups/details-of-group-with-projects-false.json"
in gitlabJsonParserTests
"details-of-group-with-projects-false"
fname
(parseOne =<< BSL.readFile fname :: IO Group)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Group
parseOne (encode decodedFile) :: IO Group
)
]
{-
Not tested yet:
add-group-push-rule.json
get-group-hook.json
get-group-push-rules.json
edit-group-push-rule.json
-}