From 4a8f566a5e9dcaf4b72ca6977fd5cfaf86211aed Mon Sep 17 00:00:00 2001 From: Zarunet Date: Tue, 29 Jul 2025 22:16:31 +0200 Subject: [PATCH] Add missing return type (2.x) (#24) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add missing return type This adds the `self` return type to `JobPipeline::shouldBeQueued()` so that static analyzers won't get confused and treat its return value as `mixed`. * Change return types to `static` * Fix tests not running --------- Co-authored-by: Samuel Ć tancl --- src/JobPipeline.php | 8 ++++---- tests/JobPipelineTest.php | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/JobPipeline.php b/src/JobPipeline.php index 9239cda..9b5603f 100644 --- a/src/JobPipeline.php +++ b/src/JobPipeline.php @@ -39,19 +39,19 @@ class JobPipeline implements ShouldQueue } /** @param callable[]|string[] $jobs */ - public static function make(array $jobs): self + public static function make(array $jobs): static { return new static($jobs); } - public function send(callable $send): self + public function send(callable $send): static { $this->send = $send; return $this; } - public function shouldBeQueued(bool $shouldBeQueued = true, ?string $queue = null) + public function shouldBeQueued(bool $shouldBeQueued = true, string|null $queue = null): static { $this->shouldBeQueued = $shouldBeQueued; @@ -106,7 +106,7 @@ class JobPipeline implements ShouldQueue /** * Return a serializable version of the current object. */ - public function executable($listenerArgs): self + public function executable($listenerArgs): static { $clone = clone $this; diff --git a/tests/JobPipelineTest.php b/tests/JobPipelineTest.php index 29d6ca8..3efd16c 100644 --- a/tests/JobPipelineTest.php +++ b/tests/JobPipelineTest.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Queue; use Orchestra\Testbench\TestCase; +use PHPUnit\Framework\Attributes\Test; use Spatie\Valuestore\Valuestore; use Stancl\JobPipeline\JobPipeline; @@ -26,7 +27,7 @@ class JobPipelineTest extends TestCase $this->valuestore = Valuestore::make(__DIR__ . '/tmp/jobpipelinetest.json')->flush(); } - /** @test */ + #[Test] public function job_pipeline_can_listen_to_any_event() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -42,7 +43,7 @@ class JobPipelineTest extends TestCase $this->assertSame('bar', $this->valuestore->get('foo')); } - /** @test */ + #[Test] public function job_pipeline_can_be_queued() { Queue::fake(); @@ -63,7 +64,7 @@ class JobPipelineTest extends TestCase }); } - /** @test */ + #[Test] public function job_pipelines_run_when_queued() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -81,7 +82,7 @@ class JobPipelineTest extends TestCase $this->assertSame('bar', $this->valuestore->get('foo')); } - /** @test */ + #[Test] public function job_pipelines_can_use_a_specific_queue() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -107,7 +108,7 @@ class JobPipelineTest extends TestCase $this->assertSame('bar', $this->valuestore->get('foo')); } - /** @test */ + #[Test] public function job_pipeline_executes_jobs_and_passes_the_object_sequentially() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -124,7 +125,7 @@ class JobPipelineTest extends TestCase $this->assertSame('first job changed property', $this->valuestore->get('foo')); } - /** @test */ + #[Test] public function send_can_return_multiple_arguments() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -140,7 +141,7 @@ class JobPipelineTest extends TestCase $this->assertSame(['a', 'b'], app('test_args')); } - /** @test */ + #[Test] public function the_pipeline_can_be_canceled_by_returning_false_from_any_job() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -161,7 +162,7 @@ class JobPipelineTest extends TestCase $this->assertFalse($this->valuestore->has('foo')); } - /** @test */ + #[Test] public function the_pipeline_can_execute_failed_method_on_job() { Event::listen(TestEvent::class, JobPipeline::make([ @@ -177,7 +178,7 @@ class JobPipelineTest extends TestCase $this->assertEquals($this->valuestore->get('exeception'), 'pipeline exception'); } - /** @test */ + #[Test] public function closures_can_be_used_as_jobs() { $passes = false; @@ -195,7 +196,7 @@ class JobPipelineTest extends TestCase $this->assertTrue($passes); } - /** @test */ + #[Test] public function failures_in_closures_will_throw_correctly() { $this->expectExceptionMessage('foobar');