You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/db/sqltest/tests/wh/auth_token/delete.sql

76 lines
2.4 KiB

-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(14);
-- should have an auth token for carly
select is(count(*), 1::bigint)
from auth_token
where public_id = 'tok____carly';
-- should have one fact for carly.
select is(count(*), 1::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- the fact should not have a deleted time.
select is(auth_token_deleted_date_key, -1)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_deleted_time_key, -1)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_deleted_time, 'infinity'::wh_timestamp)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(upper(auth_token_valid_time_range), 'infinity'::timestamptz)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- Now delete the auth token and confirm the fact was updated properly.
delete
from auth_token
where public_id = 'tok____carly';
-- should still have one fact
select is(count(*), 1::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- times should be updated to have a deleted time.
select is(auth_token_deleted_date_key, wh_date_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_deleted_time_key, wh_time_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_deleted_time, now()::wh_timestamp)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(upper(auth_token_valid_time_range), now())
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- should have an auth token for cora that is in pending status
select is(count(*), 1::bigint)
from auth_token
where public_id = 'tok_____cora'
and status = 'auth token pending';
-- since the auth token is pending, there should be no fact for cora.
select is(count(*), 0::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u_______cora';
-- Now delete the pending auth token, this should not result in a fact.
delete
from auth_token
where public_id = 'tok_____cora';
select is(count(*), 0::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u_______cora';
select * from finish();
rollback;