Dancer2-Plugin-TemplateFlute
view release on metacpan or search on metacpan
use strict;
use warnings;
use Test::More;
use Test::Deep;
use Test::Fatal;
use Plack::Test;
use HTTP::Request::Common;
use HTTP::Cookies;
use JSON::MaybeXS;
{
package TestApp;
use Dancer2;
use Dancer2::Plugin::TemplateFlute;
set log => 'debug';
set logger => 'console';
sub form_to_json {
my $form = shift;
return to_json(
{
action => $form->action,
errors => $form->errors->mixed,
fields => $form->fields,
name => $form->name,
pristine => $form->pristine,
session => $form->session->read('form'),
valid => $form->valid,
values => $form->values->mixed,
},
{ canonical => 1 }
);
}
get '/checkout' => sub {
my $form = form(
action => '/checkout',
name => 'checkout',
source => 'session'
);
$form->set_fields( [ 'one', 'two' ] );
return form_to_json($form);
};
post '/checkout' => sub {
my $form = form( name => 'checkout', source => 'body' );
return form_to_json($form);
};
post '/checkout_add_error' => sub {
my $form = form( name => 'checkout', source => 'body' );
$form->add_error( one => 'looks dodgy' );
return form_to_json($form);
};
}
my $url = 'http://localhost';
my $jar = HTTP::Cookies->new();
my $test = Plack::Test->create( TestApp->to_app );
my ( $data, $res, $req );
( run in 1.539 second using v1.01-cache-2.11-cpan-54e63673c56 )