Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hafezdivandari committed Jul 19, 2024
1 parent 3b4be92 commit faedf2e
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 11 deletions.
2 changes: 1 addition & 1 deletion tests/Feature/AccessTokenControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public function testGettingAccessTokenWithPasswordGrant()
$token = $this->app->make(PersonalAccessTokenFactory::class)->findAccessToken($decodedResponse);
$this->assertInstanceOf(Token::class, $token);
$this->assertFalse($token->revoked);
$this->assertTrue($token->user->is($user));
$this->assertSame($user->getAuthIdentifier(), $token->user_id);
$this->assertTrue($token->client->is($client));
$this->assertNull($token->name);
$this->assertLessThanOrEqual(5, CarbonImmutable::now()->addSeconds($expiresInSeconds)->diffInSeconds($token->expires_at));
Expand Down
2 changes: 1 addition & 1 deletion tests/Feature/HasApiTokensTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public function testGetProvider()
config([
'auth.providers.admins' => ['driver' => 'eloquent', 'model' => AdminHasApiTokensStub::class],
'auth.guards.api-admins' => ['driver' => 'passport', 'provider' => 'admins'],
'auth.providers.customers' => ['driver' => 'database', 'table' => 'customer_has_api_tokens_stubs'],
'auth.providers.customers' => ['driver' => 'eloquent', 'model' => CustomerHasApiTokensStub::class],
'auth.guards.api-customers' => ['driver' => 'passport', 'provider' => 'customers'],
]);

Expand Down
28 changes: 19 additions & 9 deletions tests/Feature/PersonalAccessTokenFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\DB;
use Laravel\Passport\Client;
use Laravel\Passport\Database\Factories\ClientFactory;
use Laravel\Passport\HasApiTokens;
Expand Down Expand Up @@ -53,7 +54,7 @@ public function testIssueTokenWithDifferentProviders()
config([
'auth.providers.admins' => ['driver' => 'eloquent', 'model' => AdminProviderStub::class],
'auth.guards.api-admins' => ['driver' => 'passport', 'provider' => 'admins'],
'auth.providers.customers' => ['driver' => 'database', 'table' => 'customer_provider_stubs'],
'auth.providers.customers' => ['driver' => 'eloquent', 'model' => CustomerProviderStub::class],
'auth.guards.api-customers' => ['driver' => 'passport', 'provider' => 'customers'],
'passport.personal_access_client' => ['id' => $client->getKey(), 'secret' => $client->plainSecret],
'passport.personal_access_client.admins' => ['id' => $adminClient->getKey(), 'secret' => $adminClient->plainSecret],
Expand All @@ -80,25 +81,34 @@ public function testIssueTokenWithDifferentProviders()
$this->assertInstanceOf(PersonalAccessTokenResult::class, $customerToken);
$this->assertSame($customerClient->getKey(), $customerToken->token->client_id);
$this->assertSame($customer->getAuthIdentifier(), $customerToken->token->user_id);

DB::enableQueryLog();
$userTokens = $user->tokens()->pluck('id')->all();
$adminTokens = $admin->tokens()->pluck('id')->all();
$customerTokens = $customer->tokens()->pluck('id')->all();
DB::disableQueryLog();

$queries = DB::getRawQueryLog();
$this->assertStringContainsString('and ("provider" is null or "provider" = \'users\')', $queries[0]['raw_query']);
$this->assertStringContainsString('and ("provider" = \'admins\')', $queries[1]['raw_query']);
$this->assertStringContainsString('and ("provider" = \'customers\')', $queries[2]['raw_query']);

$this->assertEquals([$userToken->token->id], $userTokens);
$this->assertEquals([$adminToken->token->id], $adminTokens);
$this->assertEquals([$customerToken->token->id], $customerTokens);
}
}

class AdminProviderStub extends Authenticatable
{
use HasApiTokens;

public function getAuthIdentifier()
{
return 'foo';
}
protected $attributes = ['id' => 1];
}

class CustomerProviderStub extends Authenticatable
{
use HasApiTokens;

public function getAuthIdentifier()
{
return 3;
}
protected $attributes = ['id' => 3];
}

0 comments on commit faedf2e

Please sign in to comment.