gitlab-haskell-1.0.0.0: tests/API/ProjectsTests.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
module API.ProjectsTests (projectsTests) 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/projects.html
projectsTests :: [TestTree]
projectsTests =
concat
[ let fname = "data/api/projects/list-all-projects.json"
in gitlabJsonParserTests
"list-all-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/projects/archive-project.json"
in gitlabJsonParserTests
"archive-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/get-single-project.json"
in gitlabJsonParserTests
"get-single-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/list-projects-starred-by-user.json"
in gitlabJsonParserTests
"list-projects-starred-by-user"
fname
(parseOne =<< BSL.readFile fname :: IO [Project])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Project]
parseOne (encode decodedFile) :: IO [Project]
),
let fname = "data/api/projects/unarchive-project.json"
in gitlabJsonParserTests
"unarchive-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/get-path-to-repository-storage.json"
in gitlabJsonParserTests
"get-path-to-repository-storage"
fname
(parseOne =<< BSL.readFile fname :: IO [RepositoryStorage])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [RepositoryStorage]
parseOne (encode decodedFile) :: IO [RepositoryStorage]
),
let fname = "data/api/projects/list-user-projects.json"
in gitlabJsonParserTests
"list-user-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/projects/unstar-project.json"
in gitlabJsonParserTests
"unstar-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/star-project.json"
in gitlabJsonParserTests
"star-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/star-project.json"
in gitlabJsonParserTests
"star-project"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
),
let fname = "data/api/projects/list-forks-of-project.json"
in gitlabJsonParserTests
"list-forks-of-project"
fname
(parseOne =<< BSL.readFile fname :: IO [Project])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Project]
parseOne (encode decodedFile) :: IO [Project]
),
let fname = "data/api/projects/starrers-of-project.json"
in gitlabJsonParserTests
"starrers-of-project"
fname
(parseOne =<< BSL.readFile fname :: IO [Starrer])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [Starrer]
parseOne (encode decodedFile) :: IO [Starrer]
),
let fname = "data/api/projects/upload-project-avatar.json"
in gitlabJsonParserTests
"upload-project-avatar"
fname
(parseOne =<< BSL.readFile fname :: IO ProjectAvatar)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO ProjectAvatar
parseOne (encode decodedFile) :: IO ProjectAvatar
),
let fname = "data/api/projects/get-project-users.json"
in gitlabJsonParserTests
"get-project-users"
fname
(parseOne =<< BSL.readFile fname :: IO [User])
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO [User]
parseOne (encode decodedFile) :: IO [User]
),
let fname = "data/api/projects/list-project-groups.json"
in gitlabJsonParserTests
"list-project-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/projects/transfer-project-new-namespace.json"
in gitlabJsonParserTests
"transfer-project-new-namespace"
fname
(parseOne =<< BSL.readFile fname :: IO Project)
( do
decodedFile <- parseOne =<< BSL.readFile fname :: IO Project
parseOne (encode decodedFile) :: IO Project
)
]
{-
Untested data files:
languages.json
get-project-hook.json
upload-file.json
get-project-push-rules.json
-}