Hi all, I have an issue executing hooks in dancer2, The code is running twice but I'm just calling once. This is a sample code (minimum) File: lib/Dancer2/Plugin/MyPluginTest.pm ::::::::::::::::::::::::: MyPluginTest.pm ::::::::::::::::::::::::: package Dancer2::Plugin::MyPluginTest; use Dancer2::Plugin; register_hook 'my_new_hook_after'; register new_function => sub { my $dsl = shift; execute_hook 'my_new_hook_after'; }; register_plugin; ::::::::::::::::::::::::: Test File: plugin.pl :::::::::::::: plugin.pl :::::::::::::: use strict; use warnings; use Test::More; use Plack::Test; use HTTP::Request::Common; { package MyTestApp; use Dancer2; use Dancer2::Plugin::MyPluginTest; my $var = 0; get '/' => sub { new_function; $var; }; hook 'my_new_hook_after' => sub { $var++; debug "Executing hook - $var"; return; }; }; my $test = Plack::Test->create( MyTestApp->to_app ); my $res = $test->request( GET '/' ); is( $res->content, '1', 'Var is 1 after one call on /' ); $res = $test->request( GET '/' ); is( $res->content, '2', 'Var is 1 after one call on /' ); done_testing(); :::::::::::::: The result after : prove -l lib/ plugin.pl -v plugin.pl .. [MyTestApp:14688] debug @2015-10-01 09:25:43> Executing hook - 1 in plugin.pl l. 21 [MyTestApp:14688] debug @2015-10-01 09:25:43> Executing hook - 2 in plugin.pl l. 21 not ok 1 - Var is 1 after one call on / # Failed test 'Var is 1 after one call on /' # at plugin.pl line 28. # got: '2' # expected: '1' [MyTestApp:14688] debug @2015-10-01 09:25:43> Executing hook - 3 in plugin.pl l. 21 [MyTestApp:14688] debug @2015-10-01 09:25:43> Executing hook - 4 in plugin.pl l. 21 not ok 2 - Var is 1 after one call on / # Failed test 'Var is 1 after one call on /' # at plugin.pl line 30. # got: '4' # expected: '2' 1..2 # Looks like you failed 2 tests of 2. Dubious, test returned 2 (wstat 512, 0x200) Failed 2/2 subtests Test Summary Report ------------------- plugin.pl (Wstat: 512 Tests: 2 Failed: 2) Failed tests: 1-2 Non-zero exit status: 2 Files=1, Tests=2, 2 wallclock secs ( 0.04 usr 0.00 sys + 0.44 cusr 0.02 csys = 0.50 CPU) Result: FAIL Does someone an idea what i'm doing wrong? or if is it something about the hooks? Thanks in advance! Ruben. -- ____________________________ Rubén Darío Amórtegui Medina MCE - Ingeniero de Sistemas
participants (1)
-
Rubén Amórtegui