'203.0.113.10'] ); $repository->shouldReceive('create') ->once() ->with([ 'search_text' => 'readyy', 'query_text' => 'ready', 'results' => 12, 'ip_address' => '203.0.113.10', ]) ->andReturn($searchLog); $result = (new SearchLogService($repository))->record( ' readyy ', ' ready ', 12, $request ); $this->assertSame($searchLog, $result); } public function test_it_clamps_negative_result_counts_to_zero(): void { $repository = Mockery::mock(SearchLogRepository::class); $searchLog = Mockery::mock(SearchLog::class); $repository->shouldReceive('create') ->once() ->with(Mockery::on(fn (array $data) => $data['results'] === 0)) ->andReturn($searchLog); (new SearchLogService($repository))->record( 'missing', 'missing', -1, Request::create('/') ); } public function test_it_only_records_when_suggest_is_enabled(): void { $repository = Mockery::mock(SearchLogRepository::class); $searchLog = Mockery::mock(SearchLog::class); $service = new SearchLogService($repository); $repository->shouldNotReceive('create'); $this->assertNull($service->recordWhenSuggested( false, 'readyy', 'ready', 12, Request::create('/') )); $repository = Mockery::mock(SearchLogRepository::class); $repository->shouldReceive('create')->once()->andReturn($searchLog); $this->assertSame( $searchLog, (new SearchLogService($repository))->recordWhenSuggested( '1', 'readyy', 'ready', 12, Request::create('/') ) ); } }