packages feed

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

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}

module API.DiscussionsTests (discussionsTests) 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/discussions.html
discussionsTests :: [TestTree]
discussionsTests =
  concat
    [ let fname = "data/api/discussions/list-group-epic-discussion-items.json"
       in gitlabJsonParserTests
            "list-group-epic-discussion-items"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Discussion])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Discussion]
                parseOne (encode decodedFile) :: IO [Discussion]
            ),
      let fname = "data/api/discussions/list-project-merge-request-discussion-items.json"
       in gitlabJsonParserTests
            "list-project-merge-request-discussion-items"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Discussion])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Discussion]
                parseOne (encode decodedFile) :: IO [Discussion]
            ),
      let fname = "data/api/discussions/list-project-commit-discussion-items.json"
       in gitlabJsonParserTests
            "list-project-commit-discussion-items"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Discussion])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Discussion]
                parseOne (encode decodedFile) :: IO [Discussion]
            ),
      let fname = "data/api/discussions/list-project-snippet-discussion-items.json"
       in gitlabJsonParserTests
            "list-project-snippet-discussion-items"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Discussion])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Discussion]
                parseOne (encode decodedFile) :: IO [Discussion]
            ),
      let fname = "data/api/discussions/list-project-discussion-items.json"
       in gitlabJsonParserTests
            "list-project-discussion-items"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Discussion])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Discussion]
                parseOne (encode decodedFile) :: IO [Discussion]
            )
    ]