OK, got it now. Had to take things down to a lower level to create an app object:
my $app = Dancer2::Core::App->new(); $app->with_plugins( 'Menu' ); $app->add_route( method => 'get', regexp => '/test', code => sub {return 'hi'}, ); Dancer2::Plugin::Menu::_do_stuff($app); Maybe this is useful for an advent calendar entry? On Sat, Nov 10, 2018 at 8:08 AM Steve Dondley <sdond...@gmail.com> wrote: > Hmm, nope. That doesn't put the routes in the object. > > On Sat, Nov 10, 2018 at 8:00 AM Steve Dondley <sdond...@gmail.com> wrote: > >> OK, I think I found a decent solution. I turned the app into an object >> that I can pass to the the full qualified name of plugin's method. >> >> package TestApp; use Dancer2; use Dancer2::Plugin::Menu; use Data::Dumper >> qw 'Dumper'; get '/' => sub { return 'hello' }; get '/test' => sub { return >> 'hi' }; sub new { my $class = __PACKAGE__; return bless {}, $class; } my >> $app = new(); Dancer2::Plugin::Menu::_do_stuff($app); >> >> On Fri, Nov 9, 2018 at 10:29 AM Steve Dondley <sdond...@gmail.com> wrote: >> >>> I'm trying to test the internal methods of a plugin in the context of a >>> running test app. The following doesn't work but should give you an idea of >>> what I want to accomplish: >>> >>> use Plack::Test; >>> use HTTP::Request::Common; >>> { package TestApp; >>> use Dancer2; >>> use Dancer2::Plugin::Menu; >>> >>> get '/' => sub { return template 'index' }; >>> get '/test' => sub { >>> template 'index.tt', { >>> html => 'hi', >>> }, >>> }; >>> build_menu; >>> } >>> >>> my $test = Plack::Test->create( TestApp->to_app ); >>> my $res; >>> >>> my $menu = Dancer2::Plugin::Menu->new(app => $test); >>> >>> # test the return value of plugin method >>> my $result = $menu->_convert_routes_to_array; >>> >>> cmp_deeply($result, [ '/', '/test' ], 'returns array of menu paths'); >>> >>> Is there a way to do this? >>> >>> >>> >>> >>> >>> >>> -- >>> Prometheus Labor Communications, Inc. >>> http://prometheuslabor.com >>> 413-572-1300 >>> >>> UnionConnect Phone App for Labor Unions >>> http://unionconnect.com >>> >> >> >> -- >> Prometheus Labor Communications, Inc. >> http://prometheuslabor.com >> 413-572-1300 >> >> UnionConnect Phone App for Labor Unions >> http://unionconnect.com >> > > > -- > Prometheus Labor Communications, Inc. > http://prometheuslabor.com > 413-572-1300 > > UnionConnect Phone App for Labor Unions > http://unionconnect.com > -- Prometheus Labor Communications, Inc. http://prometheuslabor.com 413-572-1300 UnionConnect Phone App for Labor Unions http://unionconnect.com
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users