diff --git a/src/Transformations/Filter.php b/src/Transformations/Filter.php index 431fa1c..c47cc1c 100644 --- a/src/Transformations/Filter.php +++ b/src/Transformations/Filter.php @@ -48,7 +48,11 @@ public static function validate(string $key, ...$args): bool public static function generateUrl(string $url, array $values): string { // -/filter/:name/:amount/ - $url .= '-/filter/' . $values['name'] . '/' . $values['amount'] . '/'; + if ($values['amount'] === null) { + $url .= '-/filter/' . $values['name'] . '/'; + } else { + $url .= '-/filter/' . $values['name'] . '/' . $values['amount'] . '/'; + } return $url; } diff --git a/tests/TransformationTest.php b/tests/TransformationTest.php index 84ffc5f..7065191 100644 --- a/tests/TransformationTest.php +++ b/tests/TransformationTest.php @@ -199,6 +199,17 @@ expect($url)->toBe('https://ucarecdn.com/12a3456b-c789-1234-1de2-3cfa83096e25/-/strip_meta/sensitive/'); }); +it('omits the amount segment in filter when no amount is given', function () { + $uuid = '12a3456b-c789-1234-1de2-3cfa83096e25'; + + $url = (string) uploadcare($uuid)->filter('adaris'); + expect($url)->toContain('-/filter/adaris/'); + expect($url)->not->toContain('adaris//'); + + $url = (string) uploadcare($uuid)->filter('adaris', 50); + expect($url)->toContain('-/filter/adaris/50/'); +}); + it('honors the boolean argument in autoRotate', function () { $uuid = '12a3456b-c789-1234-1de2-3cfa83096e25';