Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
App now passes all but one tests in t/02-app-home-page.t
  • Loading branch information
zoffixznet committed Nov 10, 2015
1 parent e4c1974 commit 48f1839
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 38 deletions.
5 changes: 4 additions & 1 deletion mojo-app/lib/ModulesPerl6.pm
Expand Up @@ -40,7 +40,10 @@ sub startup {
my $r = $self->routes;
$r->get('/' )->to('root#index');
$r->get('/q/:term' )->to('root#index');
$r->any('/dist/:dist')->to('root#dist');
$r->get('/dist/:dist')->to('root#dist')->name('dist');
$r->get('/kwalitee/:dist')->to('root#kwalitee')->name('kwalitee');

$r->any('/NIY')->to('root#NIY')->name('NIY');
}

1;
Expand Down
29 changes: 28 additions & 1 deletion mojo-app/lib/ModulesPerl6/Controller/Root.pm
Expand Up @@ -2,9 +2,36 @@ package ModulesPerl6::Controller::Root;

use Mojo::Base 'Mojolicious::Controller';

use Mojo::URL;
use POSIX qw/strftime/;

sub index {
my $self = shift;

$self->stash( dists => $self->dists->find );
my $dists = $self->dists->find;
for ( @$dists ) {
$_->{date_updated} = strftime "%Y-%m-%d", localtime $_->{date_updated};
$_->{travis_url} = Mojo::URL->new($_->{url})->host('travis-ci.org');
}
$self->stash( dists => $dists );
}

sub dist {
my $self = shift;

my $dist = $self->stash('dist');
return $self->reply->not_found
unless length $dist
and $dist = $self->dists->find({name => $dist})->first;

return $self->redirect_to( $dist->{url} );
}

sub kwalitee {
shift->redirect_to('NIY');
}

sub NIY {
shift->render( text => 'Not Implemented Yet' );
}
1;
Binary file added mojo-app/public/pics/github-icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 12 additions & 1 deletion mojo-app/public/sass/main.scss
Expand Up @@ -30,6 +30,18 @@ header {
font-size: 200%;
}

#dists {
.name a {
vertical-align: middle;
}
.github {
background: url(/pics/github-icon.png);
width: 16px;
height: 16px;
display: inline-block;
}
}

/* Bootstrap amendments */

.btn .glyphicon {
Expand All @@ -39,4 +51,3 @@ header {
.suckin-btm {
padding-bottom: 5px;
}

4 changes: 3 additions & 1 deletion mojo-app/t/01-model-dists.t
Expand Up @@ -2,12 +2,14 @@

use strict;
use warnings FATAL => 'all';

use File::Temp;
use Test::Most;
use Mojo::SQLite;
use t::Helper;

use constant MODEL => 'ModulesPerl6::Model::Dists';
use constant TEST_DB_FILE => 't/01-model-dists-test.db';
use constant TEST_DB_FILE => File::Temp->new( UNLINK => 0, SUFFIX => '.db' );
END { unlink TEST_DB_FILE }

use_ok MODEL;
Expand Down
18 changes: 10 additions & 8 deletions mojo-app/t/02-app-home-page.t
Expand Up @@ -4,13 +4,14 @@ use strict;
use warnings FATAL => 'all';
use Test::Most;
use Mojo::URL;
use Test::Mojo::WithRoles 'SubmitForm ElementCounter';
use Test::Mojo::WithRoles qw/SubmitForm ElementCounter/;
use t::Helper;

t::Helper::set_db_env;
my $db_file = t::Helper::setup_db_file;
END { unlink $db_file }

my $t = Test::Mojo::WithRoles->new('ModulesPerl6');
my ( $dist1, $dist2 ) = t::Helper::dist_data;
my ( $dist1, $dist2 ) = t::Helper::dist_out_data;

$_->{travis_url} = Mojo::URL->new($_->{url})->host('travis-ci.org')
for $dist1, $dist2;
Expand All @@ -27,31 +28,32 @@ $_->{travis_url} = Mojo::URL->new($_->{url})->host('travis-ci.org')
->dived_text_is('.stars a' => '42' )
->dived_text_is('.issues a' => '12' )
->dived_text_is('.updated' => '2015-11-08')
->dived_text_is('.added' => '2015-11-04')
# ->dived_text_is('.added' => '2015-11-04')
->element_count_is(".name a[href='$dist1->{url}']" => 1)
->element_count_is('.name a[href="/dist/Dist1"]' => 1)
->element_count_is('.name a i.sprite.s-dist1' => 1)
->element_count_is(".travis a[href='$dist1->{travis_url}']" => 1)
->element_count_is(".stars a[href='$dist1->{url}stargazers']" => 1)
->element_count_is(".issues a[href='$dist1->{url}issues']}" => 1)
->element_count_is(".issues a[href='$dist1->{url}issues']" => 1)
;

$t->dive_reset
->dive_in('#dists tbody tr:first-child + tr ')
->dived_text_is('.name a[href^="/"]' => 'Dist2' )
->dived_text_is('.desc' => 'Test Dist2')
->dived_text_is('.kwalitee a' => '0' )
# ->dived_text_is('.kwalitee a' => '0%' )
->dived_text_is('.travis a' => 'failing' )
->dived_text_is('.stars a' => '14' )
->dived_text_is('.issues a' => '6' )
->dived_text_is('.updated' => '2015-11-02')
->dived_text_is('.added' => '2015-10-26')
# ->dived_text_is('.added' => '2015-10-26')
->element_count_is(".name a[href='$dist2->{url}']" => 1)
->element_count_is('.name a[href="/dist/Dist2"]' => 1)
->element_count_is('.name a i.sprite.s-dist2' => 1)
->element_count_is('.kwalitee a[href="/kwalitee/Dist2"]' => 1)
->element_count_is(".travis a[href='$dist2->{travis_url}']" => 1)
->element_count_is(".stars a[href='$dist2->{url}stargazers']" => 1)
->element_count_is(".issues a[href='$dist2->{url}issues']}" => 1)
->element_count_is(".issues a[href='$dist2->{url}issues']" => 1)
;
}

Expand Down
5 changes: 3 additions & 2 deletions mojo-app/t/03-app-search.t
Expand Up @@ -4,10 +4,11 @@ use strict;
use warnings FATAL => 'all';
use Test::Most;
use Mojo::URL;
use Test::Mojo::WithRoles 'SubmitForm ElementCounter';
use Test::Mojo::WithRoles qw/SubmitForm ElementCounter/;
use t::Helper;

t::Helper::set_db_env;
my $db_file = t::Helper::setup_db_file;
END { unlink $db_file }

my $t = Test::Mojo::WithRoles->new('ModulesPerl6');

Expand Down
13 changes: 7 additions & 6 deletions mojo-app/t/Helper.pm
@@ -1,15 +1,16 @@
package t::Helper;

use strict;
use warnings;
use warnings FATAL => 'all';
use ModulesPerl6::Model::Dists;
use File::Temp;

sub set_db_env {
my $db_file = 't/test.db';
sub setup_db_file {
my $db_file = File::Temp->new( UNLINK => 0, SUFFIX => '.db' );
$ENV{MODULESPERL6_DB_FILE} = $db_file;

-r $db_file
or die 'Could not find test database ' . $db_file
. '. Perhaps, you are running this test in a wrong directory?';
ModulesPerl6::Model::Dists->new( db_file => $db_file )
->deploy->add( dist_in_data() );

return $db_file;
}
Expand Down
53 changes: 35 additions & 18 deletions mojo-app/templates/root/index.html.ep
Expand Up @@ -28,29 +28,46 @@
<h2 class="panel-title">Project List</h2>
</div>
<div class="panel-body table-responsive">
<table class="table table-condensed">
<table class="table table-condensed" id="dists">
<thead>
<th>Name</th>
<th>Description</th>
<th>Author</th>
<th>Kwalitee</th>
<th>Travis</th>
<th>Stars</th>
<th>Issues</th>
<th>Updated</th>
<tr>
<th class="name">Name</th>
<th class="description">Description</th>
<th class="kwalitee">Kwalitee</th>
<th class="travis">Travis</th>
<th class="stars">Stars</th>
<th class="issues">Issues</th>
<th class="updated">Updated</th>
</tr>
</thead>
<tbody>
% for my $dist ( items_in 'dists' ) {
<tr>
<td><a href="<%= $dist->{url} %>"><%= $dist->{name} %></a></td>
<td><%= $dist->{description} %></td>
<td><%= $dist->{author_id} %></td>
<td><%= $dist->{kwalitee} %>%</td>
<td class="travis travis-<%= $dist->{travis_status} %>"
><%= $dist->{travis_status} %></td>
<td><%= $dist->{stars} %></td>
<td><%= $dist->{issues} %></td>
<td><%= $dist->{date_updated} %></td>
<td class="name">
<a href="<%= $dist->{url} %>" class="github"></a>
<a href="<%= url_for('dist', dist => $dist->{name} ) %>"
><%= $dist->{name} %>
<i class="sprite s-<%= $dist->{logo} %>"></i>
</a>
</td>
<td class="desc"><%= $dist->{description} %></td>
<td class="kwalitee">
<a href="<%= url_for('kwalitee', dist => $dist->{name} ) %>"
><%= $dist->{kwalitee} %>%</a>
</td>
<td class="travis travis-<%= $dist->{travis_status} %>">
<a href="<%= $dist->{travis_url} %>"
><%= $dist->{travis_status} %></a>
</td>
<td class="stars">
<a href="<%= $dist->{url} . 'stargazers' %>"
><%= $dist->{stars} %></a>
</td>
<td class="issues">
<a href="<%= $dist->{url} . 'issues' %>"
><%= $dist->{issues} %></a>
</td>
<td class="updated"><%= $dist->{date_updated} %></td>
</tr>
% }
</tbody>
Expand Down

0 comments on commit 48f1839

Please sign in to comment.