`config('services.unsplash.access_key', '')` only falls back to '' when the key
is *absent* — if the env var is present but empty, config returns null, and
assigning null to the `string` property throws a TypeError, taking the whole
request down with a 500 during media search.
Cast to `(string)` so a null/empty key degrades gracefully to '' and the service
returns an empty result set (as it already does for a missing key) instead of
throwing.
Covered by a regression test for both services.
22 lines
639 B
PHP
22 lines
639 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Services\GiphyService;
|
|
use App\Services\UnsplashService;
|
|
|
|
test('unsplash service tolerates a null access key without throwing', function () {
|
|
config(['services.unsplash.access_key' => null]);
|
|
|
|
$result = (new UnsplashService)->search('cats');
|
|
|
|
expect($result)->toBe(['results' => [], 'total' => 0, 'total_pages' => 0]);
|
|
});
|
|
|
|
test('giphy service tolerates a null api key without throwing', function () {
|
|
config(['services.giphy.api_key' => null]);
|
|
|
|
$result = (new GiphyService)->search('cats');
|
|
|
|
expect($result)->toBe(['results' => [], 'total' => 0, 'total_pages' => 0]);
|
|
});
|