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/alias/wt_target_alias.sql

136 lines
3.8 KiB

-- Copyright (c) HashiCorp, Inc.
-- SPDX-License-Identifier: BUSL-1.1
-- controller_id tests:
-- validates the wt_controller_id domain
begin;
select plan(16);
select has_domain('wt_target_alias');
create table target_alias_testing (
v wt_target_alias
);
prepare empty_insert as insert into target_alias_testing (v) values ('');
select throws_like(
'empty_insert',
'%"wt_alias_too_short"',
'We should error for empty values'
);
prepare valid_inserts as insert into target_alias_testing (v) values
('a'),
('A'),
('192.168.1.9-9'),
('foo'),
('a.b.c'),
('A.B.C'),
('a-b-c'),
('a.9-9'),
('9things'),
('9-things'),
('hp--something.test.com'),
('test-for-long-name-which-is-almost-over-the-limit-of-characters'),
('TEST-FOR-LONG-NAME-WHICH-IS-ALMOST-OVER-THE-LIMIT-OF-CHARACTERS'),
('test-for-long-name-which-is-almost-over-the-limit-of-characters.another-label'),
('test.test-for-long-name-which-is-almost-over-the-limit-of-characters'),
('test-for-long-name-which-is-almost-over-the-limit-of-characters.test-for-long-name-which-is-almost-over-the-limit-of-characters'),
('9-things.9-things');
select lives_ok('valid_inserts');
prepare label_too_long as insert into target_alias_testing (v) values
('test-for-long-name-which-is-almost-over-the-limit-of-charactersX');
select throws_like(
'label_too_long',
'%"wt_target_alias_value_shape"'
);
prepare label_too_long_2 as insert into target_alias_testing (v) values
('a.test-for-long-name-which-is-almost-over-the-limit-of-charactersX');
select throws_like(
'label_too_long_2',
'%"wt_target_alias_value_shape"'
);
prepare label_too_long_3 as insert into target_alias_testing (v) values
('test-for-long-name-which-is-almost-over-the-limit-of-charactersX.a');
select throws_like(
'label_too_long_3',
'%"wt_target_alias_value_shape"'
);
prepare starting_with_hyphen as insert into target_alias_testing (v) values
('-test.com');
select throws_like(
'starting_with_hyphen',
'%"wt_target_alias_value_shape"'
);
prepare starting_with_hyphen2 as insert into target_alias_testing (v) values
('a.-test');
select throws_like(
'starting_with_hyphen2',
'%"wt_target_alias_value_shape"'
);
prepare ending_with_hyphen as insert into target_alias_testing (v) values
('test-.com');
select throws_like(
'ending_with_hyphen',
'%"wt_target_alias_value_shape"'
);
prepare ending_with_hyphen2 as insert into target_alias_testing (v) values
('a.test-');
select throws_like(
'ending_with_hyphen2',
'%"wt_target_alias_value_shape"'
);
prepare ending_with_hyphen3 as insert into target_alias_testing (v) values
('a.9-');
select throws_like(
'ending_with_hyphen3',
'%"wt_target_alias_value_shape"'
);
prepare empty_label as insert into target_alias_testing (v) values
('a..com');
select throws_like(
'empty_label',
'%"wt_target_alias_value_shape"'
);
prepare empty_label2 as insert into target_alias_testing (v) values
('.a.com');
select throws_like(
'empty_label2',
'%"wt_target_alias_value_shape"'
);
prepare empty_label3 as insert into target_alias_testing (v) values
('a.com.');
select throws_like(
'empty_label3',
'%"wt_target_alias_value_shape"'
);
prepare numeric_only_tld as insert into target_alias_testing (v) values
('a.123');
select throws_like(
'numeric_only_tld',
'%"wt_target_alias_tld_not_only_numeric"'
);
prepare numeric_only_tld2 as insert into target_alias_testing (v) values
('a.9');
select throws_like(
'numeric_only_tld2',
'%"wt_target_alias_tld_not_only_numeric"'
);
select * from finish();
rollback;