Skip to content

Commit 14f5aaa

Browse files
committed
Fix PHPStan type errors in Bridge Brave package
- Add proper type checking and casting in Brave.php - Add return type annotations to test methods - Fix MockResponse parameter type in tests - Add proper array type checking for HTTP response data - Update .gitignore to exclude PHPUnit cache files
1 parent 9614bd7 commit 14f5aaa

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
vendor/
22
composer.lock
3-
phpunit.xml
3+
phpunit.xml/.phpunit.result.cache

src/agent/src/Bridge/Brave/Brave.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,21 @@ public function __invoke(
6262

6363
$data = $result->toArray();
6464

65-
return array_map(static function (array $result) {
66-
return ['title' => $result['title'], 'description' => $result['description'], 'url' => $result['url']];
67-
}, $data['web']['results'] ?? []);
65+
$results = [];
66+
if (isset($data['web']) && is_array($data['web']) && isset($data['web']['results']) && is_array($data['web']['results'])) {
67+
$results = $data['web']['results'];
68+
}
69+
70+
return array_values(array_map(static function (mixed $result): array {
71+
if (!is_array($result)) {
72+
return ['title' => '', 'description' => '', 'url' => ''];
73+
}
74+
75+
return [
76+
'title' => is_string($result['title'] ?? null) ? $result['title'] : '',
77+
'description' => is_string($result['description'] ?? null) ? $result['description'] : '',
78+
'url' => is_string($result['url'] ?? null) ? $result['url'] : '',
79+
];
80+
}, $results));
6881
}
6982
}

src/agent/src/Bridge/Brave/Tests/BraveTest.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#[CoversClass(Brave::class)]
2222
final class BraveTest extends TestCase
2323
{
24-
public function testReturnsSearchResults()
24+
public function testReturnsSearchResults(): void
2525
{
2626
$result = JsonMockResponse::fromFile(__DIR__.'/fixtures/search-results.json');
2727
$httpClient = new MockHttpClient($result);
@@ -38,7 +38,7 @@ public function testReturnsSearchResults()
3838
$this->assertSame('https://www.espn.com/nfl/team/_/name/dal/dallas-cowboys', $results[0]['url']);
3939
}
4040

41-
public function testPassesCorrectParametersToApi()
41+
public function testPassesCorrectParametersToApi(): void
4242
{
4343
$result = JsonMockResponse::fromFile(__DIR__.'/fixtures/search-results.json');
4444
$httpClient = new MockHttpClient($result);
@@ -54,12 +54,13 @@ public function testPassesCorrectParametersToApi()
5454

5555
$requestOptions = $result->getRequestOptions();
5656
$this->assertArrayHasKey('headers', $requestOptions);
57+
$this->assertIsArray($requestOptions['headers']);
5758
$this->assertContains('X-Subscription-Token: test-api-key', $requestOptions['headers']);
5859
}
5960

60-
public function testHandlesEmptyResults()
61+
public function testHandlesEmptyResults(): void
6162
{
62-
$result = new MockResponse(json_encode(['web' => ['results' => []]]));
63+
$result = new MockResponse((string) json_encode(['web' => ['results' => []]]));
6364
$httpClient = new MockHttpClient($result);
6465
$brave = new Brave($httpClient, 'test-api-key');
6566

0 commit comments

Comments
 (0)