packages feed

gitlab-haskell-1.0.0.3: tests/API/TodosTests.hs

{-# LANGUAGE FlexibleInstances #-}

module API.TodosTests (todosTests) 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/todos.html
todosTests :: [TestTree]
todosTests =
  ( let fname = "data/api/todos/todo-items.json"
     in gitlabJsonParserTests
          "todo-items"
          fname
          (parseOne =<< BSL.readFile fname :: IO [Todo])
          ( do
              decodedFile <- parseOne =<< BSL.readFile fname :: IO [Todo]
              parseOne (encode decodedFile) :: IO [Todo]
          )
  )
    ++ ( let fname = "data/api/todos/mark-todo-item-done.json"
          in gitlabJsonParserTests
               "mark-todo-item-done"
               fname
               (parseOne =<< BSL.readFile fname :: IO Todo)
               ( do
                   decodedFile <- parseOne =<< BSL.readFile fname :: IO Todo
                   parseOne (encode decodedFile) :: IO Todo
               )
       )