Make create_user test helper.

master
Manager Bot 3 years ago
parent 58e67d5968
commit 7d6428a71a
  1. 37
      Web/lib/Test/Mojo/MJB.pm

@ -104,28 +104,41 @@ sub stash_has {
return $t;
}
#==
# Create a user account and login to it.
#
# settings accepts is_admin, when true promote the user
# to an admin account.
#==
sub create_user {
my ( $t, $settings ) = @_;
my ( $t, %settings ) = @_;
# Enable open registration.
my $old = $t->app->config->{register}{enable_open};
$t->app->config->{register}{enable_open} = 1;
# Create an 8-character random string to use as user/name/pass.
my $user = join( '', map({ ('a'..'z','A'..'Z')[int rand 52] } ( 0 .. 8)) );
$t->post_ok( '/register/open', form => {
username => $user,
email => "$user\@blogdb.com",
password => $user,
confirm => $user,
name => $user,
email => "$user\@myjekyllblog.net",
password => $user,
password_confirm => $user,
})
->get_ok( '/')
->code_block( sub {
is(shift->stash->{person}->username, $user, "Created test user $user");
})
->code_block( sub {
# Now we're just gonna add whatever settings from $settings.
my $t = shift;
foreach my $key ( keys %{$settings || {}}) {
$t->stash->{person}->setting( $key, $settings->{$key});
my $self = shift;
is($self->stash->{person}->name, $user, "Created test user $user");
if ( exists $settings{is_admin} and $settings{is_admin} == 1 ) {
$self->stash->{person}->is_admin( 1 );
$self->stash->{person}->update;
is( $self->stash->{person}->is_admin, 1, "Promoted $user to admin" );
}
});
# Reset open registration to old value.
$t->app->config->{register}{enable_open} = $old;
return $t;
}

Loading…
Cancel
Save