From ebc7d40e70fee2e83330b91f4891d1882e854e08 Mon Sep 17 00:00:00 2001 From: Fraser Murray Date: Tue, 24 Nov 2020 16:04:05 +0000 Subject: [PATCH] Add a test for the overlapping WithStatus MimeRender instances --- servant-server/test/Servant/ServerSpec.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/servant-server/test/Servant/ServerSpec.hs b/servant-server/test/Servant/ServerSpec.hs index e3dec48e..f226e304 100644 --- a/servant-server/test/Servant/ServerSpec.hs +++ b/servant-server/test/Servant/ServerSpec.hs @@ -53,7 +53,7 @@ import Servant.API NoContent (..), NoContentVerb, NoFraming, OctetStream, Patch, PlainText, Post, Put, QueryFlag, QueryParam, QueryParams, Raw, RemoteHost, ReqBody, SourceIO, StdMethod (..), Stream, Strict, - UVerb, Union, Verb, addHeader) + UVerb, Union, Verb, WithStatus (..), addHeader) import Servant.Server (Context ((:.), EmptyContext), Handler, Server, Tagged (..), emptyServer, err401, err403, err404, respond, serve, @@ -841,7 +841,7 @@ instance HasStatus AnimalResponse where type UVerbApi = "person" :> Capture "shouldRedirect" Bool :> UVerb 'GET '[JSON] '[PersonResponse, RedirectResponse] - :<|> "animal" :> UVerb 'GET '[JSON] '[AnimalResponse] + :<|> "animal" :> UVerb 'GET '[JSON] '[WithStatus 203 AnimalResponse] uverbSpec :: Spec uverbSpec = describe "Servant.API.UVerb " $ do @@ -856,7 +856,9 @@ uverbSpec = describe "Servant.API.UVerb " $ do personHandler True = respond $ RedirectResponse "over there!" personHandler False = respond $ PersonResponse joe - animalHandler = respond $ AnimalResponse mouse + animalHandler :: Handler (Union '[WithStatus 203 AnimalResponse]) + animalHandler = respond $ + (WithStatus $ AnimalResponse mouse :: WithStatus 203 AnimalResponse) server :: Server UVerbApi server = personHandler :<|> animalHandler