Behat — Laravel — Тестирование пользовательской функции входа в CAS

Я пишу функции, используя Behat в моих проектах Laravel.
Мои сценарии — просто проверить, успешно ли пользователь вошел в систему через систему CAS или нет.

  Scenario: Authentication
Given I am on the homepage
And I press "Login" button
Then I should see "Login Successfully"

Тем не менее, это не работает, как я ожидал.
Любая идея?

Большое спасибо

0

Решение

Это решение, которое один из моих коллег нашел и успешно реализовал.

приложение / Http / CASAuth.php

<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class MiamiCASAuth
{

protected $auth;
protected $cas;

public function __construct(Guard $auth)
{
if(strcmp(env(“APP_ENV”),“acceptance”) !== 0) {
$this->auth = $auth;
$this->cas = app(‘cas’);
}
}

/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request $request
* @param  \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(strcmp(env("APP_ENV"),"acceptance") !== 0) {
if ($this->cas->isAuthenticated()) {
// Store the user credentials in a Laravel managed session
session()->put('cas_user', $this->cas->user());

} else {
if ($request->ajax()) {
return response('Unauthorized.', 401);
}
$this->cas->authenticate();
}
}

return $next($request);
}
}
0

Другие решения

Других решений пока нет …