Skip to content

Commit

Permalink
Fix tests (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
davorg committed Oct 14, 2016
1 parent f25120c commit 0632c97
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 19 deletions.
1 change: 0 additions & 1 deletion lib/Lystyng.pm
Expand Up @@ -122,7 +122,6 @@ get '/login' => sub {
};

post '/login' => sub {
my $user_rs = resultset('User');
my ($user) = $model->get_user_by_username(body_parameters->get('username'));
if ($user && $user->check_password(body_parameters->get('password'))) {
session user => $user;
Expand Down
43 changes: 25 additions & 18 deletions t/005_private_urls.t
Expand Up @@ -10,6 +10,20 @@ use lib 'lib';
use Lystyng;
use Lystyng::Schema;

sub test_routes {
my ($routes, $state, $test, $jar, $url) = @_;

for (keys %$routes) {
my $req = GET "$url/$_";
$jar->add_cookie_header($req);
my $res = $test->request( $req );
is $res->code, $routes->{$_}{$state}{code},
"response status is $routes->{$_}{$state}{code} for /$_";
like $res->content, qr/$routes->{$_}{$state}{content}/,
"content for /$_ looks correct";
}
}

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

Expand All @@ -30,7 +44,6 @@ my $jar = HTTP::Cookies->new;
my $app = Lystyng->to_app;
my $test = Plack::Test->create($app);

my $url = 'http://localhost';
my %routes = (
'list/add' => {
out => {
Expand All @@ -44,32 +57,26 @@ my %routes = (
},
);

test_routes(\%routes, 'out');
my $base_url = 'http://localhost';

diag('Testing logged out');
test_routes(\%routes, 'out', $test, $jar, $base_url);

my $user = $sch->resultset('User')->create( $test_user_data );

my $res = $test->request(POST "$url/login", [
BAIL_OUT('User not created, no point in continuing') unless $user;

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

$jar->extract_cookies($res);

test_routes(\%routes, 'in');
diag('Login response code: ', $res->code);

sub test_routes {
my ($routes, $state) = @_;
$jar->extract_cookies($res);

for (keys %$routes) {
my $req = GET "$url/$_";
$jar->add_cookie_header($req);
my $res = $test->request( $req );
is $res->code, $routes->{$_}{$state}{code},
"response status is $routes->{$_}{$state}{code} for /$_";
like $res->content, qr/$routes->{$_}{$state}{content}/,
"content for /$_ looks correct";
}
}
diag('Testing logged in');
test_routes(\%routes, 'in', $test, $jar, $base_url);

$user->delete;

Expand Down

0 comments on commit 0632c97

Please sign in to comment.