packages feed

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

{-# LANGUAGE FlexibleInstances #-}

module API.NotesTests (notesTests) 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/notes.html
notesTests :: [TestTree]
notesTests =
  concat
    [ let fname = "data/api/notes/project-issue-notes.json"
       in gitlabJsonParserTests
            "project-issue-notes"
            fname
            (parseOne =<< BSL.readFile fname :: IO [Note])
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO [Note]
                parseOne (encode decodedFile) :: IO [Note]
            ),
      let fname = "data/api/notes/single-merge-request-note.json"
       in gitlabJsonParserTests
            "single-merge-request-note"
            fname
            (parseOne =<< BSL.readFile fname :: IO Note)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Note
                parseOne (encode decodedFile) :: IO Note
            ),
      let fname = "data/api/notes/single-snippet-note.json"
       in gitlabJsonParserTests
            "single-snippet-note"
            fname
            (parseOne =<< BSL.readFile fname :: IO Note)
            ( do
                decodedFile <- parseOne =<< BSL.readFile fname :: IO Note
                parseOne (encode decodedFile) :: IO Note
            )
    ]