64 lines
2.9 KiB
PL/PgSQL
64 lines
2.9 KiB
PL/PgSQL
-- Copyright (c) HashiCorp, Inc.
|
|
-- SPDX-License-Identifier: BUSL-1.1
|
|
|
|
begin;
|
|
|
|
select plan(12);
|
|
|
|
-- helper statements for resetting test env
|
|
prepare delete_policy_storage_policy_resource as
|
|
delete from policy_storage_policy where public_id = 'pst__bcolors';
|
|
|
|
-- test constraints
|
|
|
|
-- retain_for_days and delete_after_days both cannot be set to 0
|
|
prepare insert_policy_delete_after_days_and_retain_for_days_zero as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', 0, 0);
|
|
select throws_ok('insert_policy_delete_after_days_and_retain_for_days_zero', 'P0001', null, 'delete_after_days and retain_for_days both cannot be zero');
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
prepare insert_policy_delete_after_days_negative as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', 10, -1);
|
|
select throws_ok('insert_policy_delete_after_days_negative', 23514, null, 'delete_after_days cannot be negative');
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
prepare insert_policy_delete_after_days_while_inf_retain as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', -1, 10);
|
|
select throws_ok('insert_policy_delete_after_days_while_inf_retain', 'P0001', null, 'delete_after_days must be 0 while retain_for_days is inf');
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
prepare insert_policy_delete_after_less_than_retain as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', 6, 5);
|
|
select throws_ok('insert_policy_delete_after_less_than_retain', 23514, null, 'delete_after must be greater than or equal to retain_for');
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
prepare retain_for_days_max as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', 40000, 0);
|
|
select throws_ok('retain_for_days_max', 23514);
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
prepare delete_after_days_max as
|
|
insert into policy_storage_policy
|
|
(public_id, scope_id, retain_for_days, delete_after_days)
|
|
values
|
|
('pst__bcolors', 'global', 0, 40000);
|
|
select throws_ok('delete_after_days_max', 23514);
|
|
select lives_ok('delete_policy_storage_policy_resource', 'policy_storage_policy cleanup');
|
|
|
|
rollback;
|