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() { Mail::fake(); $user = factory(User::class)->make(); Livewire::test('auth.register.individual') ->set('address.city', $user->address['city']) ->set('address.complement', $user->address['complement']) ->set('address.country', $user->address['country']) ->set('address.neighbourhood', $user->address['neighbourhood']) ->set('address.number', $user->address['number']) ->set('address.postcode', $user->address['postcode']) ->set('address.state', $user->address['state']) ->set('address.street', $user->address['street']) ->set('birthday', $user->birthday->format('d/m/Y')) ->set('contribution', $user->contribution) ->set('discussion', $user->discussion) ->set('document.number', $user->document['number']) ->set('document.type', $user->document['type']) ->set('email', $user->email) ->set('name', $user->name) ->set('profile.bike_activities', $user->profile['bike_activities']) ->set('profile.bike_use', $user->profile['bike_use']) ->set('profile.comments', $user->profile['comments']) ->set('profile.expectation', $user->profile['expectation']) ->set('profile.gender', $user->profile['gender']) ->set('profile.occupation', $user->profile['occupation']) ->set('profile.org_participation', $user->profile['org_participation']) ->set('profile.phone', $user->profile['phone']) ->set('profile.scholarity', $user->profile['scholarity']) ->set('profile.secondary_emails', $user->profile['secondary_emails']) ->set('profile.social', $user->profile['social']) ->set('profile.website', $user->profile['website']) ->call('register') ->assertRedirect(route('home')); $this->assertTrue(User::whereEmail($user->email)->exists()); $this->assertEquals($user->email, Auth::user()->email); } /** @test */ function address_city_is_required() { Livewire::test('auth.register.individual') ->set('address.city', '') ->call('register') ->assertHasErrors(['address.city' => 'required']); } /** @test */ function address_complement_is_not_required() { Livewire::test('auth.register.individual') ->set('address.complement', '') ->call('register') ->assertHasNoErrors('address.complement'); } /** @test */ function address_country_is_required() { Livewire::test('auth.register.individual') ->set('address.country', '') ->call('register') ->assertHasErrors(['address.country' => 'required']); } /** @test */ function address_neighbourhood_is_required() { Livewire::test('auth.register.individual') ->set('address.neighbourhood', '') ->call('register') ->assertHasErrors(['address.neighbourhood' => 'required']); } /** @test */ function address_postcode_is_required() { Livewire::test('auth.register.individual') ->set('address.postcode', '') ->call('register') ->assertHasErrors(['address.postcode' => 'required']); } /** @test */ function address_state_is_required() { Livewire::test('auth.register.individual') ->set('address.state', '') ->call('register') ->assertHasErrors(['address.state' => 'required']); } /** @test */ function address_street_is_required() { Livewire::test('auth.register.individual') ->set('address.street', '') ->call('register') ->assertHasErrors(['address.street' => 'required']); } /** @test */ function address_number_is_required() { Livewire::test('auth.register.individual') ->set('address.number', '') ->call('register') ->assertHasErrors(['address.number' => 'required']); } /** @test */ function birthday_is_required() { Livewire::test('auth.register.individual') ->set('birthday', '') ->call('register') ->assertHasErrors(['birthday' => 'required']); } /** @test */ function birthday_is_valid_birthday() { Livewire::test('auth.register.individual') ->set('birthday', '123123') ->call('register') ->assertHasErrors(['birthday' => 'date_format']); } /** @test */ function contribution_is_required() { Livewire::test('auth.register.individual') ->set('contribution', '') ->call('register') ->assertHasErrors(['contribution' => 'required']); } /** @test */ function contribution_is_valid_contribution() { Livewire::test('auth.register.individual') ->set('contribution', 'asdasdf') ->call('register') ->assertHasErrors(['contribution' => 'numeric']); } /** @test */ function discussion_is_required() { Livewire::test('auth.register.individual') ->set('discussion', '') ->call('register') ->assertHasErrors(['discussion' => 'required']); } /** @test */ function discussion_is_valid_discussion() { Livewire::test('auth.register.individual') ->set('discussion', 'asdasdf') ->call('register') ->assertHasErrors(['discussion' => 'in']); } /** @test */ function document_type_is_required() { Livewire::test('auth.register.individual') ->set('document.type', '') ->call('register') ->assertHasErrors(['document.type' => 'required']); } /** @test */ function document_number_is_required() { Livewire::test('auth.register.individual') ->set('document.number', '') ->call('register') ->assertHasErrors(['document.number' => 'required']); } /** @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']); } /** @test */ function name_is_required() { Livewire::test('auth.register.individual') ->set('name', '') ->call('register') ->assertHasErrors(['name' => 'required']); } /** @test */ function profile_bike_activities_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.bike_activities', '') ->call('register') ->assertHasNoErrors('profile.bike_activities'); } /** @test */ function profile_bike_use_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.bike_use', '') ->call('register') ->assertHasNoErrors('profile.bike_use'); } /** @test */ function profile_comments_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.comments', '') ->call('register') ->assertHasNoErrors('profile.comments'); } /** @test */ function profile_expectations_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.expectations', '') ->call('register') ->assertHasNoErrors('profile.expectations'); } /** @test */ function profile_gender_is_required() { Livewire::test('auth.register.individual') ->set('profile.gender', '') ->call('register') ->assertHasErrors(['profile.gender' => 'required']); } /** @test */ function profile_gender_is_valid_gender() { Livewire::test('auth.register.individual') ->set('profile.gender', 'asdasdf') ->call('register') ->assertHasErrors(['profile.gender' => 'in']); } /** @test */ function profile_occupation_is_required() { Livewire::test('auth.register.individual') ->set('profile.occupation', '') ->call('register') ->assertHasErrors(['profile.occupation' => 'required']); } /** @test */ function profile_org_participation_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.org_participation', '') ->call('register') ->assertHasNoErrors('profile.org_participation'); } /** @test */ function profile_phone_is_required() { Livewire::test('auth.register.individual') ->set('profile.phone', '') ->call('register') ->assertHasErrors(['profile.phone' => 'required']); } /** @test */ function profile_scholarity_is_required() { Livewire::test('auth.register.individual') ->set('profile.scholarity', '') ->call('register') ->assertHasErrors(['profile.scholarity' => 'required']); } /** @test */ function profile_scholarity_is_valid_scholarity() { Livewire::test('auth.register.individual') ->set('profile.scholarity', 'asdasdf') ->call('register') ->assertHasErrors(['profile.scholarity' => 'in']); } /** @test */ function profile_secondary_emails_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.secondary_emails', '') ->call('register') ->assertHasNoErrors('profile.secondary_emails'); } /** @test */ function profile_social_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.social', '') ->call('register') ->assertHasNoErrors('profile.social'); } /** @test */ function profile_website_is_not_required() { Livewire::test('auth.register.individual') ->set('profile.website', '') ->call('register') ->assertHasNoErrors('profile.website'); } }