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;
|