0

Ich teste eine Laravel 5.1-Seite, die den Benutzer erfordert, um angemeldet zu sein. Mein Projekt verwendet die Cartalyst/Sentinel Verpackung für die Authentifizierung.Wie wir agierenAs() mit Sentinel

Ich versuchte dies aber ich erkenne nicht, dass der Benutzer angemeldet ist.

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

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

Was kann ich tun, damit der Benutzer angemeldet als zu sehen sein wird?

Antwort

0

Ich habe vergessen, den Benutzer mit der Sentinel :: Login-Methode zu protokollieren. Der Benutzer wurde legitim nur nicht als eingeloggt gesehen.

So sollte es gemacht worden sein.

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

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

Sentinel Anwendermodell muss authentifizierbarer Vertrag implementieren: '.. \ Testcase :: actingAs() muss eine Instanz von Illuminate \ Contracts \ Auth \ Authenticatable' –