Dancer2-Plugin-TemplateFlute

 view release on metacpan or  search on metacpan

t/plugin.t  view on Meta::CPAN

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 )