create(); $token = Str::random(16); DB::table('associate_password_resets')->insert([ 'email' => $associate->email, 'token' => Hash::make($token), 'created_at' => Carbon::now(), ]); $this->get(route('password.reset', [ 'email' => $associate->email, 'token' => $token, ])) ->assertSuccessful() ->assertSeeLivewire('associates.auth.passwords.reset'); } /** @test */ public function can_reset_password() { $associate = factory(Associate::class)->create(); $token = Str::random(16); DB::table('associate_password_resets')->insert([ 'email' => $associate->email, 'token' => Hash::make($token), 'created_at' => Carbon::now(), ]); Livewire::test('associates.auth.passwords.reset', [ 'token' => $token, ]) ->set('email', $associate->email) ->set('password', 'new-password') ->set('passwordConfirmation', 'new-password') ->call('resetPassword'); $this->assertTrue(Auth::attempt([ 'email' => $associate->email, 'password' => 'new-password', ])); } /** @test */ public function token_is_required() { Livewire::test('associates.auth.passwords.reset', [ 'token' => null, ]) ->call('resetPassword') ->assertHasErrors(['token' => 'required']); } /** @test */ public function email_is_required() { Livewire::test('associates.auth.passwords.reset', [ 'token' => Str::random(16), ]) ->set('email', null) ->call('resetPassword') ->assertHasErrors(['email' => 'required']); } /** @test */ public function email_is_valid_email() { Livewire::test('associates.auth.passwords.reset', [ 'token' => Str::random(16), ]) ->set('email', 'email') ->call('resetPassword') ->assertHasErrors(['email' => 'email']); } /** @test */ function password_is_required() { Livewire::test('associates.auth.passwords.reset', [ 'token' => Str::random(16), ]) ->set('password', '') ->call('resetPassword') ->assertHasErrors(['password' => 'required']); } /** @test */ function password_is_minimum_of_eight_characters() { Livewire::test('associates.auth.passwords.reset', [ 'token' => Str::random(16), ]) ->set('password', 'secret') ->call('resetPassword') ->assertHasErrors(['password' => 'min']); } /** @test */ function password_matches_password_confirmation() { Livewire::test('associates.auth.passwords.reset', [ 'token' => Str::random(16), ]) ->set('password', 'new-password') ->set('passwordConfirmation', 'not-new-password') ->call('resetPassword') ->assertHasErrors(['password' => 'same']); } }