Refactored several Supabase client functions and updated them to use generics. Also, the '@kit/supabase-config' package was removed from the project and all references were replaced accordingly. The project's dependencies were updated as well, including the Supabase package which was upgraded to the latest version.
79 lines
2.0 KiB
PL/PgSQL
79 lines
2.0 KiB
PL/PgSQL
begin;
|
|
|
|
create extension "basejump-supabase_test_helpers" version '0.0.6';
|
|
|
|
select
|
|
no_plan();
|
|
|
|
--- we insert a user into auth.users and return the id into user_id to use
|
|
select
|
|
tests.create_supabase_user('test1', 'test1@test.com');
|
|
|
|
select
|
|
tests.create_supabase_user('test2');
|
|
|
|
-- Create an organization account
|
|
select
|
|
tests.authenticate_as('test1');
|
|
|
|
select
|
|
public.create_account('Test');
|
|
|
|
select
|
|
row_eq($$
|
|
select
|
|
primary_owner_user_id, is_personal_account, slug, name from
|
|
makerkit.get_account_by_slug('test') $$, row
|
|
(tests.get_supabase_uid('test1'), false, 'test'::text,
|
|
'Test'::varchar), 'Users can create an organization account');
|
|
|
|
-- Should be the primary owner of the organization account by default
|
|
select
|
|
row_eq($$
|
|
select
|
|
account_role from public.accounts_memberships
|
|
where
|
|
account_id =(
|
|
select
|
|
id
|
|
from public.accounts
|
|
where
|
|
slug = 'test')
|
|
and user_id = tests.get_supabase_uid('test1') $$, row
|
|
('owner'::public.account_role), 'The primary owner should have the owner role for the organization account');
|
|
|
|
-- Should be able to see the organization account
|
|
select
|
|
isnt_empty($$
|
|
select
|
|
* from public.accounts
|
|
where
|
|
primary_owner_user_id = tests.get_supabase_uid('test1') $$, 'The primary owner should be able to see the organization account');
|
|
|
|
-- Others should not be able to see the organization account
|
|
select
|
|
tests.authenticate_as('test2');
|
|
|
|
select
|
|
is_empty($$
|
|
select
|
|
* from public.accounts
|
|
where
|
|
primary_owner_user_id = tests.get_supabase_uid('test1') $$, 'Other users should not be able to see the organization account');
|
|
|
|
-- should not have any role for the organization account
|
|
select
|
|
is (public.has_role_on_account((
|
|
select
|
|
id
|
|
from makerkit.get_account_by_slug('test'))),
|
|
false,
|
|
'Foreign users should not have any role for the organization account');
|
|
|
|
select
|
|
*
|
|
from
|
|
finish();
|
|
|
|
rollback;
|