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