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/insert.sql

82 lines
3.5 KiB

-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
begin;
select plan(4);
select wtt_load('widgets', 'iam', 'kms');
-- Create a user dimension for corresponding auth token's user.
insert into wh_user_dimension (
user_id, user_name, user_description,
auth_account_id, auth_account_type, auth_account_name, auth_account_description,
auth_method_id, auth_method_type, auth_method_name, auth_method_description,
user_organization_id, user_organization_name, user_organization_description,
current_row_indicator,
row_effective_time, row_expiration_time,
auth_method_external_id, auth_account_external_id, auth_account_full_name, auth_account_email
) values (
'u_____user1', 'None', 'None',
'a______acc1', 'None', 'None', 'None',
'am______am1', 'None', 'None', 'None',
'o______org1', 'None', 'None',
'current',
now(), 'infinity'::timestamptz,
'None', 'None', 'None', 'None'
);
-- Create auth method and account to use for making auth tokens.
insert into auth_password_conf
(password_method_id, private_id)
values
('apm___widget', 'apmc__widget');
insert into auth_password_method
(scope_id, public_id, password_conf_id, name)
values
('o_____widget', 'apm___widget', 'apmc__widget', 'Widget Auth Password');
insert into auth_password_account
(auth_method_id, public_id, login_name)
values
('apm___widget', 'apa___walter', 'walter');
update auth_account set iam_user_id = 'u_____walter' where public_id = 'apa___walter';
-- should start with no facts for this user.
select is(count(*), 0::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u_____walter';
-- Insert with status 'auth token pending' should not create a auth token fact.
insert into auth_token
(key_id, auth_account_id, public_id, token, status)
values
('kdkv___widget', 'apa___walter', 'tok___walter1', 'tok___walter1'::bytea, 'auth token pending');
select is(count(*), 0::bigint) from wh_auth_token_accumulating_fact where user_id = 'u_____walter';
-- Insert an auth token wuth the 'token issued' status.
insert into auth_token
(key_id, auth_account_id, public_id, token, status)
values
('kdkv___widget', 'apa___walter', 'tok___walter2', 'tok___walter2'::bytea, 'token issued');
-- should have one fact for this user.
select is(count(*), 1::bigint)
from wh_auth_token_accumulating_fact
where user_id = 'u_____walter';
select is(
wh_auth_token_accumulating_fact.*,
row('tok___walter2',
'u_____walter', (select key from wh_user_dimension where user_id = 'u_____walter'),
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_____walter';
select * from finish();
rollback;