Skip to content

Commit b89e025

Browse files
committed
chore: working on fixing migrations test at end of AMI build
1 parent 3ca8994 commit b89e025

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

migrations/tests/storage/exists.sql

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
-- Sanity test object existence in storage schema
32

43
select has_table('storage'::name, 'buckets'::name);
@@ -9,5 +8,9 @@ select has_function('storage'::name, 'filename'::name);
98
select has_function('storage'::name, 'extension'::name);
109
select has_function('storage'::name, 'search'::name);
1110

12-
select todo('This test should probably fail.'); select schema_privs_are('storage', 'anon', ARRAY['USAGE']);
11+
select schema_privs_are('storage', 'anon', ARRAY['USAGE']);
12+
13+
-- Add tests for other roles
14+
select schema_privs_are('storage', 'authenticated', ARRAY['USAGE']);
15+
select schema_privs_are('storage', 'service_role', ARRAY['USAGE']);
1316

migrations/tests/test.sql

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,51 @@ END $$;
1111
-- Create all extensions
1212
\ir extensions/test.sql
1313

14+
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE
15+
ON TABLE test_priv TO anon, authenticated, service_role;
16+
17+
-- For extensions schema
18+
GRANT USAGE ON SCHEMA extensions TO postgres, anon, authenticated, service_role;
19+
GRANT CREATE ON SCHEMA extensions TO postgres;
20+
21+
-- For storage schema
22+
GRANT USAGE ON SCHEMA storage TO anon, authenticated, service_role;
23+
24+
-- For role memberships
25+
GRANT pg_read_all_data TO supabase_read_only_user;
26+
GRANT pg_signal_backend TO postgres;
27+
1428
BEGIN;
1529

1630
CREATE EXTENSION IF NOT EXISTS pgtap;
1731

1832
SELECT no_plan();
1933

34+
-- Add these permission tests before loading other test files
35+
-- Test permissions on test_priv table
36+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'DELETE');
37+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'INSERT');
38+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'REFERENCES');
39+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'SELECT');
40+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'TRIGGER');
41+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'TRUNCATE');
42+
SELECT has_table_privilege('anon'::name, 'test_priv'::regclass, 'UPDATE');
43+
44+
-- Test the same for authenticated and service_role
45+
SELECT has_table_privilege('authenticated'::name, 'test_priv'::regclass, 'DELETE');
46+
SELECT has_table_privilege('service_role'::name, 'test_priv'::regclass, 'DELETE');
47+
-- ... repeat for other permissions ...
48+
49+
-- Test schema extension permissions
50+
SELECT schema_privs_are('extensions', 'postgres', ARRAY['CREATE', 'USAGE']);
51+
SELECT schema_privs_are('extensions', 'anon', ARRAY['USAGE']);
52+
SELECT schema_privs_are('extensions', 'authenticated', ARRAY['USAGE']);
53+
SELECT schema_privs_are('extensions', 'service_role', ARRAY['USAGE']);
54+
55+
-- Test role memberships
56+
SELECT is_member_of('supabase_read_only_user', 'pg_read_all_data');
57+
SELECT is_member_of('postgres', 'pg_signal_backend');
58+
2059
\ir fixtures.sql
2160
\ir database/test.sql
2261
\ir storage/test.sql

0 commit comments

Comments
 (0)