Files
threshold/internal/db/sqltest/tests/wh/auth_token/update.sql
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

114 lines
4.2 KiB
PL/PgSQL
Raw Normal View History

-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(20);
-- 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 have an access time that is less than now.
select cmp_ok(auth_token_approximate_last_access_date_key, '<=', wh_date_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select cmp_ok(auth_token_approximate_last_access_time_key, '<', wh_time_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select cmp_ok(auth_token_approximate_last_access_time, '<', now()::wh_timestamp)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select cmp_ok(lower(auth_token_approximate_active_time_range), '<', now())
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select cmp_ok(upper(auth_token_approximate_active_time_range), '<', now())
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- update access time for carly's auth token.
update auth_token
set approximate_last_access_time = now()
where public_id = 'tok____carly';
-- should still only have one fact for carly.
select is(count(*), 1::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
-- the fact should have an access time of now
select is(auth_token_approximate_last_access_date_key, wh_date_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_approximate_last_access_time_key, wh_time_key(now()))
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(auth_token_approximate_last_access_time, now()::wh_timestamp)
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select cmp_ok(lower(auth_token_approximate_active_time_range), '<', now())
from wh_auth_token_accumulating_fact
where user_id = 'u______carly';
select is(upper(auth_token_approximate_active_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';
-- updating a pending token to issued should result in a fact for cora.
update auth_token
set status = 'token issued'
where public_id = 'tok_____cora';
select is(count(*), 1::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u_______cora';
select is(
wh_auth_token_accumulating_fact.*,
row('tok_____cora',
'u_______cora', (select key from wh_user_dimension where user_id = 'u_______cora'),
wh_date_key(now()), wh_time_key(now()), now(),
-1, -1, 'infinity'::timestamptz,
wh_date_key(now()), wh_time_key(now()), now(),
tstzrange(now(), now(), '[]'),
tstzrange(now(), 'infinity'::timestamptz, '[]'),
1
)::wh_auth_token_accumulating_fact
)
from wh_auth_token_accumulating_fact
where user_id = 'u_______cora';
-- should have an auth token for ciara that is in pending status
select is(count(*), 1::bigint)
from auth_token
where public_id = 'tok____ciara'
and status = 'auth token pending';
-- since the auth token is pending, there should be no fact for ciara.
select is(count(*), 0::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u______ciara';
-- updating a pending token to something other than issued should not result in a fact.
update auth_token
set status = 'authentication failed'
where public_id = 'tok____ciara';
select is(count(*), 0::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u______ciara';
select * from finish();
rollback;