Sistema de controles da União de Ciclistas do Brasil
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

145 lines
4.9 KiB

<?php
namespace Tests\Feature\Auth\Register;
use App\User;
use Tests\TestCase;
use Livewire\Livewire;
use Illuminate\Support\Facades\Hash;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Auth;
class IndividualTest extends TestCase
{
use RefreshDatabase, WithFaker;
/** @test */
function registration_page_contains_livewire_component()
{
$this->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']);
}
}