@@ -30,32 +30,33 @@ spec = do
30 describe "parseBaseUrl" $ do
30 describe "parseBaseUrl" $ do
31 it "is total" $ do
31 it "is total" $ do
32 property $ \ string ->
32 property $ \ string ->
33− deepseq (fmap show (parseBaseUrl string)) True
33+ deepseq (fmap show (parseBaseUrl string :: Maybe BaseUrl)) True
35 it "is the inverse of showBaseUrl" $ do
35 it "is the inverse of showBaseUrl" $ do
36 property $ \ baseUrl ->
36 property $ \ baseUrl ->
37 counterexample (showBaseUrl baseUrl) $
37 counterexample (showBaseUrl baseUrl) $
38− parseBaseUrl (showBaseUrl baseUrl) ===
38+ (parseBaseUrl (showBaseUrl baseUrl) :: Maybe BaseUrl) ===
39− Right baseUrl
39+ Just baseUrl
41 context "trailing slashes" $ do
41 context "trailing slashes" $ do
42 it "allows trailing slashes" $ do
42 it "allows trailing slashes" $ do
43− parseBaseUrl "foo.com/" `shouldBe` Right (BaseUrl Http "foo.com" 80 "")
43+ (parseBaseUrl "foo.com/" :: Maybe BaseUrl)`shouldBe` Just (BaseUrl Http "foo.com" 80 "")
44 it "allows trailing slashes in paths" $ do
45 it "allows trailing slashes in paths" $ do
45− parseBaseUrl "foo.com/api/" `shouldBe` Right (BaseUrl Http "foo.com" 80 "api")
46+ (parseBaseUrl "foo.com/api/" :: Maybe BaseUrl) `shouldBe` Just (BaseUrl Http "foo.com" 80 "api")
47 context "urls without scheme" $ do
48 context "urls without scheme" $ do
48 it "assumes http" $ do
49 it "assumes http" $ do
49− parseBaseUrl "foo.com" `shouldBe` Right (BaseUrl Http "foo.com" 80 "")
50+ (parseBaseUrl "foo.com" :: Maybe BaseUrl) `shouldBe` Just (BaseUrl Http "foo.com" 80 "")
51 it "allows port numbers" $ do
52 it "allows port numbers" $ do
52− parseBaseUrl "foo.com:8080" `shouldBe` Right (BaseUrl Http "foo.com" 8080 "")
53+ (parseBaseUrl "foo.com:8080" :: Maybe BaseUrl) `shouldBe` Just (BaseUrl Http "foo.com" 8080 "")
54 it "can parse paths" $ do
55 it "can parse paths" $ do
55− parseBaseUrl "http://foo.com/api" `shouldBe` Right (BaseUrl Http "foo.com" 80 "api")
56+ (parseBaseUrl "http://foo.com/api" :: Maybe BaseUrl) `shouldBe` Just (BaseUrl Http "foo.com" 80 "api")
57 it "rejects ftp urls" $ do
58 it "rejects ftp urls" $ do
58− parseBaseUrl "ftp://foo.com" `shouldSatisfy` isLeft
59+ (parseBaseUrl "ftp://foo.com" :: Maybe BaseUrl) `shouldBe` Nothing
60instance Arbitrary BaseUrl where
61instance Arbitrary BaseUrl where
61 arbitrary = BaseUrl <$>
62 arbitrary = BaseUrl <$>