@@ -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+
1428BEGIN ;
1529
1630CREATE EXTENSION IF NOT EXISTS pgtap;
1731
1832SELECT 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