@@ -33,6 +33,7 @@ spec = do
3333 onlyJsonObjectSpec
3434 notLongerThanSpec
3535 queryParamsSpec
36+ queryFlagsSpec
3637
3738serversEqualSpec :: Spec
3839serversEqualSpec = describe "serversEqual" $ do
@@ -123,6 +124,17 @@ queryParamsSpec = describe "QueryParams" $ do
123124 qs = C.unpack $ queryString req
124125 qs `shouldBe` "one=_&two=_"
125126
127+queryFlagsSpec :: Spec
128+queryFlagsSpec = describe "QueryFlags" $ do
129+
130+ it "reduce to an HTTP query string correctly" $ do
131+ let rng = mkQCGen 0
132+ burl = BaseUrl Http "localhost" 80 ""
133+ gen = genRequest flagsAPI
134+ req = (unGen gen rng 0) burl
135+ qs = C.unpack $ queryString req
136+ qs `shouldBe` "one=&two="
137+
126138------------------------------------------------------------------------------
127139-- APIs
128140------------------------------------------------------------------------------
@@ -139,6 +151,12 @@ type ParamsAPI = QueryParam "one" () :> QueryParam "two" () :> Get '[JSON] ()
139151paramsAPI :: Proxy ParamsAPI
140152paramsAPI = Proxy
141153
154+type FlagsAPI = QueryFlag "one" :> QueryFlag "two" :> Get '[JSON] ()
155+
156+flagsAPI :: Proxy FlagsAPI
157+flagsAPI = Proxy
158+
159+
142160server :: IO (Server API)
143161server = do
144162 mvar <- newMVar ""