@@ -17,6 +17,7 @@ import Test.Hspec.QuickCheck(prop)
17import Test.QuickCheck
17import Test.QuickCheck
19import Web.HttpApiData
19import Web.HttpApiData
20+import Web.HttpApiData.Internal
21instance Arbitrary T.Text where
22instance Arbitrary T.Text where
22 arbitrary = T.pack <$> arbitrary
23 arbitrary = T.pack <$> arbitrary
@@ -63,13 +64,13 @@ instance ToHttpApiData a => ToHttpApiData (RandomCase a) where
63instance FromHttpApiData a => FromHttpApiData (RandomCase a) where
64instance FromHttpApiData a => FromHttpApiData (RandomCase a) where
64 parseUrlPiece s = RandomCase [] <$> parseUrlPiece s
65 parseUrlPiece s = RandomCase [] <$> parseUrlPiece s
66−-- | Check case insensitivity for @fromUrlPiece@.
67+-- | Check case insensitivity for @parseUrlPiece@.
67checkUrlPieceI :: forall a. (Eq a, ToHttpApiData a, FromHttpApiData a, Show a, Arbitrary a) => Proxy a -> String -> Spec
68checkUrlPieceI :: forall a. (Eq a, ToHttpApiData a, FromHttpApiData a, Show a, Arbitrary a) => Proxy a -> String -> Spec
68checkUrlPieceI _ = checkUrlPiece (Proxy :: Proxy (RandomCase a))
69checkUrlPieceI _ = checkUrlPiece (Proxy :: Proxy (RandomCase a))
70spec :: Spec
71spec :: Spec
72− describe "toUrlPiece <=> fromUrlPiece" $ do
73+ describe "toUrlPiece <=> parseUrlPiece" $ do
73 checkUrlPiece (Proxy :: Proxy ()) "()"
74 checkUrlPiece (Proxy :: Proxy ()) "()"
74 checkUrlPiece (Proxy :: Proxy Char) "Char"
75 checkUrlPiece (Proxy :: Proxy Char) "Char"
75 checkUrlPieceI (Proxy :: Proxy Bool) "Bool"
76 checkUrlPieceI (Proxy :: Proxy Bool) "Bool"
@@ -97,12 +98,9 @@ spec = do
97 checkUrlPieceI (Proxy :: Proxy (Either Version Day)) "Either Version Day"
98 checkUrlPieceI (Proxy :: Proxy (Either Version Day)) "Either Version Day"
99 it "bad integers are rejected" $ do
100 it "bad integers are rejected" $ do
100− fromUrlPiece (T.pack "123hello") `shouldBe` (Nothing :: Maybe Int)
101+ parseUrlPieceMaybe (T.pack "123hello") `shouldBe` (Nothing :: Maybe Int)
102 it "bounds checking works" $ do
103 it "bounds checking works" $ do
103− fromUrlPiece (T.pack "256") `shouldBe` (Nothing :: Maybe Int8)
104+ parseUrlPieceMaybe (T.pack "256") `shouldBe` (Nothing :: Maybe Int8)
104− fromUrlPiece (T.pack "-10") `shouldBe` (Nothing :: Maybe Word)
105+ parseUrlPieceMaybe (T.pack "-10") `shouldBe` (Nothing :: Maybe Word)
106− fromUrlPiece :: FromHttpApiData a => T.Text -> Maybe a
107− fromUrlPiece = either (const Nothing) Just . parseUrlPiece