fix: Add a hint and clarification to the no relationship found error (#1858)
This commit is contained in:
@@ -184,7 +184,9 @@ spec =
|
||||
|
||||
it "fails if the fk is not known" $
|
||||
get "/message?select=id,sender:person!space(name)&id=lt.4" `shouldRespondWith`
|
||||
[json|{"message":"Could not find foreign keys between these entities. No relationship found between message and person"}|]
|
||||
[json|{
|
||||
"hint":"If a new foreign key between these entities was created in the database, try reloading the schema cache.",
|
||||
"message":"Could not find a relationship between message and person in the schema cache"}|]
|
||||
{ matchStatus = 400
|
||||
, matchHeaders = [matchContentTypeJson] }
|
||||
|
||||
@@ -443,13 +445,17 @@ spec =
|
||||
{ matchHeaders = [matchContentTypeJson] }
|
||||
it "doesn't work if the junction is only internal" $
|
||||
get "/end_1?select=end_2(*)" `shouldRespondWith`
|
||||
[json|{"message":"Could not find foreign keys between these entities. No relationship found between end_1 and end_2"}|]
|
||||
[json|{
|
||||
"hint":"If a new foreign key between these entities was created in the database, try reloading the schema cache.",
|
||||
"message":"Could not find a relationship between end_1 and end_2 in the schema cache"}|]
|
||||
{ matchStatus = 400
|
||||
, matchHeaders = [matchContentTypeJson] }
|
||||
it "shouldn't try to embed if the private junction has an exposed homonym" $
|
||||
-- ensures the "invalid reference to FROM-clause entry for table "rollen" error doesn't happen.
|
||||
-- Ref: https://github.com/PostgREST/postgrest/issues/1587#issuecomment-734995669
|
||||
get "/schauspieler?select=filme(*)" `shouldRespondWith`
|
||||
[json|{"message":"Could not find foreign keys between these entities. No relationship found between schauspieler and filme"}|]
|
||||
[json|{
|
||||
"hint":"If a new foreign key between these entities was created in the database, try reloading the schema cache.",
|
||||
"message":"Could not find a relationship between schauspieler and filme in the schema cache"}|]
|
||||
{ matchStatus = 400
|
||||
, matchHeaders = [matchContentTypeJson] }
|
||||
|
||||
@@ -225,8 +225,10 @@ spec actualPgVersion = do
|
||||
get "/items?always_false=is.false" `shouldRespondWith` 400
|
||||
|
||||
it "matches filtering nested items 2" $
|
||||
get "/clients?select=id,projects(id,tasks2(id,name))&projects.tasks.name=like.Design*"
|
||||
`shouldRespondWith` [json| {"message":"Could not find foreign keys between these entities. No relationship found between projects and tasks2"}|]
|
||||
get "/clients?select=id,projects(id,tasks2(id,name))&projects.tasks.name=like.Design*" `shouldRespondWith`
|
||||
[json| {
|
||||
"hint":"If a new foreign key between these entities was created in the database, try reloading the schema cache.",
|
||||
"message":"Could not find a relationship between projects and tasks2 in the schema cache"}|]
|
||||
{ matchStatus = 400
|
||||
, matchHeaders = [matchContentTypeJson]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user