From 22c4fecd69d573d741cf22edb0a138aaaebbc1ee Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Mon, 22 Jan 2018 15:23:58 -0500 Subject: [PATCH] 161 - Testing That Middleware Is Applied --- routes/web.php | 22 ++++++++++------- .../Middleware/ForceStripeAccountTest.php | 24 +++++++++++++++++++ 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/routes/web.php b/routes/web.php index 613d3a1..03719f5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,7 @@ 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'); diff --git a/tests/Unit/Http/Middleware/ForceStripeAccountTest.php b/tests/Unit/Http/Middleware/ForceStripeAccountTest.php index 982afe8..d012efb 100644 --- a/tests/Unit/Http/Middleware/ForceStripeAccountTest.php +++ b/tests/Unit/Http/Middleware/ForceStripeAccountTest.php @@ -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() + ); + } + } }