オレオレアトリビュート増やしちゃうみたいなの、よくする。
やりすぎはよくないとは思いつつも、やってしまう。麻薬だ。
こういう感じのコード書いて、forwardさせてちゃんとエラーが出るかみたいなテスト書いてたら、なぜか200が返ってきた。
package MyApp::ActionClass::API; use utf8; use Mouse::Role; around ACTION => sub { my $next = shift; my ($self, $action, $c, @args) = @_; if ($action->attributes->{AuthRequired}[0]) { ...; my $result = models('...')->get(...) || {}; my $player_id = $result->{player_id}; if (!$player_id) { $c->forward( # ここでエラーが出るはず!! '/api/error_with_messages', ["invalid session"], 400, ); return; } ...; } $next->(@_); }; no Mouse::Role; sub _parse_AuthRequired_attr { return AuthRequired => 1; } 1;
# テスト my $req = POST("/test/action_class/api/sig", Content => [ session => $session, ], ); my ($content, $c) = ctx_request($req); use Data::Dumper;warn Dumper $c->res; warn $content; # 結果 [13:37:15] t/action_class/api.t .. $VAR1 = bless( { 'status' => 200, 'binary' => 0 }, 'Ark::Response' ); HTTP::Response=HASH(0x7fe9550982c0) at t/action_class/api.t line 48.
エラーが出てない。どういう事だ。
悩みまくった結果、MyApp::ActionClass::APIでuse MyApp::Models;してないだけだった。つらかった。