refactor rules out of DataObject

This commit is contained in:
icefox 2026-02-19 15:34:33 -03:00
parent 77d1aebc0a
commit 74f151df07
No known key found for this signature in database
5 changed files with 115 additions and 93 deletions

View file

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace Tests\Rules;
use Icefox\DTO\Log;
use Icefox\DTO\ReflectionHelper;
use Icefox\DTO\Support\RuleFactory;
use Illuminate\Validation\ValidationException;
use Tests\Rules\WithEmptyOverwriteRules;
@ -12,7 +14,7 @@ use Tests\Rules\WithOverwriteRules;
describe('rules array shape', function () {
it('returns inferred rules shape from RuleFactory::infer (inferred only)', function () {
$parameters = RuleFactory::getParametersMeta(WithMergedRules::class);
$parameters = ReflectionHelper::getParametersMeta(WithMergedRules::class);
$rules = RuleFactory::infer($parameters, '');
expect($rules)->toBe([
@ -21,7 +23,7 @@ describe('rules array shape', function () {
});
it('returns inferred rules shape regardless of OverwriteRules attribute', function () {
$parameters = RuleFactory::getParametersMeta(WithOverwriteRules::class);
$parameters = ReflectionHelper::getParametersMeta(WithOverwriteRules::class);
$rules = RuleFactory::infer($parameters, '');
expect($rules)->toBe([
@ -32,7 +34,7 @@ describe('rules array shape', function () {
describe('getRules method', function () {
it('returns merged rules from DataObject::getRules()', function () {
$rules = WithMergedRules::getRules();
$rules = (new RuleFactory(new Log()))->make(WithMergedRules::class);
expect($rules)->toBe([
'value' => ['required', 'numeric', 'max:20'],
@ -40,7 +42,7 @@ describe('getRules method', function () {
});
it('returns only custom rules from DataObject::getRules() with OverwriteRules', function () {
$rules = WithOverwriteRules::getRules();
$rules = (new RuleFactory(new Log()))->make(WithOverwriteRules::class);
expect($rules)->toBe([
'value' => ['numeric', 'max:20'],
@ -48,7 +50,7 @@ describe('getRules method', function () {
});
it('returns empty rules from DataObject::getRules() with OverwriteRules and no custom rules', function () {
$rules = WithEmptyOverwriteRules::getRules();
$rules = (new RuleFactory(new Log()))->make(WithEmptyOverwriteRules::class);
expect($rules)->toBe([]);
});