mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-01-26 11:14:06 +00:00
98 - Testing the Login Endpoint
This commit is contained in:
@@ -3,37 +3,19 @@
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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()
|
||||
public function login()
|
||||
{
|
||||
$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::post('/concerts/{id}/orders', 'ConcertOrdersController@store');
|
||||
|
||||
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