fu/t/pgconnect.t

34 lines
931 B
Perl

use v5.36;
use Test::More;
plan skip_all => $@ if !eval { require FU::PG; } && $@ =~ /Unable to load libpq/;
plan skip_all => 'Please set FU_TEST_DB to a PostgreSQL connection string to run these tests' if !$ENV{FU_TEST_DB};
sub okerr($sev, $act, $msg) {
is ref $@, 'FU::PG::error';
is $@->{severity}, $sev;
is $@->{action}, $act;
like "$@", $msg;
}
ok !eval { FU::PG->connect("invalid") };
okerr FATAL => connect => qr/missing "=" after "invalid"/;
ok FU::PG::lib_version() > 100000;
my $conn = FU::PG->connect($ENV{FU_TEST_DB});
is ref $conn, 'FU::PG::conn';
ok $conn->server_version() > 100000;
is $conn->lib_version(), FU::PG::lib_version();
ok !eval { $conn->exec('COPY (SELECT 1) TO STDOUT'); };
okerr FATAL => exec => qr/unexpected status code/;
ok !eval { $conn->exec('SELEXT'); };
okerr ERROR => exec => qr/syntax error/;
ok !defined $conn->exec('');
is $conn->exec('SELECT 1'), 1;
done_testing;