Я делаю тест, но он не проходит, когда пытается проверить, вошел ли пользователь в систему:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Auth;
use App\User;
class RegisterTest extends TestCase
{
use RefreshDatabase;
/*.....
more test about registering
....*/
/** @test */
function redirect_to_home_page_and_logged_in_after_login()
{
$user = factory(User::class)->create([
'name' => 'Test',
'email' => 'test@hotmail.com',
'password' => '123456'
]);
$response = $this->post('login', [
'email' => 'test@hotmail.com',
'password' => '123456'
]);
//this works
$response->assertRedirect('/');
//this fails
$this->assertTrue(Auth::check());
}
}
А это мой контроллер HomeController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class HomeController extends Controller
{
public function index()
{
if (Auth::check()){
return view('home');
}
return view('welcome');
}
}
А это мои маршруты / web.php
Route::get('/', 'HomeController@index');
Auth::routes();
Я не уверен, что я делаю неправильно. А что я могу сделать?. Я использую laravel 5.7 и phpunit 5.7.1
Также в моем приложении / Htpp / Auth / LoginController.php я сделал это:
protected $redirectTo = '/';
Спасибо.