network-uri-template-0.1.0.0: test/Network/URI/Template/VarNameSpec.hs
-- |
--
-- Module : Network.URI.Template.VarNameSpec
-- Copyright : (c) 2025 Patrick Brisbin
-- License : AGPL-3
-- Maintainer : pbrisbin@gmail.com
-- Stability : experimental
-- Portability : POSIX
module Network.URI.Template.VarNameSpec
( spec
) where
import Prelude
import Data.List (isInfixOf)
import Network.URI.Template.Test
import Network.URI.Template.VarName
import Test.Hspec
spec :: Spec
spec = do
describe "varNameP" $ do
it "parses a simple variable" $ do
assertParse varNameP "var" "var"
it "parses alphanumerics and _" $ do
assertParse varNameP "foo_123" "foo_123"
it "parses percent-encoding" $ do
assertParse varNameP "foo%25bar" "foo%25bar"
it "parses dot-separated" $ do
assertParse varNameP "foo.b.a.r" "foo.b.a.r"
it "rejects other characters" $ do
refuteParse varNameP "foo-bar" ("unexpected '-'" `isInfixOf`)
it "rejects consecutive dots" $ do
refuteParse varNameP "foo..bar" ("unexpected '.'" `isInfixOf`)