Skip to content

Commit 99c8032

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 0b61c6a commit 99c8032

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
@@ -19,7 +19,7 @@
1919

2020
final class BraveTest extends TestCase
2121
{
22-
public function testReturnsSearchResults()
22+
public function testReturnsSearchResults(): void
2323
{
2424
$result = JsonMockResponse::fromFile(__DIR__.'/fixtures/search-results.json');
2525
$httpClient = new MockHttpClient($result);
@@ -36,7 +36,7 @@ public function testReturnsSearchResults()
3636
$this->assertSame('https://www.espn.com/nfl/team/_/name/dal/dallas-cowboys', $results[0]['url']);
3737
}
3838

39-
public function testPassesCorrectParametersToApi()
39+
public function testPassesCorrectParametersToApi(): void
4040
{
4141
$result = JsonMockResponse::fromFile(__DIR__.'/fixtures/search-results.json');
4242
$httpClient = new MockHttpClient($result);
@@ -52,12 +52,13 @@ public function testPassesCorrectParametersToApi()
5252

5353
$requestOptions = $result->getRequestOptions();
5454
$this->assertArrayHasKey('headers', $requestOptions);
55+
$this->assertIsArray($requestOptions['headers']);
5556
$this->assertContains('X-Subscription-Token: test-api-key', $requestOptions['headers']);
5657
}
5758

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

0 commit comments

Comments
 (0)