mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-02-18 10:54:31 +00:00
98 - Testing the Login Endpoint
This commit is contained in:
@@ -3,37 +3,19 @@
|
|||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||||
|
|
||||||
class LoginController extends Controller
|
class LoginController extends Controller
|
||||||
{
|
{
|
||||||
/*
|
public function login()
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Login Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller handles authenticating users for the application and
|
|
||||||
| redirecting them to your home screen. The controller uses a trait
|
|
||||||
| to conveniently provide its functionality to your applications.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use AuthenticatesUsers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after login.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/home';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
{
|
||||||
$this->middleware('guest', ['except' => 'logout']);
|
if (! Auth::attempt(request(['email', 'password']))) {
|
||||||
|
return redirect('/login')->withErrors([
|
||||||
|
'email' => ['These credentials do not match our records.'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('/backstage/concerts');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,8 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::get('/mockups/order', function () {
|
|
||||||
return view('orders.show');
|
|
||||||
});
|
|
||||||
|
|
||||||
Route::get('/concerts/{id}', 'ConcertsController@show');
|
Route::get('/concerts/{id}', 'ConcertsController@show');
|
||||||
|
|
||||||
Route::post('/concerts/{id}/orders', 'ConcertOrdersController@store');
|
Route::post('/concerts/{id}/orders', 'ConcertOrdersController@store');
|
||||||
|
|
||||||
Route::get('/orders/{confirmationNumber}', 'OrdersController@show');
|
Route::get('/orders/{confirmationNumber}', 'OrdersController@show');
|
||||||
|
|
||||||
|
Route::post('/login', 'Auth\LoginController@login');
|
||||||
|
|||||||
67
tests/features/PromoterLoginTest.php
Normal file
67
tests/features/PromoterLoginTest.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
||||||
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||||
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
|
class PromoterLoginTest extends TestCase
|
||||||
|
{
|
||||||
|
use DatabaseMigrations;
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function logging_in_with_valid_credentials()
|
||||||
|
{
|
||||||
|
$this->disableExceptionHandling();
|
||||||
|
|
||||||
|
$user = factory(User::class)->create([
|
||||||
|
'email' => 'jane@example.com',
|
||||||
|
'password' => bcrypt('super-secret-password'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->post('/login', [
|
||||||
|
'email' => 'jane@example.com',
|
||||||
|
'password' => 'super-secret-password',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect('/backstage/concerts');
|
||||||
|
$this->assertTrue(Auth::check());
|
||||||
|
$this->assertTrue(Auth::user()->is($user));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function logging_in_with_invalid_credentials()
|
||||||
|
{
|
||||||
|
$this->disableExceptionHandling();
|
||||||
|
|
||||||
|
$user = factory(User::class)->create([
|
||||||
|
'email' => 'jane@example.com',
|
||||||
|
'password' => bcrypt('super-secret-password'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $this->post('/login', [
|
||||||
|
'email' => 'jane@example.com',
|
||||||
|
'password' => 'not-the-right-password',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect('/login');
|
||||||
|
$response->assertSessionHasErrors('email');
|
||||||
|
$this->assertFalse(Auth::check());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
function logging_in_with_an_account_that_does_not_exist()
|
||||||
|
{
|
||||||
|
$this->disableExceptionHandling();
|
||||||
|
|
||||||
|
$response = $this->post('/login', [
|
||||||
|
'email' => 'nobody@example.com',
|
||||||
|
'password' => 'not-the-right-password',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->assertRedirect('/login');
|
||||||
|
$response->assertSessionHasErrors('email');
|
||||||
|
$this->assertFalse(Auth::check());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user