Файл: 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)
);
}
}