161 - Testing That Middleware Is Applied

This commit is contained in:
Adam Wathan
2018-01-22 15:23:58 -05:00
parent 079d442ded
commit 22c4fecd69
2 changed files with 37 additions and 9 deletions

View File

@@ -1,5 +1,7 @@
<?php
use App\Http\Middleware\ForceStripeAccount;
/*
|--------------------------------------------------------------------------
| Web Routes
@@ -24,17 +26,19 @@ Route::post('/register', 'Auth\RegisterController@register')->name('auth.registe
Route::get('/invitations/{code}', 'InvitationsController@show')->name('invitations.show');
Route::group(['middleware' => 'auth', 'prefix' => 'backstage', 'namespace' => 'Backstage'], function () {
Route::get('/concerts', 'ConcertsController@index')->name('backstage.concerts.index');
Route::get('/concerts/new', 'ConcertsController@create')->name('backstage.concerts.new');
Route::post('/concerts', 'ConcertsController@store');
Route::get('/concerts/{id}/edit', 'ConcertsController@edit')->name('backstage.concerts.edit');
Route::patch('/concerts/{id}', 'ConcertsController@update')->name('backstage.concerts.update');
Route::group(['middleware' => ForceStripeAccount::class], function () {
Route::get('/concerts', 'ConcertsController@index')->name('backstage.concerts.index');
Route::get('/concerts/new', 'ConcertsController@create')->name('backstage.concerts.new');
Route::post('/concerts', 'ConcertsController@store')->name('backstage.concerts.store');
Route::get('/concerts/{id}/edit', 'ConcertsController@edit')->name('backstage.concerts.edit');
Route::patch('/concerts/{id}', 'ConcertsController@update')->name('backstage.concerts.update');
Route::post('/published-concerts', 'PublishedConcertsController@store')->name('backstage.published-concerts.store');
Route::get('/published-concerts/{id}/orders', 'PublishedConcertOrdersController@index')->name('backstage.published-concert-orders.index');
Route::post('/published-concerts', 'PublishedConcertsController@store')->name('backstage.published-concerts.store');
Route::get('/published-concerts/{id}/orders', 'PublishedConcertOrdersController@index')->name('backstage.published-concert-orders.index');
Route::get('/concerts/{id}/messages/new', 'ConcertMessagesController@create')->name('backstage.concert-messages.new');
Route::post('/concerts/{id}/messages', 'ConcertMessagesController@store')->name('backstage.concert-messages.store');
Route::get('/concerts/{id}/messages/new', 'ConcertMessagesController@create')->name('backstage.concert-messages.new');
Route::post('/concerts/{id}/messages', 'ConcertMessagesController@store')->name('backstage.concert-messages.store');
});
Route::get('/stripe-connect/connect', 'StripeConnectController@connect')->name('backstage.stripe-connect.connect');
Route::get('/stripe-connect/authorize', 'StripeConnectController@authorizeRedirect')->name('backstage.stripe-connect.authorize');

View File

@@ -6,6 +6,7 @@ use App\User;
use Tests\TestCase;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Route;
use App\Http\Middleware\ForceStripeAccount;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
@@ -55,4 +56,27 @@ class ForceStripeAccountTest extends TestCase
$this->assertTrue($next->called);
$this->assertSame($response, $request);
}
/** @test */
function middleware_is_applied_to_all_backstage_routes()
{
$routes = [
'backstage.concerts.index',
'backstage.concerts.new',
'backstage.concerts.store',
'backstage.concerts.edit',
'backstage.concerts.update',
'backstage.published-concerts.store',
'backstage.published-concert-orders.index',
'backstage.concert-messages.new',
'backstage.concert-messages.store',
];
foreach ($routes as $route) {
$this->assertContains(
ForceStripeAccount::class,
Route::getRoutes()->getByName($route)->gatherMiddleware()
);
}
}
}