Update SQL tests and schema definitions for membership and invitation management

This commit includes updates to the SQL tests for the database layer handling memberships and invitations. Test cases are improved and expanded. It also introduces some changes to the underlying schema, including creation of new indices on the 'accounts' table and several adjustments to function definitions with regard to how user IDs are accessed. Also, some views related to user accounts are redefined for better data handling.
This commit is contained in:
giancarlo
2024-05-08 17:16:33 +07:00
parent 25abe83dfa
commit a501bb5444
3 changed files with 70 additions and 30 deletions

View File

@@ -58,6 +58,17 @@ select lives_ok(
'custom role should be able to create invitations'
);
select lives_ok(
$$ SELECT public.add_invitations_to_account('makerkit', ARRAY[ROW('example@makerkit.dev', 'custom-role')::public.invitation]); $$,
'custom role should be able to create invitations using the function public.add_invitations_to_account'
);
select throws_ok(
$$ SELECT public.add_invitations_to_account('makerkit', ARRAY[ROW('example2@makerkit.dev', 'owner')::public.invitation]); $$,
'new row violates row-level security policy for table "invitations"',
'cannot invite members with higher roles'
);
-- Foreigners should not be able to create invitations
select tests.create_supabase_user('user');
@@ -70,6 +81,11 @@ select throws_ok(
'new row violates row-level security policy for table "invitations"'
);
select throws_ok(
$$ SELECT public.add_invitations_to_account('makerkit', ARRAY[ROW('example@example.com', 'member')::public.invitation]); $$,
'new row violates row-level security policy for table "invitations"'
);
select is_empty($$
select * from public.invitations where account_id = makerkit.get_account_id_by_slug('makerkit') $$,
'no invitations should be listed'
@@ -77,4 +93,4 @@ select is_empty($$
select * from finish();
rollback;
rollback;

View File

@@ -45,6 +45,11 @@ select is(
'The member can check if they have a role on the account'
);
select isnt_empty(
$$ select * from public.get_account_members('makerkit') $$,
'The member can query the team account memberships using the get_account_members function'
);
select tests.authenticate_as('test');
-- Foreigners
@@ -77,6 +82,11 @@ select is_empty(
'The foreigner cannot query the team account'
);
select is_empty(
$$ select * from public.get_account_members('makerkit') $$,
'The foreigner cannot query the team members'
);
select * from finish();
rollback;
rollback;