Skip to content

Commit

Permalink
Refactor a lot of tests
Browse files Browse the repository at this point in the history
  • Loading branch information
davorg committed Jan 18, 2016
1 parent 5de81c6 commit 7222022
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 35 deletions.
37 changes: 23 additions & 14 deletions t/003_user_admin.t
Expand Up @@ -15,6 +15,19 @@ my $test = Plack::Test->create($app);
my $sch = eval { Lystyng::Schema->get_schema };
BAIL_OUT($@) if $@;

my $test_user_data = {
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
};

# Ensure test user doesn't exist
my $test_user = $sch->resultset('User')->find({
username => $test_user_data->{username},
});
$test_user->delete if $test_user;

my %route = (
register => 200,
login => 200,
Expand All @@ -26,34 +39,30 @@ for (keys %route) {
is( $res->code, $route{$_}, "response status is $route{$_} for /$_" );
}


my $user_hash = {
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
};

my $res = $test->request(POST '/register', [ %$user_hash ]);
my $res = $test->request(POST '/register', [ %$test_user_data ]);

ok $res, 'Got a response from /register';
is $res->code, 200, 'Response is 200';
like $res->content, qr[is missing], 'Password2 is missing';

$user_hash->{password2} = 'Something else';
$test_user_data->{password2} = 'Something else';

$res = $test->request(POST '/register', [ %$user_hash ]);
$res = $test->request(POST '/register', [ %$test_user_data ]);

ok $res, 'Got a response from /register';
is $res->code, 200, 'Response is 200';
like $res->content, qr[do not match], 'Passwords do not match';

$user_hash->{password2} = 'TEST';
$res = $test->request(POST '/register', [ %$user_hash ]);
$test_user_data->{password2} = 'TEST';
$res = $test->request(POST '/register', [ %$test_user_data ]);

ok $res, 'Got a response from /register';
is $res->code, 302, 'Response is 302';

$sch->resultset('User')->delete;
# Clean up after ourselves
$test = $sch->resultset('User')->find({
username => $test_user_data->{username},
});
$test->delete;

done_testing;
26 changes: 17 additions & 9 deletions t/004_public_urls.t
Expand Up @@ -10,6 +10,22 @@ use Lystyng;

use Lystyng::Schema;

my $sch = eval { Lystyng::Schema->get_schema };
BAIL_OUT("Can't connect to database: $@") if $@;

my $test_user_data = {
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
};

# Ensure the 'test' user doesn't exist
my $test_user = $sch->resultset('User')->find({
username => $test_user_data->{username},
});
$test_user->delete if $test_user;

my $app = Lystyng->to_app;
my $test = Plack::Test->create($app);

Expand All @@ -26,15 +42,7 @@ for (keys %route) {
"response status is $route{$_} for /$_";
}

my $sch = eval { Lystyng::Schema->get_schema };
BAIL_OUT("Can't connect to database: $@") if $@;

my $user = $sch->resultset('User')->create({
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
});
my $user = $sch->resultset('User')->create( $test_user_data );

my $res = $test->request(GET '/user/test');
is $res->code, 200, 'response status is 200 for /user/test';
Expand Down
31 changes: 19 additions & 12 deletions t/005_private_urls.t
Expand Up @@ -8,9 +8,24 @@ use HTTP::Cookies;
use lib 'lib';

use Lystyng;

use Lystyng::Schema;

my $sch = eval { Lystyng::Schema->get_schema };
BAIL_OUT("Can't connect to database: $@") if $@;

my $test_user_data = {
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
};

# Ensure the test user doesn't already exist
my $test_user = $sch->resultset('User')->find({
username => $test_user_data->{username},
});
$test_user->delete if $test_user;

my $jar = HTTP::Cookies->new;
my $app = Lystyng->to_app;
my $test = Plack::Test->create($app);
Expand All @@ -31,19 +46,11 @@ my %routes = (

test_routes(\%routes, 'out');

my $sch = eval { Lystyng::Schema->get_schema };
BAIL_OUT("Can't connect to database: $@") if $@;

my $user = $sch->resultset('User')->create({
username => 'test',
name => 'Test User',
email => 'test@example.com',
password => 'TEST',
});
my $user = $sch->resultset('User')->create( $test_user_data );

my $res = $test->request(POST "$url/login", [
username => $user->username,
password => 'TEST',
username => $test_user_data->{username},
password => $test_user_data->{password},
]);

$jar->extract_cookies($res);
Expand Down

0 comments on commit 7222022

Please sign in to comment.