Fix json test versioning for postgresql 10.9 bugfix (#1340)
This removes the test for buggy behaviour, it seems not useful anymore.
This commit is contained in:
@@ -426,6 +426,12 @@ pgVersion96 = PgVersion 90600 "9.6"
|
|||||||
pgVersion100 :: PgVersion
|
pgVersion100 :: PgVersion
|
||||||
pgVersion100 = PgVersion 100000 "10"
|
pgVersion100 = PgVersion 100000 "10"
|
||||||
|
|
||||||
|
pgVersion109 :: PgVersion
|
||||||
|
pgVersion109 = PgVersion 100009 "10.9"
|
||||||
|
|
||||||
|
pgVersion110 :: PgVersion
|
||||||
|
pgVersion110 = PgVersion 110000 "11.0"
|
||||||
|
|
||||||
pgVersion112 :: PgVersion
|
pgVersion112 :: PgVersion
|
||||||
pgVersion112 = PgVersion 110002 "11.2"
|
pgVersion112 = PgVersion 110002 "11.2"
|
||||||
|
|
||||||
|
|||||||
+5
-16
@@ -11,8 +11,8 @@ import Test.Hspec.Wai
|
|||||||
import Test.Hspec.Wai.JSON
|
import Test.Hspec.Wai.JSON
|
||||||
import Text.Heredoc
|
import Text.Heredoc
|
||||||
|
|
||||||
import PostgREST.Types (PgVersion, pgVersion100, pgVersion114,
|
import PostgREST.Types (PgVersion, pgVersion100, pgVersion109,
|
||||||
pgVersion95)
|
pgVersion110, pgVersion114, pgVersion95)
|
||||||
import Protolude hiding (get)
|
import Protolude hiding (get)
|
||||||
import SpecHelper
|
import SpecHelper
|
||||||
|
|
||||||
@@ -264,26 +264,15 @@ spec actualPgVersion =
|
|||||||
[json|"object"|]
|
[json|"object"|]
|
||||||
{ matchHeaders = [matchContentTypeJson] }
|
{ matchHeaders = [matchContentTypeJson] }
|
||||||
|
|
||||||
when (actualPgVersion >= pgVersion114) $
|
when ((actualPgVersion >= pgVersion109 && actualPgVersion < pgVersion110)
|
||||||
it "parses quoted JSON arguments as JSON string (Postgres >= 11.4)" $
|
|| actualPgVersion >= pgVersion114) $
|
||||||
|
it "parses quoted JSON arguments as JSON string (from Postgres 10.9, 11.4)" $
|
||||||
post "/rpc/json_argument"
|
post "/rpc/json_argument"
|
||||||
[json| { "arg": "{ \"key\": 3 }" } |]
|
[json| { "arg": "{ \"key\": 3 }" } |]
|
||||||
`shouldRespondWith`
|
`shouldRespondWith`
|
||||||
[json|"string"|]
|
[json|"string"|]
|
||||||
{ matchHeaders = [matchContentTypeJson] }
|
{ matchHeaders = [matchContentTypeJson] }
|
||||||
|
|
||||||
when (actualPgVersion >= pgVersion100 && actualPgVersion < pgVersion114) $
|
|
||||||
it "fails to parse quoted JSON arguments (Postgres >= 10, < 11.4)" $
|
|
||||||
-- Confirming buggy Postgres behavior:
|
|
||||||
-- https://www.postgresql.org/message-id/D6921B37-BD8E-4664-8D5F-DB3525765DCD%40vllmrt.net
|
|
||||||
post "/rpc/json_argument"
|
|
||||||
[json| { "arg": "{ \"key\": 3 }" } |]
|
|
||||||
`shouldRespondWith`
|
|
||||||
[json|{"hint":null,"details":"Token \"key\" is invalid.","code":"22P02","message":"invalid input syntax for type json"}|]
|
|
||||||
{ matchStatus = 400
|
|
||||||
, matchHeaders = [matchContentTypeJson]
|
|
||||||
}
|
|
||||||
|
|
||||||
context "improper input" $ do
|
context "improper input" $ do
|
||||||
it "rejects unknown content type even if payload is good" $ do
|
it "rejects unknown content type even if payload is good" $ do
|
||||||
request methodPost "/rpc/sayhello"
|
request methodPost "/rpc/sayhello"
|
||||||
|
|||||||
Reference in New Issue
Block a user