For now, this is almost identical to the campsite types, but this section is for purely informational pages that have no other relation to the database than “belongs to the same company”. Part of #33.
57 lines
2.1 KiB
PL/PgSQL
57 lines
2.1 KiB
PL/PgSQL
-- Test add_page
|
|
set client_min_messages to warning;
|
|
create extension if not exists pgtap;
|
|
reset client_min_messages;
|
|
|
|
begin;
|
|
|
|
set search_path to camper, public;
|
|
|
|
select plan(12);
|
|
|
|
select has_function('camper', 'add_page', array ['integer', 'text', 'text']);
|
|
select function_lang_is('camper', 'add_page', array ['integer', 'text', 'text'], 'sql');
|
|
select function_returns('camper', 'add_page', array ['integer', 'text', 'text'], 'uuid');
|
|
select isnt_definer('camper', 'add_page', array ['integer', 'text', 'text']);
|
|
select volatility_is('camper', 'add_page', array ['integer', 'text', 'text'], 'volatile');
|
|
select function_privs_are('camper', 'add_page', array ['integer', 'text', 'text'], 'guest', array[]::text[]);
|
|
select function_privs_are('camper', 'add_page', array ['integer', 'text', 'text'], 'employee', array[]::text[]);
|
|
select function_privs_are('camper', 'add_page', array ['integer', 'text', 'text'], 'admin', array['EXECUTE']);
|
|
select function_privs_are('camper', 'add_page', array ['integer', 'text', 'text'], 'authenticator', array[]::text[]);
|
|
|
|
|
|
set client_min_messages to warning;
|
|
truncate page cascade;
|
|
truncate company cascade;
|
|
reset client_min_messages;
|
|
|
|
|
|
insert into company (company_id, business_name, vatin, trade_name, phone, email, web, address, city, province, postal_code, country_code, currency_code, default_lang_tag)
|
|
values (1, 'Company 2', 'XX123', '', '555-555-555', 'a@a', '', '', '', '', '', 'ES', 'EUR', 'ca')
|
|
, (2, 'Company 4', 'XX234', '', '666-666-666', 'b@b', '', '', '', '', '', 'FR', 'USD', 'ca')
|
|
;
|
|
|
|
select lives_ok(
|
|
$$ select add_page(1, 'Page A', '<!-- block --><h2>This is what, exactly?</h2><!-- /block --><p>Dunno</p>') $$,
|
|
'Should be able to add a page to the first company'
|
|
);
|
|
|
|
select lives_ok(
|
|
$$ select add_page(2, 'Page B', '') $$,
|
|
'Should be able to add a page to the second company'
|
|
);
|
|
|
|
select bag_eq(
|
|
$$ select company_id, title, content::text from page $$,
|
|
$$ values (1, 'Page A', '<!-- block --><h2>This is what, exactly?</h2><!-- /block --><p>Dunno</p>')
|
|
, (2, 'Page B', '')
|
|
$$,
|
|
'Should have added all two pages'
|
|
);
|
|
|
|
|
|
select *
|
|
from finish();
|
|
|
|
rollback;
|