From dc533c6af5ce067bb0e42f80cae9d7e5f3213f65 Mon Sep 17 00:00:00 2001 From: Justin Baur <19896123+justindbaur@users.noreply.github.com> Date: Tue, 29 Apr 2025 07:04:53 -0400 Subject: [PATCH] Add internal client provider tests --- .../InternalClientProviderTests.cs | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/Identity.Test/IdentityServer/ClientProviders/InternalClientProviderTests.cs diff --git a/test/Identity.Test/IdentityServer/ClientProviders/InternalClientProviderTests.cs b/test/Identity.Test/IdentityServer/ClientProviders/InternalClientProviderTests.cs new file mode 100644 index 0000000000..d8a30b31d1 --- /dev/null +++ b/test/Identity.Test/IdentityServer/ClientProviders/InternalClientProviderTests.cs @@ -0,0 +1,43 @@ +using Bit.Core.IdentityServer; +using Bit.Core.Settings; +using Bit.Identity.IdentityServer.ClientProviders; +using Duende.IdentityModel; +using Xunit; + +namespace Bit.Identity.Test.IdentityServer.ClientProviders; + +public class InternalClientProviderTests +{ + private readonly GlobalSettings _globalSettings; + + private readonly InternalClientProvider _sut; + + public InternalClientProviderTests() + { + _globalSettings = new GlobalSettings + { + SelfHosted = true, + }; + _sut = new InternalClientProvider(_globalSettings); + } + + [Fact] + public async Task GetAsync_ReturnsInternalClient() + { + var internalClient = await _sut.GetAsync("blah"); + + Assert.NotNull(internalClient); + Assert.Equal($"internal.blah", internalClient.ClientId); + Assert.True(internalClient.RequireClientSecret); + var secret = Assert.Single(internalClient.ClientSecrets); + Assert.NotNull(secret); + Assert.NotNull(secret.Value); + var scope = Assert.Single(internalClient.AllowedScopes); + Assert.Equal(ApiScopes.Internal, scope); + Assert.Equal(TimeSpan.FromDays(1).TotalSeconds, internalClient.AccessTokenLifetime); + Assert.True(internalClient.Enabled); + var claim = Assert.Single(internalClient.Claims); + Assert.Equal(JwtClaimTypes.Subject, claim.Type); + Assert.Equal("blah", claim.Value); + } +}