@@ -2,10 +2,11 @@ module BuildUrl.Spec where
22
33import Prelude
44
5−import Data.Maybe (Maybe(..))
5+import Data.Maybe (Maybe)
66import Test.Spec (Spec, describe, it)
77import Test.Spec.Assertions (shouldEqual)
88import Type.Proxy (Proxy(..))
9+import Unsafe.Coerce (unsafeCoerce)
910import Yoga.Fetch.Om.BuildUrl (buildUrl, substitutePathParams, appendQueryParams)
1011import Yoga.HTTP.API.Path (Path, type (/), type (:))
1112
@@ -50,24 +51,24 @@ spec = do
5051 "/users"
5152 result `shouldEqual` "/users?limit=10&offset=20"
5253
53− it "handles Maybe params - Just" do
54+ it "handles optional params - provided via partial record" do
5455 let
5556 result = appendQueryParams @(limit :: Maybe Int)
56− { limit: Just 10 }
57+ (unsafeCoerce { limit: 10 } :: Record (limit :: Maybe Int))
5758 "/users"
5859 result `shouldEqual` "/users?limit=10"
5960
60− it "handles Maybe params - Nothing" do
61+ it "handles optional params - omitted via partial record" do
6162 let
6263 result = appendQueryParams @(limit :: Maybe Int)
63− { limit: Nothing }
64+ (unsafeCoerce {} :: Record (limit :: Maybe Int))
6465 "/users"
6566 result `shouldEqual` "/users"
6667
67− it "handles mixed Maybe and required params" do
68+ it "handles mixed optional and required params" do
6869 let
6970 result = appendQueryParams @(limit :: Maybe Int, offset :: Int)
70− { limit: Nothing, offset: 20 }
71+ (unsafeCoerce { offset: 20 } :: Record (limit :: Maybe Int, offset :: Int))
7172 "/users"
7273 result `shouldEqual` "/users?offset=20"
7374