feat: Fail schema cache lookup with invalid db-schemas config
Previously, we'd silently report "200 OK" on the root endpoint, but would never return any endpoints from the schema cache. Now the schema cache query fails because of the ::regnamespace cast.
This commit is contained in:
committed by
Wolfgang Walther
parent
f31848f2e5
commit
86c3257f54
@@ -9,59 +9,6 @@ import Test.Hspec.Wai.JSON
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
nonExistentSchema :: SpecWith ((), Application)
|
||||
nonExistentSchema = do
|
||||
describe "Non existent api schema" $ do
|
||||
it "succeeds when requesting root path" $
|
||||
get "/" `shouldRespondWith` 200
|
||||
|
||||
it "gives 404 when requesting a nonexistent table in this nonexistent schema" $
|
||||
get "/nonexistent_table" `shouldRespondWith` 404
|
||||
|
||||
describe "Non existent URL" $ do
|
||||
it "gives 404 on a single nested route" $
|
||||
get "/projects/nested" `shouldRespondWith` 404
|
||||
|
||||
it "gives 404 on a double nested route" $
|
||||
get "/projects/nested/double" `shouldRespondWith` 404
|
||||
|
||||
describe "Unsupported HTTP methods" $ do
|
||||
it "should return 405 for CONNECT method" $
|
||||
request methodConnect "/"
|
||||
[]
|
||||
""
|
||||
`shouldRespondWith`
|
||||
[json|
|
||||
{"hint": null,
|
||||
"details": null,
|
||||
"code": "PGRST117",
|
||||
"message":"Unsupported HTTP method: CONNECT"}|]
|
||||
{ matchStatus = 405 }
|
||||
|
||||
it "should return 405 for TRACE method" $
|
||||
request methodTrace "/"
|
||||
[]
|
||||
""
|
||||
`shouldRespondWith`
|
||||
[json|
|
||||
{"hint": null,
|
||||
"details": null,
|
||||
"code": "PGRST117",
|
||||
"message":"Unsupported HTTP method: TRACE"}|]
|
||||
{ matchStatus = 405 }
|
||||
|
||||
it "should return 405 for OTHER method" $
|
||||
request "OTHER" "/"
|
||||
[]
|
||||
""
|
||||
`shouldRespondWith`
|
||||
[json|
|
||||
{"hint": null,
|
||||
"details": null,
|
||||
"code": "PGRST117",
|
||||
"message":"Unsupported HTTP method: OTHER"}|]
|
||||
{ matchStatus = 405 }
|
||||
|
||||
pgErrorCodeMapping :: SpecWith ((), Application)
|
||||
pgErrorCodeMapping = do
|
||||
describe "PostreSQL error code mappings" $ do
|
||||
|
||||
@@ -126,7 +126,6 @@ main = do
|
||||
|
||||
extraSearchPathApp = appDbs testCfgExtraSearchPath
|
||||
unicodeApp = appDbs testUnicodeCfg
|
||||
nonexistentSchemaApp = appDbs testNonexistentSchemaCfg
|
||||
multipleSchemaApp = appDbs testMultipleSchemaCfg
|
||||
ignorePrivOpenApi = appDbs testIgnorePrivOpenApiCfg
|
||||
|
||||
@@ -221,10 +220,6 @@ main = do
|
||||
parallel $ before asymJwkSetApp $
|
||||
describe "Feature.Auth.AsymmetricJwtSpec" Feature.Auth.AsymmetricJwtSpec.spec
|
||||
|
||||
-- this test runs with a nonexistent db-schema
|
||||
parallel $ before nonexistentSchemaApp $
|
||||
describe "Feature.Query.NonExistentSchemaErrorSpec" Feature.Query.ErrorSpec.nonExistentSchema
|
||||
|
||||
-- this test runs with an extra search path
|
||||
parallel $ before extraSearchPathApp $ do
|
||||
describe "Feature.ExtraSearchPathSpec" Feature.ExtraSearchPathSpec.spec
|
||||
|
||||
@@ -227,9 +227,6 @@ testCfgAsymJWKSet =
|
||||
, configJWKS = rightToMaybe $ parseSecret secret
|
||||
}
|
||||
|
||||
testNonexistentSchemaCfg :: AppConfig
|
||||
testNonexistentSchemaCfg = baseCfg { configDbSchemas = fromList ["nonexistent"] }
|
||||
|
||||
testCfgExtraSearchPath :: AppConfig
|
||||
testCfgExtraSearchPath = baseCfg { configDbExtraSearchPath = ["public", "extensions", "EXTRA \"@/\\#~_-"] }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user