New Thread form, more tests, more TODOs
This commit is contained in:
parent
4738ce9d27
commit
55e6089fdd
10
PostText.pl
10
PostText.pl
|
@ -25,15 +25,23 @@ under sub ($c) {
|
|||
1;
|
||||
};
|
||||
|
||||
# Root redirect
|
||||
# Root
|
||||
get '/', sub ($c) { $c->redirect_to('view') };
|
||||
|
||||
# View
|
||||
get '/view', sub ($c) {
|
||||
$c->render()
|
||||
};
|
||||
|
||||
# Post
|
||||
any [qw{GET POST}], '/post', sub ($c) {
|
||||
$c->render()
|
||||
};
|
||||
|
||||
# Configure things
|
||||
app->secrets(app->config->{'secrets'}) || die $@;
|
||||
|
||||
app->pg->migrations->from_dir('migrations')->migrate();
|
||||
|
||||
# Send it
|
||||
app->start();
|
||||
|
|
|
@ -25,4 +25,5 @@ Run the tests locally (against development environment)
|
|||
## TODOs
|
||||
|
||||
1. Moar tests...
|
||||
1. Route for creating threads
|
||||
1. Page navigation
|
||||
1. Do something with submitted form data
|
||||
|
|
16
t/post.t
Normal file
16
t/post.t
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More;
|
||||
use Mojo::File qw{curfile};
|
||||
use Test::Mojo;
|
||||
|
||||
my $script = curfile->dirname->sibling('PostText.pl');
|
||||
my $t = Test::Mojo->new($script);
|
||||
|
||||
$t->get_ok('/post')->status_is(200);
|
||||
|
||||
$t->post_ok('/post')->status_is(200);
|
||||
|
||||
done_testing();
|
14
t/view.t
Normal file
14
t/view.t
Normal file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More;
|
||||
use Mojo::File qw{curfile};
|
||||
use Test::Mojo;
|
||||
|
||||
my $script = curfile->dirname->sibling('PostText.pl');
|
||||
my $t = Test::Mojo->new($script);
|
||||
|
||||
$t->get_ok('/view')->status_is(200);
|
||||
|
||||
done_testing();
|
22
templates/post.html.ep
Normal file
22
templates/post.html.ep
Normal file
|
@ -0,0 +1,22 @@
|
|||
% layout 'main';
|
||||
% title 'New Thread';
|
||||
<h2><%= title %></h2>
|
||||
<form method="post">
|
||||
<div class="name field">
|
||||
<%= label_for name => 'Author' %>
|
||||
<%= text_field name =>'Anonymous', maxlength => 63, minlength => 1 %>
|
||||
</div>
|
||||
<div class="title field">
|
||||
<%= label_for title => 'Title' %>
|
||||
<%= text_field 'title', maxlength => 255, minlength => 1 %>
|
||||
</div>
|
||||
<div class="text field">
|
||||
<%= label_for post => 'Text' %>
|
||||
<%= text_area 'post',
|
||||
maxlength => 4000,
|
||||
minlength => 2,
|
||||
required => 'true',
|
||||
rows => 6 %>
|
||||
</div>
|
||||
<%= submit_button 'Post', class => 'post button' %>
|
||||
</form>
|
Loading…
Reference in a new issue