PHP Lumen: Ignore Middleware in API Tests

Viewed 158

In my Lumen application I am using the Lumen Passport package to protect my API endpoints.

My web.php has implemented the guard the following way:

$router->group(['middleware' => 'client.credentials'], function($request) use ($router) {
    ...
}

With each request a given Bearer Token is sent and validated.

My Problem is now, that I don't want to use the whole authentication system when writing my tests.

I defined a Base Testclass and have to do the follow for each single Test:

...
abstract class TestBase extends TestCase
{
    public function setUp(): void
    {
        parent::setUp();
        // Create my User in DB.
        $this->createUserForTest();
        // Register a new passport client .
        $this->createClientForTest();
        // Call the /api/oauth/token endpoint to get a valid token for the given client + user.
        $this->createTokenForTest();
    }
}

An example test looks like this:

public function get_getSomeData_validData()
{
    $response = $this->call('GET', "/some/awesome/endpoint");
    $response->assertStatus(200);
}

This works, but because I need to do this for each single test, this takes some time if you have a lot of tests.

Is there a possibility to ignore the middleware, if you call the api by yourself?

1 Answers
Related