Mojolicious-Plugin-RoutesAuthDBI
view release on metacpan or search on metacpan
t/04-admin.t view on Meta::CPAN
use Mojo::Base 'Mojolicious';
use Test::More;
use Test::Mojo;
use DBI;
plan skip_all => 'set env TEST_CONN_PG="DBI:Pg:dbname=<db>/<pg_user>/<passwd>" to enable this test'
unless $ENV{TEST_CONN_PG};
has dbh => sub { DBI->connect(split m|[/]|, $ENV{TEST_CONN_PG}) };
my $config = do 't/config.pm';
sub startup {
my $app = shift;
$app->plugin('RoutesAuthDBI',
auth=>{current_user_fn=>'auth_user'},
admin=>{prefix=>$config->{prefix}, trust=>$config->{trust}, role_admin=>$config->{role_admin},},
template=>$config,
);
}
my $t = Test::Mojo->new(__PACKAGE__);
subtest 'routes' => sub {
#~ my $stdout;
#~ local *STDOUT;
#~ open(STDOUT, ">", \$stdout);
#~ $t->app->commands->run('routes');
my $stdout = $config->{app_routes}($t);
warn $stdout;
like $stdout, qr/\/$config->{prefix}\/$config->{trust}\/$config->{role_admin}\/new\/:login\/:pass/, 'routes';
like $stdout, qr/signin stash/, 'sign in route';
};
$t->get_ok("/$config->{prefix}")->status_is(401)
->content_like(qr/Please sign in/i);
$t->get_ok("/$config->{prefix}/$config->{trust}/$config->{role_admin}/new/$config->{admin_user}/$config->{admin_pass}")->status_is(200)
->content_like(qr/Success sign up new trust-admin-user/i);
#~ ->content_like(qr/$config->{role_admin}-000/i);
$t->get_ok("/$config->{prefix}/sign/in/$config->{admin_user}/$config->{admin_pass}")->status_is(302)
->${ \$config->{location_is} }("/$config->{prefix}");
$t->get_ok("/$config->{prefix}")->status_is(200)
->content_like(qr/You are signed as/i);
$t->get_ok("/$config->{prefix}/users")->status_is(200)
->content_like(qr/Profiles\(1\)/i);
$t->get_ok("/$config->{prefix}/user/new/$config->{user1}/$config->{pass1}")->status_is(200)
->content_like(qr/Success sign up new profile/i);
$t->get_ok("/$config->{prefix}/user/new?login=$config->{user2}&pass=$config->{pass2}")->status_is(200)
->content_like(qr/Success sign up new profile/i);
$t->get_ok("/$config->{prefix}/users")->status_is(200)
->content_like(qr/Profiles\(3\)/i);
$t->get_ok("/$config->{prefix}/users/$config->{role_admin}")->status_is(200)
->content_like(qr/Profile\/users\(1\) by role \[$config->{role_admin}\]/i);
$t->get_ok("/$config->{prefix}/role/new/$config->{role}")->status_is(200)
->content_like(qr/Success created role/i);
$t->get_ok("/$config->{prefix}/role/user/$config->{role}/$config->{user1}")->status_is(200)
->content_like(qr/Success assign ROLE\[$config->{role}\] -> USER \[bless/i);
( run in 1.331 second using v1.01-cache-2.11-cpan-71847e10f99 )