From bacbf934e1a0688aa29d01e3bbc5cbdfaa6266d6 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Thu, 30 Apr 2026 14:52:53 +0200 Subject: [PATCH] Improve validation exception message --- .../Concerns/ValidatesDatabaseParameters.php | 2 +- tests/TenantDatabaseManagerTest.php | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Database/Concerns/ValidatesDatabaseParameters.php b/src/Database/Concerns/ValidatesDatabaseParameters.php index adb4b1f5..89a545cf 100644 --- a/src/Database/Concerns/ValidatesDatabaseParameters.php +++ b/src/Database/Concerns/ValidatesDatabaseParameters.php @@ -66,7 +66,7 @@ trait ValidatesDatabaseParameters foreach (str_split($parameter) as $char) { if (! str_contains($allowlist, $char)) { - throw new InvalidArgumentException("Invalid character '{$char}' in parameter: {$parameter}"); + throw new InvalidArgumentException("Forbidden character '{$char}' in database parameter."); } } } diff --git a/tests/TenantDatabaseManagerTest.php b/tests/TenantDatabaseManagerTest.php index a55b593a..b5c7f7d7 100644 --- a/tests/TenantDatabaseManagerTest.php +++ b/tests/TenantDatabaseManagerTest.php @@ -564,23 +564,23 @@ test('database managers validate parameters that cannot be bound', function ($dr ]); expect(fn () => $manager->createDatabase($tenant)) - ->toThrow(InvalidArgumentException::class, $invalidDatabaseName); + ->toThrow(InvalidArgumentException::class); expect(fn () => $manager->deleteDatabase($tenant)) - ->toThrow(InvalidArgumentException::class, $invalidDatabaseName); + ->toThrow(InvalidArgumentException::class); } else { // Invalid username, createUser() and deleteUser() should // throw an invalid argument exception. $tenantWithInvalidUsername = Tenant::make([ 'tenancy_db_name' => 'valid_database_name890', - 'tenancy_db_username' => $invalidUsername = "username with spaces", + 'tenancy_db_username' => "username with spaces", ]); expect(fn () => $manager->createUser($tenantWithInvalidUsername->database())) - ->toThrow(InvalidArgumentException::class, $invalidUsername); + ->toThrow(InvalidArgumentException::class, 'Forbidden character'); expect(fn () => $manager->deleteUser($tenantWithInvalidUsername->database())) - ->toThrow(InvalidArgumentException::class, $invalidUsername); + ->toThrow(InvalidArgumentException::class, 'Forbidden character'); // Invalid database name, createUser() should throw // an invalid argument exception. deleteUser() doesn't @@ -591,16 +591,16 @@ test('database managers validate parameters that cannot be bound', function ($dr ]); expect(fn () => $manager->createUser($tenantWithInvalidDatabase->database())) - ->toThrow(InvalidArgumentException::class, $invalidDatabaseName); + ->toThrow(InvalidArgumentException::class, 'Forbidden character'); $tenantWithInvalidPassword = Tenant::make([ 'tenancy_db_name' => 'valid_database_name890', 'tenancy_db_username' => 'valid_USERNAME', - 'tenancy_db_password' => $invalidPassword = "p'ssword", + 'tenancy_db_password' => "p'ssword", ]); expect(fn () => $manager->createUser($tenantWithInvalidPassword->database())) - ->toThrow(InvalidArgumentException::class, $invalidPassword); + ->toThrow(InvalidArgumentException::class, 'Forbidden character'); $tenantWithNullDbParameters = Tenant::make([ 'tenancy_db_name' => null,