packages feed

webgear-server-0.1.0: test/Unit/Trait/Path.hs

-- |
-- Copyright        : (c) Raghu Kaippully, 2020
-- License          : MPL-2.0
-- Maintainer       : rkaippully@gmail.com
--
module Unit.Trait.Path
  ( tests
  ) where

import Network.Wai (defaultRequest, pathInfo)
import Test.Tasty (TestTree, testGroup)
import Test.Tasty.HUnit (assertFailure, testCase, (@?=))

import WebGear.Trait
import WebGear.Trait.Path


testMissingPathVar :: TestTree
testMissingPathVar = testCase "PathVar match: missing variable" $ do
  let req = defaultRequest { pathInfo = [] }
  check @(PathVar "tag" Int) req >>= \case
    CheckSuccess _ _ -> assertFailure "unexpected success"
    CheckFail e      -> e @?= PathVarNotFound

tests :: TestTree
tests = testGroup "Trait.Path" [ testMissingPathVar ]