['id' => 42]]); $capturedUserId = null; $repo = $this->make(ReactionsRepository::class, [ 'getUserReactions' => fn (...$args) => [], 'addReaction' => function ($userId, ...$rest) use (&$capturedUserId) { $capturedUserId = $userId; return true; }, ]); $result = (new Reactions($repo))->react('tickets', 5, 'thumbsup'); $this->assertTrue($result); $this->assertSame(42, $capturedUserId, 'react() must persist the session user, not a passed id'); } public function test_unreact_uses_the_session_user(): void { session(['userdata' => ['id' => 7]]); $capturedUserId = null; $repo = $this->make(ReactionsRepository::class, [ 'removeUserReaction' => function ($userId, ...$rest) use (&$capturedUserId) { $capturedUserId = $userId; return true; }, ]); $result = (new Reactions($repo))->unreact('tickets', 5, 'thumbsup'); $this->assertTrue($result); $this->assertSame(7, $capturedUserId, 'unreact() must remove for the session user, not a passed id'); } }