diff --git a/test/Feature/RawOutputTypesSpec.hs b/test/Feature/RawOutputTypesSpec.hs index 6975ce63c..5ea7e7fbb 100644 --- a/test/Feature/RawOutputTypesSpec.hs +++ b/test/Feature/RawOutputTypesSpec.hs @@ -24,7 +24,7 @@ spec = describe "When raw-media-types config variable is missing or left empty" { matchHeaders= ["Content-Type" <:> "application/json; charset=utf-8"] } it "responds json to a GET request to RPC with Firefox Accept headers" $ - request methodGet "/rpc/get_projects_below?id=3" chromeAcceptHdrs "" + request methodGet "/rpc/get_projects_below?id=3" firefoxAcceptHdrs "" `shouldRespondWith` [json|[{"id":1,"name":"Windows 7","client_id":1}, {"id":2,"name":"Windows 10","client_id":1}]|] { matchHeaders= ["Content-Type" <:> "application/json; charset=utf-8"] } it "responds json to a GET request to RPC with Chrome Accept headers" $ diff --git a/test/Feature/SingularSpec.hs b/test/Feature/SingularSpec.hs index b1c0d03aa..3e67567d4 100644 --- a/test/Feature/SingularSpec.hs +++ b/test/Feature/SingularSpec.hs @@ -43,7 +43,7 @@ spec = { matchHeaders = ["Content-Type" <:> "application/vnd.pgrst.object+json; charset=utf-8"] } context "when updating rows" $ do - it "works for one row" $ do + it "works for one row with return=rep" $ do _ <- post "/addresses" [json| { id: 97, address: "A Street" } |] request methodPatch "/addresses?id=eq.97" @@ -52,6 +52,15 @@ spec = `shouldRespondWith` [str|{"id":97,"address":"B Street"}|] + it "works for one row with return=minimal" $ + request methodPatch + "/addresses?id=eq.97" + [("Prefer", "return=minimal"), singular] + [json| { address: "C Street" } |] + `shouldRespondWith` + "" + { matchStatus = 204 } + it "raises an error for multiple rows" $ do _ <- post "/addresses" [json| { id: 98, address: "xxx" } |] _ <- post "/addresses" [json| { id: 99, address: "yyy" } |] @@ -97,14 +106,14 @@ spec = } context "when creating rows" $ do - it "works for one row" $ do + it "works for one row with return=rep" $ do p <- request methodPost "/addresses" [("Prefer", "return=representation"), singular] [json| [ { id: 102, address: "xxx" } ] |] liftIO $ simpleBody p `shouldBe` [str|{"id":102,"address":"xxx"}|] - it "works for one row even with return=minimal" $ do + it "works for one row with return=minimal" $ do request methodPost "/addresses" [("Prefer", "return=minimal"), singular] [json| [ { id: 103, address: "xxx" } ] |] @@ -173,12 +182,18 @@ spec = } context "when deleting rows" $ do - it "works for one row" $ do + it "works for one row with return=rep" $ do p <- request methodDelete "/items?id=eq.11" [("Prefer", "return=representation"), singular] "" liftIO $ simpleBody p `shouldBe` [str|{"id":11}|] + it "works for one row with return=minimal" $ do + p <- request methodDelete + "/items?id=eq.12" + [("Prefer", "return=minimal"), singular] "" + liftIO $ simpleBody p `shouldBe` "" + it "raises an error when attempting to delete multiple entities" $ do let firstItems = "/items?id=gt.0&id=lt.6" request methodDelete firstItems