From 44edf962d870c1bde968bb825b2cfe46942c669f Mon Sep 17 00:00:00 2001 From: Taimoor Zaeem Date: Mon, 6 Jul 2026 18:02:42 +0500 Subject: [PATCH] test: move db-pre-config with pg reserved word func to spec tests Signed-off-by: Taimoor Zaeem --- .../test_schema_cache_snapshot[dbRoutines].yaml | 17 ----------------- test/io/fixtures/schema.sql | 4 ---- test/io/test_io.py | 13 ------------- test/spec/Feature/Query/RpcSpec.hs | 14 +++++++++++--- test/spec/fixtures/schema.sql | 4 ++++ 5 files changed, 15 insertions(+), 37 deletions(-) diff --git a/test/io/__snapshots__/test_cli/test_schema_cache_snapshot[dbRoutines].yaml b/test/io/__snapshots__/test_cli/test_schema_cache_snapshot[dbRoutines].yaml index 52dfbdcc4..6dbeec179 100644 --- a/test/io/__snapshots__/test_cli/test_schema_cache_snapshot[dbRoutines].yaml +++ b/test/io/__snapshots__/test_cli/test_schema_cache_snapshot[dbRoutines].yaml @@ -478,23 +478,6 @@ pdSchema: public pdVolatility: Volatile -- - qiName: 'true' - qiSchema: public - - - pdDescription: null - pdFuncSettings: [] - pdHasVariadic: false - pdName: 'true' - pdParams: [] - pdReturnType: - contents: - contents: - qiName: bool - qiSchema: pg_catalog - tag: Scalar - tag: Single - pdSchema: public - pdVolatility: Volatile - - - qiName: create_function qiSchema: public - - pdDescription: null diff --git a/test/io/fixtures/schema.sql b/test/io/fixtures/schema.sql index 445e0b9dd..ae1a6fe28 100644 --- a/test/io/fixtures/schema.sql +++ b/test/io/fixtures/schema.sql @@ -251,10 +251,6 @@ select * from projects; create or replace view infinite_recursion as select * from infinite_recursion; -create or replace function "true"() returns boolean as $_$ - select true; -$_$ language sql; - create or replace function notify_pgrst() returns void as $$ notify pgrst; $$ language sql; diff --git a/test/io/test_io.py b/test/io/test_io.py index f3a0d9e29..d1f3fc74b 100644 --- a/test/io/test_io.py +++ b/test/io/test_io.py @@ -2037,19 +2037,6 @@ def test_connection_error_message_does_not_claim_retry(defaultenv): assert any('"message":"Database connection error."' in line for line in output) -def test_db_pre_config_with_pg_reserved_words(defaultenv): - "The db-pre-config should not fail unexpectedly when function name is a postgres reserved word" - - env = { - **defaultenv, - "PGRST_DB_PRE_CONFIG": "true", # call true function - } - - with run(env=env) as postgrest: - response = postgrest.session.post("/rpc/true") - assert response.status_code == 200 - - def test_db_pre_config_with_non_existent_function(defaultenv): "Log error when db-pre-config is set to non-existent function" diff --git a/test/spec/Feature/Query/RpcSpec.hs b/test/spec/Feature/Query/RpcSpec.hs index 121fe5f72..588b29033 100644 --- a/test/spec/Feature/Query/RpcSpec.hs +++ b/test/spec/Feature/Query/RpcSpec.hs @@ -10,14 +10,16 @@ import Test.Hspec.Wai import Test.Hspec.Wai.JSON import Text.Heredoc -import PostgREST.Config.PgVersion (PgVersion, pgVersion180) +import PostgREST.Config (AppConfig (..)) +import PostgREST.Config.PgVersion (PgVersion, pgVersion180) +import PostgREST.SchemaCache.Identifiers (QualifiedIdentifier (..)) import Protolude hiding (get) import SpecHelper spec :: PgVersion -> SpecWithConfig -spec actualPgVersion withConfig = withConfig baseCfg $ - describe "remote procedure call" $ do +spec actualPgVersion withConfig = do + withConfig baseCfg $ describe "remote procedure call" $ do context "a proc that returns a set" $ do context "returns paginated results" $ do it "using the Range header" $ @@ -1490,3 +1492,9 @@ spec actualPgVersion withConfig = withConfig baseCfg $ `shouldRespondWith` [json| 1 |] { matchStatus = 200 } + + withConfig baseCfg { configDbPreConfig = Just $ QualifiedIdentifier "test" "true" } $ + it "should not fail when function name is a pg reserved word" $ + request methodGet "/rpc/true" + [] "" + `shouldRespondWith` 200 diff --git a/test/spec/fixtures/schema.sql b/test/spec/fixtures/schema.sql index ca5cd0782..3c8f2f41a 100644 --- a/test/spec/fixtures/schema.sql +++ b/test/spec/fixtures/schema.sql @@ -3877,3 +3877,7 @@ create or replace function custom_vary_hdr() returns void as $$ perform set_config('response.headers', '[{"Vary": "X-Test-Accept"}]', false); end $$ language plpgsql; + +create or replace function "true"() returns boolean as $_$ + select true; +$_$ language sql;