<?php
|
|
|
|
namespace Tests\Feature\Auth\Register;
|
|
|
|
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
|
|
{
|
|
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()
|
|
{
|
|
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');
|
|
}
|
|
}
|