test: move http header related tests from io tests to spec tests

Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com>
This commit is contained in:
Taimoor Zaeem
2026-06-16 13:13:51 -05:00
committed by Steve Chavez
parent 8fa26ee865
commit b6c12abf0e
7 changed files with 44 additions and 44 deletions
+1
View File
@@ -222,6 +222,7 @@ test-suite spec
Feature.Auth.NoJwtSecretSpec Feature.Auth.NoJwtSecretSpec
Feature.ConcurrentSpec Feature.ConcurrentSpec
Feature.CorsSpec Feature.CorsSpec
Feature.HttpHeaderSpec
Feature.ExtraSearchPathSpec Feature.ExtraSearchPathSpec
Feature.NoSuperuserSpec Feature.NoSuperuserSpec
Feature.ObservabilitySpec Feature.ObservabilitySpec
@@ -196,23 +196,6 @@
pdSchema: public pdSchema: public
pdVolatility: Volatile pdVolatility: Volatile
- - qiName: custom_vary_hdr
qiSchema: public
- - pdDescription: null
pdFuncSettings: []
pdHasVariadic: false
pdName: custom_vary_hdr
pdParams: []
pdReturnType:
contents:
contents:
qiName: void
qiSchema: pg_catalog
tag: Scalar
tag: Single
pdSchema: public
pdVolatility: Volatile
- - qiName: get_postgres_version - - qiName: get_postgres_version
qiSchema: public qiSchema: public
- - pdDescription: null - - pdDescription: null
-7
View File
@@ -259,13 +259,6 @@ create or replace function notify_pgrst() returns void as $$
notify pgrst; notify pgrst;
$$ language sql; $$ language sql;
create or replace function custom_vary_hdr() returns void as $$
begin
perform set_config('response.headers', '[{"Vary": "X-Test-Accept"}]', false);
end
$$ language plpgsql;
create or replace function get_work_mem() returns text as $$ create or replace function get_work_mem() returns text as $$
select current_setting('work_mem', true); select current_setting('work_mem', true);
$$ language sql; $$ language sql;
-20
View File
@@ -2087,26 +2087,6 @@ def test_client_error_verbosity_config(defaultenv):
} }
def test_vary_custom_header_set(defaultenv):
"Test default Vary header value is overridden in pre-request database function"
env = {**defaultenv, "PGRST_DB_PRE_REQUEST": "custom_vary_hdr"}
with run(env=env) as postgrest:
response = postgrest.session.get("/projects")
assert response.headers["Vary"] == "X-Test-Accept"
def test_vary_default_header_set(defaultenv):
"Test default Vary header value matches default one"
with run(env=defaultenv) as postgrest:
response = postgrest.session.get("/projects")
assert response.headers["Vary"] == "Accept, Prefer, Range"
def test_positive_pool_metric(defaultenv): def test_positive_pool_metric(defaultenv):
"When a network failure is caused on the pg connection, pgrst_db_pool_available stays positive" "When a network failure is caused on the pg connection, pgrst_db_pool_available stays positive"
+34
View File
@@ -0,0 +1,34 @@
module Feature.HttpHeaderSpec where
import Network.HTTP.Types
import Test.Hspec
import Test.Hspec.Wai
import PostgREST.Config (AppConfig (..))
import PostgREST.SchemaCache.Identifiers (QualifiedIdentifier (..))
import Protolude
import SpecHelper
spec :: SpecWithConfig
spec withConfig = do
withConfig baseCfg { configDbPreRequest = Just $ QualifiedIdentifier "test" "custom_vary_hdr" } $
describe "Test HTTP Custom Header" $
it "Test default Vary header value is overridden in pre-request database function" $
request methodGet "/projects" []
""
`shouldRespondWith`
ResponseMatcher
{ matchStatus = 200
, matchBody = MatchBody (\_ _ -> Nothing) -- match any body
, matchHeaders = [ "Vary" <:> "X-Test-Accept" ] }
withConfig baseCfg $ describe "Test HTTP Default Header" $
it "Test default Vary header value matches default one" $
request methodGet "/projects" []
""
`shouldRespondWith`
ResponseMatcher
{ matchStatus = 200
, matchBody = MatchBody (\_ _ -> Nothing) -- match any body
, matchHeaders = [ "Vary" <:> "Accept, Prefer, Range" ] }
+2
View File
@@ -29,6 +29,7 @@ import qualified Feature.Auth.NoJwtSecretSpec
import qualified Feature.ConcurrentSpec import qualified Feature.ConcurrentSpec
import qualified Feature.CorsSpec import qualified Feature.CorsSpec
import qualified Feature.ExtraSearchPathSpec import qualified Feature.ExtraSearchPathSpec
import qualified Feature.HttpHeaderSpec
import qualified Feature.NoSuperuserSpec import qualified Feature.NoSuperuserSpec
import qualified Feature.ObservabilitySpec import qualified Feature.ObservabilitySpec
import qualified Feature.OpenApi.DisabledOpenApiSpec import qualified Feature.OpenApi.DisabledOpenApiSpec
@@ -118,6 +119,7 @@ main = do
, ("Feature.Auth.NoJwtSecretSpec" , Feature.Auth.NoJwtSecretSpec.spec) , ("Feature.Auth.NoJwtSecretSpec" , Feature.Auth.NoJwtSecretSpec.spec)
, ("Feature.ConcurrentSpec" , Feature.ConcurrentSpec.spec) , ("Feature.ConcurrentSpec" , Feature.ConcurrentSpec.spec)
, ("Feature.CorsSpec" , Feature.CorsSpec.spec) , ("Feature.CorsSpec" , Feature.CorsSpec.spec)
, ("Feature.HttpHeaderSpec" , Feature.HttpHeaderSpec.spec)
, ("Feature.NoSuperuserSpec" , Feature.NoSuperuserSpec.spec) , ("Feature.NoSuperuserSpec" , Feature.NoSuperuserSpec.spec)
, ("Feature.ObservabilitySpec" , Feature.ObservabilitySpec.spec) , ("Feature.ObservabilitySpec" , Feature.ObservabilitySpec.spec)
, ("Feature.OpenApi.DisabledOpenApiSpec" , Feature.OpenApi.DisabledOpenApiSpec.spec) , ("Feature.OpenApi.DisabledOpenApiSpec" , Feature.OpenApi.DisabledOpenApiSpec.spec)
+7
View File
@@ -3870,3 +3870,10 @@ create table visits (
end_time timestamp, end_time timestamp,
visit_type visit_type visit_type visit_type
); );
create or replace function custom_vary_hdr() returns void as $$
begin
perform set_config('response.headers', '[{"Vary": "X-Test-Accept"}]', false);
end
$$ language plpgsql;