create(['password' => Hash::make('OldPassword1')]); $this->actingAs($user, 'admin') ->putJson('/api/v1/administrator/password', [ 'current_password' => 'OldPassword1', 'password' => 'NewPassword2', 'password_confirmation' => 'NewPassword2', ]) ->assertOk() ->assertJsonPath('error', false); $this->assertTrue(Hash::check('NewPassword2', $user->fresh()->password)); } public function test_admin_must_provide_the_correct_current_password(): void { $user = User::factory()->create(['password' => Hash::make('OldPassword1')]); $this->actingAs($user, 'admin') ->putJson('/api/v1/administrator/password', [ 'current_password' => 'WrongPassword', 'password' => 'NewPassword2', 'password_confirmation' => 'NewPassword2', ]) ->assertUnprocessable() ->assertJsonValidationErrors('current_password'); $this->assertTrue(Hash::check('OldPassword1', $user->fresh()->password)); } public function test_new_password_must_be_confirmed_and_different(): void { $user = User::factory()->create(['password' => Hash::make('OldPassword1')]); $this->actingAs($user, 'admin') ->putJson('/api/v1/administrator/password', [ 'current_password' => 'OldPassword1', 'password' => 'OldPassword1', 'password_confirmation' => 'DifferentPassword2', ]) ->assertUnprocessable() ->assertJsonValidationErrors('password'); } }