packages feed

taskell-1.9.2.0: test/IO/GitHub/CardsTest.hs

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}

module IO.GitHub.CardsTest
    ( test_cards
    ) where

import ClassyPrelude

import Test.Tasty
import Test.Tasty.HUnit

import Data.Aeson

import IO.HTTP.GitHub.Card (MaybeCard (MaybeCard))

decodeCards :: Text -> Either String [MaybeCard]
decodeCards txt = eitherDecodeStrict $ encodeUtf8 txt

-- tests
test_cards :: TestTree
test_cards =
    testGroup
        "IO.HTTP.GitHub.Card"
        [ testCase
              "parses basic card"
              (assertEqual
                   "Gives back card"
                   (Right [MaybeCard (Just "blah") Nothing])
                   (decodeCards "[{\"note\": \"blah\"}]"))
        , testCase
              "parses basic card"
              (assertEqual
                   "Gives back card"
                   (Right
                        [MaybeCard Nothing (Just "https://api.github.com/projects/columns/7850783")])
                   (decodeCards
                        "[{\"note\": null, \"content_url\": \"https://api.github.com/projects/columns/7850783\"}]"))
        ]