Add check constraint to payment’s amount
This commit is contained in:
parent
4f646e35d6
commit
c6c550a036
|
@ -19,7 +19,7 @@ create table payment (
|
|||
description text not null,
|
||||
payment_date date not null default current_date,
|
||||
payment_account_id integer not null references payment_account,
|
||||
amount integer not null,
|
||||
amount integer not null constraint payment_amount_positive check (amount > 0),
|
||||
currency_code text not null references currency,
|
||||
tags tag_name[] not null default '{}',
|
||||
payment_status text not null default 'complete' references payment_status,
|
||||
|
|
|
@ -5,7 +5,7 @@ reset client_min_messages;
|
|||
|
||||
begin;
|
||||
|
||||
select plan(68);
|
||||
select plan(71);
|
||||
|
||||
set search_path to numerus, auth, public;
|
||||
|
||||
|
@ -17,6 +17,7 @@ select table_privs_are('payment', 'admin', array ['SELECT', 'INSERT', 'UPDATE',
|
|||
select table_privs_are('payment', 'authenticator', array []::text[]);
|
||||
|
||||
select has_column('payment', 'payment_id');
|
||||
select col_is_pk('payment', 'payment_id');
|
||||
select col_type_is('payment', 'payment_id', 'integer');
|
||||
select col_not_null('payment', 'payment_id');
|
||||
select col_hasnt_default('payment', 'payment_id');
|
||||
|
@ -165,6 +166,18 @@ select throws_ok(
|
|||
);
|
||||
reset role;
|
||||
|
||||
select throws_ok(
|
||||
$$ insert into payment (company_id, description, payment_account_id, amount, currency_code) values (2, 'Nope', 221, 0, 'EUR') $$,
|
||||
'23514', 'new row for relation "payment" violates check constraint "payment_amount_positive"',
|
||||
'Should not allow empty payments'
|
||||
);
|
||||
|
||||
select throws_ok(
|
||||
$$ insert into payment (company_id, description, payment_account_id, amount, currency_code) values (2, 'Nope', 221, -1, 'EUR') $$,
|
||||
'23514', 'new row for relation "payment" violates check constraint "payment_amount_positive"',
|
||||
'Should not allow negative payments'
|
||||
);
|
||||
|
||||
|
||||
select *
|
||||
from finish();
|
||||
|
|
Loading…
Reference in New Issue