From 61ab302ea80f7c1d40eb219c1da251d8ce50f67e Mon Sep 17 00:00:00 2001 From: Richard van Baarsen Date: Fri, 29 Mar 2024 00:08:34 +0100 Subject: [PATCH] Add attribute for Laravel's list validation rule --- src/Attributes/Validation/ListType.php | 19 +++++++++++++++++++ .../Validation/ValidationRuleFactory.php | 2 ++ tests/Datasets/RulesDataset.php | 6 ++++++ 3 files changed, 27 insertions(+) create mode 100644 src/Attributes/Validation/ListType.php diff --git a/src/Attributes/Validation/ListType.php b/src/Attributes/Validation/ListType.php new file mode 100644 index 000000000..f151701a8 --- /dev/null +++ b/src/Attributes/Validation/ListType.php @@ -0,0 +1,19 @@ + Json::class, LessThan::keyword() => LessThan::class, LessThanOrEqualTo::keyword() => LessThanOrEqualTo::class, + ListType::keyword() => ListType::class, Lowercase::keyword() => Lowercase::class, MacAddress::keyword() => MacAddress::class, Max::keyword() => Max::class, diff --git a/tests/Datasets/RulesDataset.php b/tests/Datasets/RulesDataset.php index fdc878dd7..a211ad981 100644 --- a/tests/Datasets/RulesDataset.php +++ b/tests/Datasets/RulesDataset.php @@ -57,6 +57,7 @@ use Spatie\LaravelData\Attributes\Validation\Json; use Spatie\LaravelData\Attributes\Validation\LessThan; use Spatie\LaravelData\Attributes\Validation\LessThanOrEqualTo; +use Spatie\LaravelData\Attributes\Validation\ListType; use Spatie\LaravelData\Attributes\Validation\Lowercase; use Spatie\LaravelData\Attributes\Validation\MacAddress; use Spatie\LaravelData\Attributes\Validation\Max; @@ -314,6 +315,11 @@ function fixature( expected: 'lte:field', ); + yield fixature( + attribute: new ListType(), + expected: 'list', + ); + yield fixature( attribute: new Lowercase(), expected: 'lowercase',