Skip to content

Commit 8e6be56

Browse files
committed
throw exception on ga token is empty
1 parent ecb17da commit 8e6be56

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

src/Infrastructure/Ci/System/Github/Credentials/GithubActionsCredentialsMapper.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use ArtARTs36\MergeRequestLinter\Infrastructure\Contracts\CI\InvalidCredentialsException;
99
use ArtARTs36\MergeRequestLinter\Infrastructure\Contracts\Configuration\ConfigValueTransformer;
1010
use ArtARTs36\MergeRequestLinter\Infrastructure\Contracts\Configuration\TransformConfigValueException;
11+
use ArtARTs36\Str\Facade\Str;
1112

1213
class GithubActionsCredentialsMapper implements AuthenticatorMapper
1314
{
@@ -28,7 +29,13 @@ public function map(array $credentials): Authenticator
2829
}
2930

3031
try {
31-
return HeaderAuthenticator::bearer($this->value->tryTransform($credentials['token']));
32+
$token = $this->value->tryTransform($credentials['token']);
33+
34+
if (Str::isEmpty($token)) {
35+
throw new InvalidCredentialsException('Failed to resolve github token: token is empty');
36+
}
37+
38+
return HeaderAuthenticator::bearer($token);
3239
} catch (TransformConfigValueException $e) {
3340
throw new InvalidCredentialsException(sprintf(
3441
'Failed to resolve github token: %s',

tests/Unit/Infrastructure/Ci/System/Github/Credentials/GithubActionsCredentialsMapperTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
use ArtARTs36\MergeRequestLinter\Infrastructure\Ci\System\Github\Credentials\GithubActionsCredentialsMapper;
77
use ArtARTs36\MergeRequestLinter\Infrastructure\Configuration\Value\CompositeTransformer;
88
use ArtARTs36\MergeRequestLinter\Infrastructure\Contracts\CI\InvalidCredentialsException;
9+
use ArtARTs36\MergeRequestLinter\Infrastructure\Contracts\Configuration\ConfigValueTransformer;
910
use ArtARTs36\MergeRequestLinter\Tests\TestCase;
11+
use PHPUnit\Framework\MockObject\Rule\InvokedCount;
1012

1113
final class GithubActionsCredentialsMapperTest extends TestCase
1214
{
@@ -35,4 +37,25 @@ public function testMapOnInvalidCredentials(): void
3537

3638
$mapper->map([]);
3739
}
40+
41+
/**
42+
* @covers \ArtARTs36\MergeRequestLinter\Infrastructure\Ci\System\Github\Credentials\GithubActionsCredentialsMapper::map
43+
* @covers \ArtARTs36\MergeRequestLinter\Infrastructure\Ci\System\Github\Credentials\GithubActionsCredentialsMapper::__construct
44+
*/
45+
public function testMapOnTransformReturnsEmptyValue(): void
46+
{
47+
$transformer = $this->createMock(ConfigValueTransformer::class);
48+
$transformer
49+
->expects(new InvokedCount(1))
50+
->method('tryTransform')
51+
->willReturn('');
52+
53+
$mapper = new GithubActionsCredentialsMapper($transformer);
54+
55+
self::expectExceptionMessage('Failed to resolve github token: token is empty');
56+
57+
$mapper->map([
58+
'token' => '${}',
59+
]);
60+
}
3861
}

0 commit comments

Comments
 (0)