get(route('collaborators.login')) ->assertSuccessful() ->assertSeeLivewire('collaborators.auth.login'); } /** @test */ public function is_redirected_if_already_logged_in() { $collaborator = factory(Collaborator::class)->create(); $this->be($collaborator, 'collaborators'); $this->get(route('collaborators.login')) ->assertRedirect(route('collaborators.home')); } /** @test */ public function a_collaborator_can_login() { $collaborator = $this->factoryWithoutObservers(Collaborator::class)->create(['password' => Hash::make('password')]); Livewire::test('collaborators.auth.login') ->set('email', $collaborator->email) ->set('password', 'password') ->call('authenticate'); $this->assertAuthenticatedAs($collaborator, 'collaborators'); } /** @test */ public function is_redirected_to_the_home_page_after_login() { $collaborator = $this->factoryWithoutObservers(Collaborator::class)->create(['password' => Hash::make('password')]); Livewire::test('collaborators.auth.login') ->set('email', $collaborator->email) ->set('password', 'password') ->call('authenticate') ->assertRedirect(route('collaborators.home')); } /** @test */ public function email_is_required() { $collaborator = factory(Collaborator::class)->create(['password' => Hash::make('password')]); Livewire::test('collaborators.auth.login') ->set('password', 'password') ->call('authenticate') ->assertHasErrors(['email' => 'required']); } /** @test */ public function email_must_be_valid_email() { $collaborator = factory(Collaborator::class)->create(['password' => Hash::make('password')]); Livewire::test('collaborators.auth.login') ->set('email', 'invalid-email') ->set('password', 'password') ->call('authenticate') ->assertHasErrors(['email' => 'email']); } /** @test */ public function password_is_required() { $collaborator = factory(Collaborator::class)->create(['password' => Hash::make('password')]); Livewire::test('collaborators.auth.login') ->set('email', $collaborator->email) ->call('authenticate') ->assertHasErrors(['password' => 'required']); } /** @test */ public function bad_login_attempt_shows_message() { $collaborator = factory(Collaborator::class)->create(); Livewire::test('collaborators.auth.login') ->set('email', $collaborator->email) ->set('password', 'bad-password') ->call('authenticate') ->assertHasErrors('email'); $this->assertFalse(Auth::check()); } }