packages feed

dzen-dhall-1.0.0: test/DzenDhall/Test/Plug.hs

module DzenDhall.Test.Plug where

import DzenDhall.Commands.Plug as Plug

import Data.Maybe (fromJust)
import Network.URI
import Test.Tasty (TestTree, TestName, testGroup)
import Test.Tasty.HUnit
import Text.Parsec

mkTest :: TestName -> String -> Either ParseError PluginSourceSpec -> TestTree
mkTest name input expected =
  Test.Tasty.HUnit.testCase name $
    Plug.parseSourceSpec input @?= expected

getTests :: TestTree
getTests =
  testGroup "Plug parsing"

  [ mkTest "FromGithub #0"
    "fo0O/Bar"
    (Right (FromGithub "fo0O" "Bar" "master"))
  , mkTest "FromGithub #1"
    "fo0-O/Ba_r@dev-elopv1.1"
    (Right (FromGithub "fo0-O" "Ba_r" "dev-elopv1.1"))
  , let url = "https://hackage.haskell.org/" in
      mkTest "url" url $ Right (FromURL $ fromJust $ parseURI url)
  , mkTest "FromOrg" "foo" $ Right (FromOrg "foo" "master")
  , mkTest "FromOrg" "foo@develop" $ Right (FromOrg "foo" "develop")
  ]