get(route('register.individual')) ->assertSuccessful() ->assertSeeLivewire('auth.register.individual'); } /** @test */ public function is_redirected_if_already_logged_in() { $user = factory(User::class)->create(); $this->be($user); $this->get(route('register.individual')) ->assertRedirect(route('home')); } /** @test */ function a_user_can_register() { Livewire::test('auth.register.individual') ->set('name', 'Tall Stack') ->set('birthday', $this->faker->date('d/m/Y')) ->set('email', 'tallstack@example.com') ->call('register') ->assertRedirect(route('home')); $this->assertTrue(User::whereEmail('tallstack@example.com')->exists()); $this->assertEquals('tallstack@example.com', Auth::user()->email); } /** @test */ function name_is_required() { Livewire::test('auth.register.individual') ->set('name', '') ->call('register') ->assertHasErrors(['email' => 'required']); } /** @test */ function birthday_is_required() { Livewire::test('auth.register.individual') ->set('birthday', '') ->call('register') ->assertHasErrors(['email' => 'required']); } /** @test */ function birthday_is_valid_birthday() { Livewire::test('auth.register.individual') ->set('birthday', '123123') ->call('register') ->assertHasErrors(['birthday' => 'date_format']); } /** @test */ function email_is_required() { Livewire::test('auth.register.individual') ->set('email', '') ->call('register') ->assertHasErrors(['email' => 'required']); } /** @test */ function email_is_valid_email() { Livewire::test('auth.register.individual') ->set('email', 'tallstack') ->call('register') ->assertHasErrors(['email' => 'email']); } /** @test */ function email_hasnt_been_taken_already() { factory(User::class)->create(['email' => 'tallstack@example.com']); Livewire::test('auth.register.individual') ->set('email', 'tallstack@example.com') ->call('register') ->assertHasErrors(['email' => 'unique']); } /** @test */ function see_email_hasnt_already_been_taken_validation_message_as_user_types() { factory(User::class)->create(['email' => 'tallstack@example.com']); Livewire::test('auth.register.individual') ->set('email', 'smallstack@gmail.com') ->assertHasNoErrors() ->set('email', 'tallstack@example.com') ->call('register') ->assertHasErrors(['email' => 'unique']); } }