Как нам действовать как() с Sentinel

Я тестирую страницу Laravel 5.1, которая требует, чтобы пользователь вошел в систему. В моем проекте для аутентификации используется упаковка Cartalyst/Sentinel.

Я пробовал это, но я не узнаю, что пользователь вошел в систему.

public function testPageWithLogin()
{
    $user = Sentinel::findById(2);

    $this->actingAs($user)
         ->withSession([])
         ->visit('/page')
         ->dontSee('Whoops')
         ->dontSee('login');
}

Что я могу сделать, чтобы пользователь считался авторизованным?


person cw24    schedule 07.05.2016    source источник


Ответы (1)


Я забыл войти в систему с помощью метода Sentinel::login. Пользователь был законным, просто не был замечен как авторизованный.

Вот как это должно было быть сделано.

public function testPageWithLogin()
{
    $user = Sentinel::findById(2);
    Sentinel::login($user);

    $this->actingAs($user)
         ->withSession([])
         ->visit('/page')
         ->dontSee('Whoops')
         ->dontSee('login');
}
person cw24    schedule 07.05.2016
comment
Модель пользователя Sentinel должна реализовывать аутентифицируемый контракт: ..\TestCase::actingAs() must be an instance of Illuminate\Contracts\Auth\Authenticatable - person Vladimir Vukanac; 08.02.2018