Browse Source

Adiciona testes para todos os campos do formulário de cadastro

usuarios_separados
Guilherme Capanema 6 years ago
parent
commit
547150e4b0
3 changed files with 298 additions and 43 deletions
  1. +21
    -21
      app/Http/Livewire/Auth/Register/Individual.php
  2. +1
    -1
      resources/views/livewire/auth/register/individual.blade.php
  3. +276
    -21
      tests/Feature/Auth/Register/IndividualTest.php

+ 21
- 21
app/Http/Livewire/Auth/Register/Individual.php View File

@ -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([


+ 1
- 1
resources/views/livewire/auth/register/individual.blade.php View File

@ -104,7 +104,7 @@
</x-input-group>
<x-input.group class="px-2 w-full lg:w-1/2" label="{{ __('users.attributes.address.complement') }}" for="address-complement" :error="$errors->first('address.complement')">
<x-input.text wire:model.lazy="address.complement" id="address-complement" :state="$errors->has('address.complement') ? false : null" required />
<x-input.text wire:model.lazy="address.complement" id="address-complement" :state="$errors->has('address.complement') ? false : null" />
</x-input-group>
</div>


+ 276
- 21
tests/Feature/Auth/Register/IndividualTest.php View File

@ -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');
}
}