packages feed

gitlab-haskell-1.0.0.0: tests/API/MembersTests.hs

{-# LANGUAGE FlexibleInstances #-}

module API.MembersTests (membersTests) where

import API.Common
import Control.Monad.IO.Class
import Data.Aeson
import qualified Data.ByteString.Lazy.Char8 as BSL
import GitLab
import GitLab.SystemHooks.GitLabSystemHooks
import GitLab.SystemHooks.Types
import Test.Tasty
import Test.Tasty.HUnit

-- | https://docs.gitlab.com/ee/api/members.html
membersTests :: [TestTree]
membersTests =
  concat
    [ let fname = "data/api/members/list-pending-members.json"
       in gitlabJsonParserTests
            "list-project-repository-tags"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Member])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Member]
                parseOne (encode decodedFile) :: IO [Member]
            ),
      let fname = "data/api/members/billable-members-of-group.json"
       in gitlabJsonParserTests
            "billable-members-of-group"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Member])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Member]
                parseOne (encode decodedFile) :: IO [Member]
            ),
      let fname = "data/api/members/removed-override-flag-member-group.json"
       in gitlabJsonParserTests
            "removed-override-flag-member-group"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/member-group-or-project-including-inherited-invited.json"
       in gitlabJsonParserTests
            "member-group-or-project-including-inherited-invited"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/override-flag-member-group.json"
       in gitlabJsonParserTests
            "override-flag-member-group"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/member-group-or-project.json"
       in gitlabJsonParserTests
            "member-group-or-project"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/edit-member-group-project.json"
       in gitlabJsonParserTests
            "edit-member-group-project"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/list-all-memembers-group-or-project-including-inherited-invited.json"
       in gitlabJsonParserTests
            "list-all-memembers-group-or-project-including-inherited-invited"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Member])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Member]
                parseOne (encode decodedFile) :: IO [Member]
            ),
      let fname = "data/api/members/add-member-group-project.json"
       in gitlabJsonParserTests
            "add-member-group-project"
            fname
            (parseOne =<< BSL.readFile fname :: IO Member)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
                parseOne (encode decodedFile) :: IO Member
            ),
      let fname = "data/api/members/list-all-memembers-group-or-project.json"
       in gitlabJsonParserTests
            "list-all-memembers-group-or-project"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Member])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Member]
                parseOne (encode decodedFile) :: IO [Member]
            )
            -- let fname = "data/api/members/membership-billable-member-of-group.json"
            --  in gitlabJsonParserTests
            --       "membership-billable-member-of-group"
            --       fname
            --       (parseOne =<< BSL.readFile fname :: IO Member)
            --       ( do
            --           decodedFile <- parseOne =<< BSL.readFile fname :: IO Member
            --           parseOne (encode decodedFile) :: IO Member
            --       )
    ]