File tree 2 files changed +18
-1
lines changed
2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -72,7 +72,7 @@ public function handle(): void
72
72
try {
73
73
$ result = app ()->call ($ job );
74
74
} catch (Throwable $ exception ) {
75
- if (method_exists (get_class ($ job [0 ]), 'failed ' )) {
75
+ if (is_array ( $ job ) && method_exists (get_class ($ job [0 ]), 'failed ' )) {
76
76
call_user_func_array ([$ job [0 ], 'failed ' ], [$ exception ]);
77
77
} else {
78
78
throw $ exception ;
Original file line number Diff line number Diff line change 2
2
3
3
namespace Stancl \JobPipeline \Tests ;
4
4
5
+ use Exception ;
5
6
use Illuminate \Database \Eloquent \Model ;
6
7
use Illuminate \Support \Facades \Event ;
7
8
use Illuminate \Support \Facades \Queue ;
@@ -193,6 +194,22 @@ function (TestModel $model) use (&$passes) {
193
194
194
195
$ this ->assertTrue ($ passes );
195
196
}
197
+
198
+ /** @test */
199
+ public function failures_in_closures_will_throw_correctly ()
200
+ {
201
+ $ this ->expectExceptionMessage ('foobar ' );
202
+
203
+ Event::listen (TestEvent::class, JobPipeline::make ([
204
+ function () {
205
+ throw new Exception ('foobar ' );
206
+ }
207
+ ])->send (function (TestEvent $ event ) {
208
+ return $ this ->valuestore ;
209
+ })->shouldBeQueued (false )->toListener ());
210
+
211
+ event (new TestEvent (new TestModel ()));
212
+ }
196
213
}
197
214
198
215
class FooJob
You can’t perform that action at this time.
0 commit comments