From 547150e4b0fee4bd5b4aa6b8a7194f55a9b7705a Mon Sep 17 00:00:00 2001 From: Guilherme Capanema Date: Tue, 2 Jun 2020 16:16:04 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20testes=20para=20todos=20os=20campos?= =?UTF-8?q?=20do=20formul=C3=A1rio=20de=20cadastro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Livewire/Auth/Register/Individual.php | 42 +-- .../auth/register/individual.blade.php | 2 +- .../Feature/Auth/Register/IndividualTest.php | 297 ++++++++++++++++-- 3 files changed, 298 insertions(+), 43 deletions(-) diff --git a/app/Http/Livewire/Auth/Register/Individual.php b/app/Http/Livewire/Auth/Register/Individual.php index 34ca135..426b58d 100644 --- a/app/Http/Livewire/Auth/Register/Individual.php +++ b/app/Http/Livewire/Auth/Register/Individual.php @@ -99,34 +99,34 @@ class Individual extends Component public function register() { $this->validate([ - 'name' => ['required'], - 'birthday' => ['required', 'date_format:d/m/Y'], - 'email' => ['required', 'email', 'unique:users'], - 'address.street' => ['required', 'string'], - 'address.number' => ['required', 'string'], - 'address.complement' => ['required', 'string'], - 'address.neighbourhood' => ['required', 'string'], 'address.city' => ['required', 'string'], - 'address.state' => ['required', 'string'], - 'address.postcode' => ['required', 'string'], + 'address.complement' => ['nullable', 'string'], 'address.country' => ['required', 'string'], + 'address.neighbourhood' => ['required', 'string'], + 'address.number' => ['required', 'string'], + 'address.postcode' => ['required', 'string'], + 'address.state' => ['required', 'string'], + 'address.street' => ['required', 'string'], + 'birthday' => ['required', 'date_format:d/m/Y'], + 'contribution' => ['required', 'numeric'], + 'discussion' => ['required', 'string', 'in:all,daily,occasional'], + 'document.number' => ['required', 'string'], + 'document.type' => ['required', 'string', 'in:cpf,identity,passport'], + 'email' => ['required', 'email', 'unique:users'], + 'name' => ['required'], + 'profile.bike_activities' => ['nullable', 'string'], + 'profile.bike_use' => ['nullable', 'string'], + 'profile.comments' => ['nullable', 'string'], + 'profile.expectation' => ['nullable', 'string'], 'profile.gender' => ['required', 'string', 'in:male,female,other'], 'profile.occupation' => ['required', 'string'], - 'profile.scholarity' => ['required', 'string', 'in:primary-school,high-school,bachelor,master,phd'], + 'profile.org_participation' => ['nullable', 'string'], 'profile.phone' => ['required', 'string'], - 'profile.secondary_emails' => ['required', 'string'], - 'profile.website' => ['nullable', 'string'], + 'profile.scholarity' => ['required', 'string', 'in:primary-school,high-school,bachelor,master,phd'], + 'profile.secondary_emails' => ['nullable', 'string'], 'profile.social' => ['nullable', 'string'], - 'profile.expectation' => ['nullable', 'string'], - 'profile.bike_use' => ['nullable', 'string'], - 'profile.org_participation' => ['nullable', 'string'], - 'profile.bike_activities' => ['nullable', 'string'], - 'profile.comments' => ['nullable', 'string'], 'profile.ucb_comments' => ['nullable', 'string'], - 'document.type' => ['required', 'string', 'in:cpf,identity,passport'], - 'document.number' => ['required', 'string'], - 'discussion' => ['required', 'string', 'in:all,daily,occasional'], - 'contribution' => ['required', 'numeric'], + 'profile.website' => ['nullable', 'string'], ]); $user = new User([ diff --git a/resources/views/livewire/auth/register/individual.blade.php b/resources/views/livewire/auth/register/individual.blade.php index f9a3983..f03f815 100644 --- a/resources/views/livewire/auth/register/individual.blade.php +++ b/resources/views/livewire/auth/register/individual.blade.php @@ -104,7 +104,7 @@ - + diff --git a/tests/Feature/Auth/Register/IndividualTest.php b/tests/Feature/Auth/Register/IndividualTest.php index 8e42261..6978758 100644 --- a/tests/Feature/Auth/Register/IndividualTest.php +++ b/tests/Feature/Auth/Register/IndividualTest.php @@ -2,14 +2,15 @@ namespace Tests\Feature\Auth\Register; -use App\User; -use Tests\TestCase; -use Livewire\Livewire; -use Illuminate\Support\Facades\Hash; use App\Providers\RouteServiceProvider; +use App\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Mail; +use Livewire\Livewire; +use Tests\TestCase; class IndividualTest extends TestCase { @@ -37,36 +38,38 @@ class IndividualTest extends TestCase /** @test */ function a_user_can_register() { + Mail::fake(); + $user = factory(User::class)->make(); Livewire::test('auth.register.individual') - ->set('address.street', $user->address['street']) - ->set('address.number', $user->address['number']) + ->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.city', $user->address['city']) - ->set('address.state', $user->address['state']) + ->set('address.number', $user->address['number']) ->set('address.postcode', $user->address['postcode']) - ->set('address.country', $user->address['country']) + ->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.type', $user->document['type']) ->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.scholarity', $user->profile['scholarity']) + ->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.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']) + ->set('profile.website', $user->profile['website']) ->call('register') ->assertRedirect(route('home')); @@ -75,12 +78,75 @@ class IndividualTest extends TestCase } /** @test */ - function name_is_required() + function address_city_is_required() { Livewire::test('auth.register.individual') - ->set('name', '') + ->set('address.city', '') ->call('register') - ->assertHasErrors(['email' => 'required']); + ->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 */ @@ -89,7 +155,7 @@ class IndividualTest extends TestCase Livewire::test('auth.register.individual') ->set('birthday', '') ->call('register') - ->assertHasErrors(['email' => 'required']); + ->assertHasErrors(['birthday' => 'required']); } /** @test */ @@ -101,6 +167,60 @@ class IndividualTest extends TestCase ->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() { @@ -142,4 +262,139 @@ class IndividualTest extends TestCase ->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'); + } }