opnform/tests/Unit/Service/Forms/FormLogicPropertyResolverTe...

109 lines
3.8 KiB
PHP

<?php
use App\Service\Forms\FormLogicPropertyResolver;
it('can validate form logic property resolver', function ($property, $formData, $expectedResult) {
$isRequired = FormLogicPropertyResolver::isRequired($property, $formData);
expect($isRequired)->toBe($expectedResult);
})->with([
[
[
'id' => "title",
'name' => "Name",
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
"conditions" => [
"operatorIdentifier"=> "and",
"children"=> [
[
"identifier"=> "user",
"value"=> [
"operator"=> "is_not_empty",
"property_meta"=> [
'id'=> "93ea3198-353f-440b-8dc9-2ac9a7bee124",
"type"=> "select",
],
"value"=> true
]
]
]
],
"actions" => ['make-it-optional']
]
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124'=>["One"]],
false
],
[
[
'id' => "title",
'name' => "Name",
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
"conditions" => [
"operatorIdentifier"=> "and",
"children"=> [
[
"identifier"=> "user",
"value"=> [
"operator"=> "is_not_empty",
"property_meta"=> [
'id'=> "93ea3198-353f-440b-8dc9-2ac9a7bee124",
"type"=> "select",
],
"value"=> true
]
]
]
],
"actions" => ['make-it-optional']
]
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124'=>[]],
true
],
[
[
'id' => "title",
'name' => "Name",
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
"conditions" => [
"operatorIdentifier"=> "or",
"children"=> [
[
"identifier"=> "user",
"value"=> [
"operator"=> "is_not_empty",
"property_meta"=> [
'id'=> "93ea3198-353f-440b-8dc9-2ac9a7bee124",
"type"=> "select",
],
"value"=> true
]
],
[
"identifier"=> "email",
"value"=> [
"operator"=> "contains",
"property_meta"=> [
'id'=> "93ea3198-353f-440b-8dc9-2ac9a7bee222",
"type"=> "email",
],
"value"=> "abc"
]
]
]
],
"actions" => ['make-it-optional']
]
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124'=>[], '93ea3198-353f-440b-8dc9-2ac9a7bee222'=>['abc']],
false
]
]);