Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rawleyfowler committed Dec 11, 2023
1 parent cd7e868 commit a7b9950
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 13 deletions.
4 changes: 3 additions & 1 deletion META6.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"Humming-Bird::Advice": "lib/Humming-Bird/Advice.rakumod",
"Humming-Bird::Glue": "lib/Humming-Bird/Glue.rakumod",
"Humming-Bird::Plugin": "lib/Humming-Bird/Plugin.rakumod",
"Humming-Bird::Plugin::Config": "lib/Humming-Bird/Plugin/Config.rakumod"
"Humming-Bird::Plugin::Config": "lib/Humming-Bird/Plugin/Config.rakumod",
"Humming-Bird::Plugin::Logger": "lib/Humming-Bird/Plugin/Logger.rakumod",
"Humming-Bird::Plugin::Session": "lib/Humming-Bird/Plugin/Session.rakumod"
},
"resources": [
],
Expand Down
2 changes: 1 addition & 1 deletion lib/Humming-Bird/Core.rakumod
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ sub listen(Int:D $port, Str:D $addr = '0.0.0.0', :$no-block, :$timeout = 3, :$ba
require ::($fq);
CATCH {
default {
die "It doesn't look like $fq is a valid plugin? Are you sure it's installed?";
die "It doesn't look like $fq is a valid plugin? Are you sure it's installed? $_";
}
}
}
Expand Down
16 changes: 8 additions & 8 deletions lib/Humming-Bird/Middleware.rakumod
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ sub middleware-logger(Request:D $request, Response:D $response, &next) is export
&next();
}

class Session {
has Str:D $.id = uuid-v4;
has Instant:D $.expires is required;
has %!stash handles <AT-KEY>;
}

# Defaults to 24 hour sessions
sub middleware-session(Int:D :$ttl = (3600 * 24), Bool:D :$secure = False) is export {
class Session {
has Str:D $.id = uuid-v4;
has Instant:D $.expires is required;
has %!stash handles <AT-KEY>;
}

state Lock $lock .= new;
state %sessions;

Expand All @@ -31,9 +31,9 @@ sub middleware-session(Int:D :$ttl = (3600 * 24), Bool:D :$secure = False) is ex
$lock.protect({ $request.stash<session> := %sessions{$session-id} });
} else {
my $session = Session.new(expires => now + $ttl);
$lock.protect({ %sessions{$session.id} = $session });
$request.stash<session> := $session;
$response.cookie($SESSION-NAME, $session.id, expires => DateTime.new($session.expires), :$secure);
$lock.protect({ %sessions{$session.id} = $session });
}

&next();
Expand All @@ -43,7 +43,7 @@ sub middleware-session(Int:D :$ttl = (3600 * 24), Bool:D :$secure = False) is ex
react whenever Supply.interval(1) {
$lock.protect({ %sessions = %sessions.grep({ ($_.value.expires - now) > 0 }) });
}
} unless $session-cleanup;
};

&aux;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/Humming-Bird/Plugin/Logger.rakumod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use Humming-Bird::Advice;

unit class Humming-Bird::Plugin::Logger does Humming-Bird::Plugin;

method register($server, %routes, @middleware is rw, @advice is rw, **@args) {
method register($server, %routes, @middleware, @advice, **@args) {
@middleware.unshift: &middleware-logger;
@advice.unshift: &advice-logger;
}
7 changes: 5 additions & 2 deletions t/13-plugin.rakutest
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ use Test;
use Humming-Bird::Core;
use Humming-Bird::Glue;
use Humming-Bird::Backend;
use Humming-Bird::Middleware;
use Humming-Bird::Advice;

plan 4;
plan 7;

class TestBackend does Humming-Bird::Backend {
method listen(&handler) {
Expand All @@ -21,6 +23,7 @@ ok Humming-Bird::Glue::HTTPAction.^can('config'), 'Did plugin properly run?';
my $action = Humming-Bird::Glue::HTTPAction.new;

ok $action.config<database_url> eq 'foo', 'Did config parse properly?';
is middleware
is middleware()[0].raku, &middleware-logger.raku, 'Did logger properly setup middleware?';
is advice()[0].raku, &advice-logger.raku, 'Did logger properly setup advice?';

done-testing;

0 comments on commit a7b9950

Please sign in to comment.