Вход Регистрация
Файл: vendor/laravel/ui/tests/AuthBackend/RegistersUsersTest.php
Строк: 101
<?php

namespace LaravelUiTestsAuthBackend;

use 
IlluminateFoundationAuthRegistersUsers;
use 
IlluminateFoundationAuthUser;
use 
IlluminateHttpRequest;
use 
IlluminateRoutingPipeline;
use 
IlluminateSupportFacadesAuth;
use 
IlluminateSupportFacadesHash;
use 
IlluminateSupportFacadesValidator;
use 
IlluminateTestingTestResponse;
use 
IlluminateValidationValidationException;
use 
OrchestraTestbenchFactoriesUserFactory;
use 
OrchestraTestbenchTestCase;

class 
RegistersUsersTest extends TestCase
{
    use 
RegistersUsers;

    
/**
     * Define database migrations.
     *
     * @return void
     */
    
protected function defineDatabaseMigrations()
    {
        
$this->loadLaravelMigrations();
    }

    
/** @test */
    
public function it_can_register_a_user()
    {
        
$request Request::create('/register''POST', [
            
'name' => 'Taylor Otwell',
            
'email' => 'taylor@laravel.com',
            
'password' => 'secret-password',
            
'password_confirmation' => 'secret-password',
        ], [], [], [
            
'HTTP_ACCEPT' => 'application/json',
        ]);

        
$response $this->handleRequestUsing($request, function ($request) {
            return 
$this->register($request);
        })->
assertCreated();

        
$this->assertDatabaseHas('users', [
            
'name' => 'Taylor Otwell',
            
'email' => 'taylor@laravel.com',
        ]);
    }

    
/**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return IlluminateContractsValidationValidator
     */
    
protected function validator(array $data)
    {
        return 
Validator::make($data, [
            
'name' => ['required''string''max:255'],
            
'email' => ['required''string''email''max:255''unique:users'],
            
'password' => ['required''string''min:8''confirmed'],
        ]);
    }

     
/**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return AppModelsUser
     */
    
protected function create(array $data)
    {
        
$user = (new User())->forceFill([
            
'name' => $data['name'],
            
'email' => $data['email'],
            
'password' => Hash::make($data['password']),
        ]);

        
$user->save();

        return 
$user;
    }

    
/**
     * Handle Request using the following pipeline.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  callable  $callback
     * @return IlluminateTestingTestResponse
     */
    
protected function handleRequestUsing(Request $request, callable $callback)
    {
        return new 
TestResponse(
            (new 
Pipeline($this->app))
                ->
send($request)
                ->
through([
                    
IlluminateSessionMiddlewareStartSession::class,
                ])
                ->
then($callback)
        );
    }
}
Онлайн: 4
Реклама