From cc30bdbe5718d99101fbdda4fd2d5b0011934641 Mon Sep 17 00:00:00 2001 From: Markus Machatschek Date: Wed, 27 May 2026 14:24:24 +0200 Subject: [PATCH 1/2] feat: add BadRequestException as additional ClientException class --- .../Request/Statuses/BadRequestException.php | 12 ++++++++++++ src/Helpers/RequestExceptionHelper.php | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 src/Exceptions/Request/Statuses/BadRequestException.php diff --git a/src/Exceptions/Request/Statuses/BadRequestException.php b/src/Exceptions/Request/Statuses/BadRequestException.php new file mode 100644 index 00000000..5048ade7 --- /dev/null +++ b/src/Exceptions/Request/Statuses/BadRequestException.php @@ -0,0 +1,12 @@ + BadRequestException::class, $status === 401 => UnauthorizedException::class, $status === 402 => PaymentRequiredException::class, $status === 403 => ForbiddenException::class, From ba6bbb61f8412cce342223dee29d4b5cd099d176 Mon Sep 17 00:00:00 2001 From: Markus Machatschek Date: Sat, 30 May 2026 19:27:26 +0200 Subject: [PATCH 2/2] tests: add testcase for BadRequest to dataset --- tests/Unit/RequestExceptionTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/Unit/RequestExceptionTest.php b/tests/Unit/RequestExceptionTest.php index db4d2b40..66ae9ba7 100644 --- a/tests/Unit/RequestExceptionTest.php +++ b/tests/Unit/RequestExceptionTest.php @@ -12,6 +12,7 @@ use Saloon\Exceptions\Request\Statuses\NotFoundException; use Saloon\Exceptions\Request\Statuses\ForbiddenException; use Saloon\Tests\Fixtures\Requests\AlwaysHasFailureRequest; +use Saloon\Exceptions\Request\Statuses\BadRequestException; use Saloon\Exceptions\Request\Statuses\UnauthorizedException; use Saloon\Exceptions\Request\Statuses\GatewayTimeoutException; use Saloon\Exceptions\Request\Statuses\RequestTimeOutException; @@ -35,6 +36,7 @@ expect($exception)->toBeInstanceOf($expectedException); expect($exception->getMessage())->toEqual($message); })->with([ + [400, BadRequestException::class], [401, UnauthorizedException::class], [402, PaymentRequiredException::class], [403, ForbiddenException::class],