1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-05-06 15:24:03 +00:00

Improve validation exception message

This commit is contained in:
lukinovec 2026-04-30 14:52:53 +02:00
parent 50ea524ad2
commit bacbf934e1
2 changed files with 9 additions and 9 deletions

View file

@ -66,7 +66,7 @@ trait ValidatesDatabaseParameters
foreach (str_split($parameter) as $char) { foreach (str_split($parameter) as $char) {
if (! str_contains($allowlist, $char)) { if (! str_contains($allowlist, $char)) {
throw new InvalidArgumentException("Invalid character '{$char}' in parameter: {$parameter}"); throw new InvalidArgumentException("Forbidden character '{$char}' in database parameter.");
} }
} }
} }

View file

@ -564,23 +564,23 @@ test('database managers validate parameters that cannot be bound', function ($dr
]); ]);
expect(fn () => $manager->createDatabase($tenant)) expect(fn () => $manager->createDatabase($tenant))
->toThrow(InvalidArgumentException::class, $invalidDatabaseName); ->toThrow(InvalidArgumentException::class);
expect(fn () => $manager->deleteDatabase($tenant)) expect(fn () => $manager->deleteDatabase($tenant))
->toThrow(InvalidArgumentException::class, $invalidDatabaseName); ->toThrow(InvalidArgumentException::class);
} else { } else {
// Invalid username, createUser() and deleteUser() should // Invalid username, createUser() and deleteUser() should
// throw an invalid argument exception. // throw an invalid argument exception.
$tenantWithInvalidUsername = Tenant::make([ $tenantWithInvalidUsername = Tenant::make([
'tenancy_db_name' => 'valid_database_name890', '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())) expect(fn () => $manager->createUser($tenantWithInvalidUsername->database()))
->toThrow(InvalidArgumentException::class, $invalidUsername); ->toThrow(InvalidArgumentException::class, 'Forbidden character');
expect(fn () => $manager->deleteUser($tenantWithInvalidUsername->database())) expect(fn () => $manager->deleteUser($tenantWithInvalidUsername->database()))
->toThrow(InvalidArgumentException::class, $invalidUsername); ->toThrow(InvalidArgumentException::class, 'Forbidden character');
// Invalid database name, createUser() should throw // Invalid database name, createUser() should throw
// an invalid argument exception. deleteUser() doesn't // 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())) expect(fn () => $manager->createUser($tenantWithInvalidDatabase->database()))
->toThrow(InvalidArgumentException::class, $invalidDatabaseName); ->toThrow(InvalidArgumentException::class, 'Forbidden character');
$tenantWithInvalidPassword = Tenant::make([ $tenantWithInvalidPassword = Tenant::make([
'tenancy_db_name' => 'valid_database_name890', 'tenancy_db_name' => 'valid_database_name890',
'tenancy_db_username' => 'valid_USERNAME', 'tenancy_db_username' => 'valid_USERNAME',
'tenancy_db_password' => $invalidPassword = "p'ssword", 'tenancy_db_password' => "p'ssword",
]); ]);
expect(fn () => $manager->createUser($tenantWithInvalidPassword->database())) expect(fn () => $manager->createUser($tenantWithInvalidPassword->database()))
->toThrow(InvalidArgumentException::class, $invalidPassword); ->toThrow(InvalidArgumentException::class, 'Forbidden character');
$tenantWithNullDbParameters = Tenant::make([ $tenantWithNullDbParameters = Tenant::make([
'tenancy_db_name' => null, 'tenancy_db_name' => null,