* Get PKcols inside tables - done with SQL for tables and with an additional step in Haskell for views. This fixes an fk column being considered as a pk column on views and corrects the test added on https://github.com/PostgREST/postgrest/pull/1875/files/1d549768580310e18aac4ffa6dbd01c5b77934a7#r853674126 * classify view key dependencies in SQL * remove Column from Relationship * Merge cols/fcols in Relationship and ensure allM2ORels and allViewsKeyDependencies fk columns are ordered - done by attnum in SQL * Cardinality now contains relColumns instead of Relationship - this simplifies getJoinConditions.
33 lines
961 B
Haskell
33 lines
961 B
Haskell
module Feature.OpenApi.RootSpec where
|
|
|
|
import Network.HTTP.Types
|
|
import Network.Wai (Application)
|
|
|
|
import Test.Hspec
|
|
import Test.Hspec.Wai
|
|
import Test.Hspec.Wai.JSON
|
|
|
|
import Protolude hiding (get)
|
|
|
|
import SpecHelper
|
|
|
|
spec :: SpecWith ((), Application)
|
|
spec =
|
|
describe "root spec function" $ do
|
|
it "accepts application/openapi+json" $
|
|
request methodGet "/"
|
|
[("Accept","application/openapi+json")] "" `shouldRespondWith`
|
|
[json|{
|
|
"swagger": "2.0",
|
|
"info": {"title": "PostgREST API", "description": "This is a dynamic API generated by PostgREST"}
|
|
}|]
|
|
{ matchHeaders = ["Content-Type" <:> "application/openapi+json; charset=utf-8"] }
|
|
|
|
it "accepts application/json" $
|
|
request methodGet "/"
|
|
[("Accept", "application/json")] "" `shouldRespondWith`
|
|
[json| {
|
|
"qiSchema":"test","qiName":"has_fk"
|
|
} |]
|
|
{ matchHeaders = [matchContentTypeJson] }
|