66
77use Google \Cloud \Tasks \V2 \HttpMethod ;
88use Google \Cloud \Tasks \V2 \Task ;
9+ use Illuminate \Queue \CallQueuedClosure ;
910use Illuminate \Queue \Events \JobProcessed ;
1011use Illuminate \Queue \Events \JobProcessing ;
1112use Illuminate \Queue \Events \JobQueued ;
@@ -146,17 +147,22 @@ public function it_posts_the_task_the_correct_queue()
146147 // Arrange
147148 CloudTasksApi::fake ();
148149
150+ $ closure = fn () => 'closure job ' ;
151+ $ closureDisplayName = CallQueuedClosure::create ($ closure )->displayName ();
152+
149153 // Act
150154 $ this ->dispatch ((new SimpleJob ()));
151155 $ this ->dispatch ((new FailingJob ())->onQueue ('my-special-queue ' ));
156+ $ this ->dispatch ($ closure );
157+ $ this ->dispatch ($ closure , 'my-special-queue ' );
152158
153159 // Assert
154160 CloudTasksApi::assertTaskCreated (function (Task $ task , string $ queueName ): bool {
155161 $ decoded = json_decode ($ task ->getHttpRequest ()->getBody (), true );
156162 $ command = IncomingTask::fromJson ($ task ->getHttpRequest ()->getBody ())->command ();
157163
158164 return $ decoded ['displayName ' ] === SimpleJob::class
159- && ( $ command ['queue ' ] ?? null ) === null
165+ && $ command ['queue ' ] === ' barbequeue '
160166 && $ queueName === 'projects/my-test-project/locations/europe-west6/queues/barbequeue ' ;
161167 });
162168
@@ -168,6 +174,24 @@ public function it_posts_the_task_the_correct_queue()
168174 && $ command ['queue ' ] === 'my-special-queue '
169175 && $ queueName === 'projects/my-test-project/locations/europe-west6/queues/my-special-queue ' ;
170176 });
177+
178+ CloudTasksApi::assertTaskCreated (function (Task $ task , string $ queueName ) use ($ closureDisplayName ): bool {
179+ $ decoded = json_decode ($ task ->getHttpRequest ()->getBody (), true );
180+ $ command = IncomingTask::fromJson ($ task ->getHttpRequest ()->getBody ())->command ();
181+
182+ return $ decoded ['displayName ' ] === $ closureDisplayName
183+ && $ command ['queue ' ] === 'barbequeue '
184+ && $ queueName === 'projects/my-test-project/locations/europe-west6/queues/barbequeue ' ;
185+ });
186+
187+ CloudTasksApi::assertTaskCreated (function (Task $ task , string $ queueName ) use ($ closureDisplayName ): bool {
188+ $ decoded = json_decode ($ task ->getHttpRequest ()->getBody (), true );
189+ $ command = IncomingTask::fromJson ($ task ->getHttpRequest ()->getBody ())->command ();
190+
191+ return $ decoded ['displayName ' ] === $ closureDisplayName
192+ && $ command ['queue ' ] === 'my-special-queue '
193+ && $ queueName === 'projects/my-test-project/locations/europe-west6/queues/my-special-queue ' ;
194+ });
171195 }
172196
173197 #[Test]
0 commit comments