Skip to content

Commit

Permalink
validate & dynamic form fild generations
Browse files Browse the repository at this point in the history
  • Loading branch information
AravindRam-Ranium committed Mar 4, 2024
1 parent 1113eee commit 51ae56f
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions tests/RequestTest.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use Visualbuilder\FilamentUserConsent\Livewire\ConsentOptionFormBuilder;
use Visualbuilder\FilamentUserConsent\Models\ConsentOption;
use Visualbuilder\FilamentUserConsent\Tests\Seeders\ConsentOptionSeeder;

Expand All @@ -11,3 +12,69 @@
$this->seed(ConsentOptionSeeder::class);
get(route('consent-option-request'))->assertSuccessful();
});


it('can generate dynamic form fields', function() {
$this->seed(ConsentOptionSeeder::class);
$collections = auth()->user()->outstandingConsents();

$livewireComponent = livewire(ConsentOptionFormBuilder::class);
foreach($collections as $consentOption){
$livewireComponent->assertFormFieldExists("consents.$consentOption->id");

if((int)$consentOption->additional_info === 1) {
foreach ($consentOption->fields as $field) {
$livewireComponent->assertFormFieldExists("consents_info.$consentOption->id.{$field['name']}");
}
}
}
$livewireComponent->call('submit');

});

it('validate mandatory user consents', function() {
$this->seed(ConsentOptionSeeder::class);
$collections = auth()->user()->outstandingConsents();
$fieldValidation = [];
foreach($collections as $consentOption){
if($consentOption->is_mandatory) {
$fieldValidation["consents.$consentOption->id"] = 'required';
}
if((int)$consentOption->additional_info === 1) {
foreach ($consentOption->fields as $field) {
if((bool)$field['required']) {
$fieldValidation["consents_info.$consentOption->id.{$field['name']}"] = "required";
}
}
}
}

livewire(ConsentOptionFormBuilder::class)
->call('submit')
->assertHasFormErrors()
->assertHasFormErrors($fieldValidation);
});


it('can fill and save consents', function() {
$this->seed(ConsentOptionSeeder::class);
$collections = auth()->user()->outstandingConsents();
$fieldValidation = [];
foreach($collections as $consentOption){
if($consentOption->is_mandatory) {
$fieldValidation["consents.$consentOption->id"] = 'required';
}
if((int)$consentOption->additional_info === 1) {
foreach ($consentOption->fields as $field) {
if((bool)$field['required']) {
$fieldValidation["consents_info.$consentOption->id.{$field['name']}"] = "required";
}
}
}
}

livewire(ConsentOptionFormBuilder::class)
->call('submit')
->assertHasFormErrors()
->assertHasFormErrors($fieldValidation);
});

0 comments on commit 51ae56f

Please sign in to comment.