Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/UserTest.php
Show First 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | class UserTest extends TestCase | ||||
} | } | ||||
/** | /** | ||||
* Verify user creation process | * Verify user creation process | ||||
*/ | */ | ||||
public function testUserCreateJob(): void | public function testUserCreateJob(): void | ||||
{ | { | ||||
// Fake the queue, assert that no jobs were pushed... | // Fake the queue, assert that no jobs were pushed... | ||||
Queue::fake(); | $queue = Queue::fake(); | ||||
Queue::assertNothingPushed(); | $queue->assertNothingPushed(); | ||||
$user = User::create([ | $user = User::create([ | ||||
'email' => 'user-create-test@' . \config('app.domain') | 'email' => 'user-create-test@' . \config('app.domain') | ||||
]); | ]); | ||||
Queue::assertPushed(\App\Jobs\UserCreate::class, 1); | $queue->assertPushed(\App\Jobs\UserCreate::class, 1); | ||||
Queue::assertPushed(\App\Jobs\UserCreate::class, function ($job) use ($user) { | $queue->assertPushed(\App\Jobs\UserCreate::class, function ($job) use ($user) { | ||||
$job_user = TestCase::getObjectProperty($job, 'user'); | $job_user = TestCase::getObjectProperty($job, 'user'); | ||||
return $job_user->id === $user->id | return $job_user->id === $user->id | ||||
&& $job_user->email === $user->email; | && $job_user->email === $user->email; | ||||
}); | }); | ||||
Queue::assertPushedWithChain(\App\Jobs\UserCreate::class, [ | $queue->assertPushedWithChain(\App\Jobs\UserCreate::class, [ | ||||
\App\Jobs\UserVerify::class, | \App\Jobs\UserVerify::class, | ||||
]); | ]); | ||||
/* | /* | ||||
FIXME: Looks like we can't really do detailed assertions on chained jobs | FIXME: Looks like we can't really do detailed assertions on chained jobs | ||||
Another thing to consider is if we maybe should run these jobs | Another thing to consider is if we maybe should run these jobs | ||||
independently (not chained) and make sure there's no race-condition | independently (not chained) and make sure there's no race-condition | ||||
in status update | in status update | ||||
Queue::assertPushed(\App\Jobs\UserVerify::class, 1); | $queue->assertPushed(\App\Jobs\UserVerify::class, 1); | ||||
Queue::assertPushed(\App\Jobs\UserVerify::class, function ($job) use ($user) { | $queue->assertPushed(\App\Jobs\UserVerify::class, function ($job) use ($user) { | ||||
$job_user = TestCase::getObjectProperty($job, 'user'); | $job_user = TestCase::getObjectProperty($job, 'user'); | ||||
return $job_user->id === $user->id | return $job_user->id === $user->id | ||||
&& $job_user->email === $user->email; | && $job_user->email === $user->email; | ||||
}); | }); | ||||
*/ | */ | ||||
} | } | ||||
▲ Show 20 Lines • Show All 177 Lines • Show Last 20 Lines |