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
_______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users