diff --git a/app/Http/Requests/Users/UpdateRequest.php b/app/Http/Requests/Users/UpdateRequest.php index f975825..ba34ff6 100644 --- a/app/Http/Requests/Users/UpdateRequest.php +++ b/app/Http/Requests/Users/UpdateRequest.php @@ -54,21 +54,8 @@ class UpdateRequest extends FormRequest { $formData = parent::validated(); - if (isset($formData['dod'])) { - if ($formData['dod']) { - $formData['yod'] = substr($formData['dod'], 0, 4); - } else { - $formData['yod'] = $formData['yod']; - } - } - - if (isset($formData['dob'])) { - if ($formData['dob']) { - $formData['yob'] = substr($formData['dob'], 0, 4); - } else { - $formData['yob'] = $formData['yob']; - } - } + $formData['yod'] = $this->getYod($formData); + $formData['yob'] = $this->getYob($formData); if (isset($formData['password']) && $formData['password']) { $formData['password'] = bcrypt($formData['password']); @@ -78,4 +65,30 @@ class UpdateRequest extends FormRequest return $formData; } + + private function getYob($formData) + { + if (isset($formData['yob'])) { + return $formData['yob']; + } + + if (isset($formData['dob']) && $formData['dob']) { + return substr($formData['dob'], 0, 4); + } + + return; + } + + private function getYod($formData) + { + if (isset($formData['yod'])) { + return $formData['yod']; + } + + if (isset($formData['dod']) && $formData['dod']) { + return substr($formData['dod'], 0, 4); + } + + return; + } } diff --git a/tests/Feature/UsersProfileTest.php b/tests/Feature/UsersProfileTest.php index 1114c71..5b17f84 100644 --- a/tests/Feature/UsersProfileTest.php +++ b/tests/Feature/UsersProfileTest.php @@ -61,6 +61,25 @@ class UsersProfileTest extends TestCase } /** @test */ + public function user_can_update_yob_only() + { + $user = $this->loginAsUser(); + $this->visit(route('users.edit', $user->id)); + $this->seePageIs(route('users.edit', $user->id)); + + $this->submitForm(trans('app.update'), [ + 'dob' => '', + 'yob' => '2003', + ]); + + $this->seeInDatabase('users', [ + 'id' => $user->id, + 'dob' => null, + 'yob' => '2003', + ]); + } + + /** @test */ public function user_can_edit_contact_address() { $user = $this->loginAsUser(); @@ -120,6 +139,25 @@ class UsersProfileTest extends TestCase } /** @test */ + public function user_can_update_yod_only() + { + $user = $this->loginAsUser(); + $this->visit(route('users.edit', [$user->id, 'tab' => 'death'])); + $this->seePageIs(route('users.edit', [$user->id, 'tab' => 'death'])); + + $this->submitForm(trans('app.update'), [ + 'dod' => '', + 'yod' => '2003', + ]); + + $this->seeInDatabase('users', [ + 'id' => $user->id, + 'dod' => null, + 'yod' => '2003', + ]); + } + + /** @test */ public function manager_can_add_login_account_on_a_user() { $manager = $this->loginAsUser();