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() { $user = factory(User::class)->make(); Livewire::test('auth.register.individual') ->set('address.street', $user->address['street']) ->set('address.number', $user->address['number']) ->set('address.complement', $user->address['complement']) ->set('address.neighbourhood', $user->address['neighbourhood']) ->set('address.city', $user->address['city']) ->set('address.state', $user->address['state']) ->set('address.postcode', $user->address['postcode']) ->set('address.country', $user->address['country']) ->set('birthday', $user->birthday->format('d/m/Y')) ->set('contribution', $user->contribution) ->set('discussion', $user->discussion) ->set('document.type', $user->document['type']) ->set('document.number', $user->document['number']) ->set('email', $user->email) ->set('name', $user->name) ->set('profile.gender', $user->profile['gender']) ->set('profile.occupation', $user->profile['occupation']) ->set('profile.scholarity', $user->profile['scholarity']) ->set('profile.phone', $user->profile['phone']) ->set('profile.secondary_emails', $user->profile['secondary_emails']) ->set('profile.website', $user->profile['website']) ->set('profile.social', $user->profile['social']) ->set('profile.expectation', $user->profile['expectation']) ->set('profile.bike_use', $user->profile['bike_use']) ->set('profile.org_participation', $user->profile['org_participation']) ->set('profile.bike_activities', $user->profile['bike_activities']) ->set('profile.comments', $user->profile['comments']) ->call('register') ->assertRedirect(route('home')); $this->assertTrue(User::whereEmail($user->email)->exists()); $this->assertEquals($user->email, 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']); } }