159 - Unit Testing Middleware

This commit is contained in:
Adam Wathan
2018-01-22 14:54:15 -05:00
parent 9fceea25bf
commit 9174e9d0c3
6 changed files with 90 additions and 3 deletions

View File

@@ -0,0 +1,33 @@
<?php
namespace Tests\Unit\Http\Middleware;
use App\User;
use Tests\TestCase;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Http\Middleware\ForceStripeAccount;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ForceStripeAccountTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function users_without_a_stripe_account_are_forced_to_connect_with_stripe()
{
$this->be(factory(User::class)->create([
'stripe_account_id' => null,
]));
$middleware = new ForceStripeAccount;
$response = $middleware->handle(new Request, function ($request) {
$this->fail("Next middleware was called when it should not have been.");
});
$this->assertInstanceOf(RedirectResponse::class, $response);
$this->assertEquals(route('backstage.stripe-connect.connect'), $response->getTargetUrl());
}
}