Implement jwks endpoint and add test for it.

This also let to some improvements/cleanups of the other tests and fixtures.
This commit is contained in:
eelke 2026-02-15 19:06:09 +01:00
parent a80c133e2a
commit ccb06b260c
24 changed files with 353 additions and 107 deletions

View file

@ -8,23 +8,13 @@ namespace IdentityShroud.Core.Tests.Fixtures;
public class DbFixture : IAsyncLifetime
{
private readonly IContainer _postgresqlServer;
private string ConnectionString =>
$"Host={_postgresqlServer.Hostname};" +
$"Port={DbPort};" +
$"Username={Username};Password={Password}";
private string Username => "postgres";
private string Password => "password";
private string DbHostname => _postgresqlServer.Hostname;
private int DbPort => _postgresqlServer.GetMappedPublicPort(PostgreSqlBuilder.PostgreSqlPort);
private readonly PostgreSqlContainer _postgresqlServer;
public Db CreateDbContext(string dbName = "testdb")
{
var db = new Db(Options.Create<DbConfiguration>(new()
{
ConnectionString = ConnectionString + ";Database=" + dbName,
ConnectionString = _postgresqlServer.GetConnectionString(),
LogSensitiveData = false,
}), new NullLoggerFactory());
return db;
@ -33,8 +23,7 @@ public class DbFixture : IAsyncLifetime
public DbFixture()
{
_postgresqlServer = new PostgreSqlBuilder("postgres:18.1")
.WithName("KMS-Test-Infra-" + Guid.NewGuid().ToString("D"))
.WithPassword(Password)
.WithName("is-dbfixture-" + Guid.NewGuid().ToString("D"))
.Build();
}
@ -50,7 +39,7 @@ public class DbFixture : IAsyncLifetime
public NpgsqlConnection GetConnection(string dbname)
{
string connString = ConnectionString
string connString = _postgresqlServer.GetConnectionString()
+ $";Database={dbname}";
var connection = new NpgsqlConnection(connString);
connection.Open();