Skip to content

Commit 7012ab2

Browse files
authored
Merge pull request #30 from zribktad/tests/more
Tests/more
2 parents 90ecad7 + c7c2615 commit 7012ab2

39 files changed

Lines changed: 1126 additions & 378 deletions

Directory.Packages.props

Lines changed: 83 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,86 +3,89 @@
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageVersion Include="Ardalis.Specification" Version="9.3.1"/>
7-
<PackageVersion Include="Ardalis.Specification.EntityFrameworkCore" Version="9.3.1"/>
8-
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.1"/>
9-
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.1"/>
10-
<PackageVersion Include="AspNetCore.HealthChecks.MongoDb" Version="9.0.0"/>
11-
<PackageVersion Include="AspNetCore.HealthChecks.NpgSql" Version="9.0.0"/>
12-
<PackageVersion Include="AspNetCore.HealthChecks.Redis" Version="9.0.0"/>
13-
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0"/>
14-
<PackageVersion Include="BCrypt.Net-Next" Version="4.1.0"/>
15-
<PackageVersion Include="DotNet.Testcontainers" Version="1.6.0"/>
16-
<PackageVersion Include="ErrorOr" Version="2.1.0"/>
17-
<PackageVersion Include="Fluid.Core" Version="2.31.0"/>
18-
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.1.1"/>
19-
<PackageVersion Include="HotChocolate.AspNetCore" Version="15.1.13"/>
20-
<PackageVersion Include="HotChocolate.AspNetCore.Authorization" Version="15.1.13"/>
21-
<PackageVersion Include="HotChocolate.Data.EntityFramework" Version="15.1.13"/>
22-
<PackageVersion Include="HotChocolate.Diagnostics" Version="15.1.12"/>
23-
<PackageVersion Include="Keycloak.AuthServices.Authentication" Version="2.8.0"/>
24-
<PackageVersion Include="Keycloak.AuthServices.Authorization" Version="2.8.0"/>
25-
<PackageVersion Include="Keycloak.AuthServices.Sdk" Version="2.9.0"/>
26-
<PackageVersion Include="Kot.MongoDB.Migrations" Version="3.1.0"/>
27-
<PackageVersion Include="Kot.MongoDB.Migrations.DI" Version="3.1.0"/>
28-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.5"/>
29-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="10.0.5"/>
30-
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="10.0.5"/>
31-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.5"/>
32-
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.5"/>
33-
<PackageVersion Include="Microsoft.AspNetCore.OutputCaching.StackExchangeRedis" Version="10.0.5"/>
34-
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.5"/>
35-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.5"/>
36-
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.5"/>
37-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.5"/>
38-
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.5"/>
39-
<PackageVersion Include="Microsoft.Extensions.Compliance.Redaction" Version="10.4.0"/>
40-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.4.0"/>
41-
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="10.0.5"/>
42-
<PackageVersion Include="Microsoft.Extensions.Telemetry" Version="10.4.0"/>
43-
<PackageVersion Include="coverlet.collector" Version="8.0.1"/>
44-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0"/>
45-
<PackageVersion Include="MailKit" Version="4.15.1"/>
46-
<PackageVersion Include="WolverineFx" Version="5.27.0"/>
47-
<PackageVersion Include="WolverineFx.EntityFrameworkCore" Version="5.27.0"/>
48-
<PackageVersion Include="WolverineFx.FluentValidation" Version="5.22.0"/>
49-
<PackageVersion Include="WolverineFx.Postgresql" Version="5.27.0"/>
50-
<PackageVersion Include="MimeKit" Version="4.15.1"/>
51-
<PackageVersion Include="MockQueryable.Moq" Version="10.0.5"/>
52-
<PackageVersion Include="MongoDB.Bson" Version="3.7.1"/>
53-
<PackageVersion Include="MongoDB.Driver" Version="3.7.1"/>
54-
<PackageVersion Include="Moq" Version="4.20.72"/>
55-
<PackageVersion Include="NCrontab.Signed" Version="3.3.3"/>
56-
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1"/>
57-
<PackageVersion Include="Npgsql.OpenTelemetry" Version="10.0.2"/>
58-
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.15.1"/>
59-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.1"/>
60-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.1"/>
61-
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.1"/>
62-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0"/>
6+
<PackageVersion Include="Ardalis.Specification" Version="9.3.1" />
7+
<PackageVersion Include="Ardalis.Specification.EntityFrameworkCore" Version="9.3.1" />
8+
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.1" />
9+
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.1" />
10+
<PackageVersion Include="AspNetCore.HealthChecks.MongoDb" Version="9.0.0" />
11+
<PackageVersion Include="AspNetCore.HealthChecks.NpgSql" Version="9.0.0" />
12+
<PackageVersion Include="AspNetCore.HealthChecks.Redis" Version="9.0.0" />
13+
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
14+
<PackageVersion Include="BCrypt.Net-Next" Version="4.1.0" />
15+
<PackageVersion Include="DotNet.Testcontainers" Version="1.6.0" />
16+
<PackageVersion Include="ErrorOr" Version="2.1.0" />
17+
<PackageVersion Include="Fluid.Core" Version="2.31.0" />
18+
<PackageVersion Include="FluentValidation" Version="12.1.1" />
19+
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.1.1" />
20+
<PackageVersion Include="HotChocolate.AspNetCore" Version="15.1.13" />
21+
<PackageVersion Include="HotChocolate.AspNetCore.Authorization" Version="15.1.13" />
22+
<PackageVersion Include="HotChocolate.Data.EntityFramework" Version="15.1.13" />
23+
<PackageVersion Include="HotChocolate.Diagnostics" Version="15.1.12" />
24+
<PackageVersion Include="JasperFx" Version="1.23.0" />
25+
<PackageVersion Include="Keycloak.AuthServices.Authentication" Version="2.8.0" />
26+
<PackageVersion Include="Keycloak.AuthServices.Authorization" Version="2.8.0" />
27+
<PackageVersion Include="Keycloak.AuthServices.Sdk" Version="2.9.0" />
28+
<PackageVersion Include="Kot.MongoDB.Migrations" Version="3.1.0" />
29+
<PackageVersion Include="Kot.MongoDB.Migrations.DI" Version="3.1.0" />
30+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.5" />
31+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="10.0.5" />
32+
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="10.0.5" />
33+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.5" />
34+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.5" />
35+
<PackageVersion Include="Microsoft.AspNetCore.OutputCaching.StackExchangeRedis" Version="10.0.5" />
36+
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.5" />
37+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.5" />
38+
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.5" />
39+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.5" />
40+
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.5" />
41+
<PackageVersion Include="Microsoft.Extensions.Compliance.Redaction" Version="10.4.0" />
42+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.4.0" />
43+
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="10.0.5" />
44+
<PackageVersion Include="Microsoft.Extensions.Telemetry" Version="10.4.0" />
45+
<PackageVersion Include="coverlet.collector" Version="8.0.1" />
46+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
47+
<PackageVersion Include="MailKit" Version="4.15.1" />
48+
<PackageVersion Include="Testcontainers.MongoDb" Version="4.11.0" />
49+
<PackageVersion Include="WolverineFx" Version="5.27.0" />
50+
<PackageVersion Include="WolverineFx.EntityFrameworkCore" Version="5.27.0" />
51+
<PackageVersion Include="WolverineFx.FluentValidation" Version="5.22.0" />
52+
<PackageVersion Include="WolverineFx.Postgresql" Version="5.27.0" />
53+
<PackageVersion Include="MimeKit" Version="4.15.1" />
54+
<PackageVersion Include="MockQueryable.Moq" Version="10.0.5" />
55+
<PackageVersion Include="MongoDB.Bson" Version="3.7.1" />
56+
<PackageVersion Include="MongoDB.Driver" Version="3.7.1" />
57+
<PackageVersion Include="Moq" Version="4.20.72" />
58+
<PackageVersion Include="NCrontab.Signed" Version="3.3.3" />
59+
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />
60+
<PackageVersion Include="Npgsql.OpenTelemetry" Version="10.0.2" />
61+
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.15.1" />
62+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.1" />
63+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.1" />
64+
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.1" />
65+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" />
6366
<!-- These instrumentations are still beta upstream; keep them pinned deliberately until stable releases exist. -->
64-
<PackageVersion Include="OpenTelemetry.Instrumentation.Process" Version="1.15.0-beta.1"/>
65-
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.0"/>
66-
<PackageVersion Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.15.0-beta.1"/>
67-
<PackageVersion Include="Scalar.AspNetCore" Version="2.13.19"/>
68-
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0"/>
69-
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1"/>
70-
<PackageVersion Include="Serilog.Enrichers.Thread" Version="4.0.0"/>
71-
<PackageVersion Include="Serilog.Expressions" Version="5.0.0"/>
72-
<PackageVersion Include="Serilog.Formatting.Compact" Version="3.0.0"/>
73-
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.2.0"/>
74-
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1"/>
75-
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0"/>
76-
<PackageVersion Include="StackExchange.Redis" Version="2.12.14"/>
77-
<PackageVersion Include="Shouldly" Version="4.3.0"/>
78-
<PackageVersion Include="SystemTextJsonPatch" Version="5.0.0"/>
79-
<PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="3.0.0"/>
80-
<PackageVersion Include="Respawn" Version="7.0.0"/>
81-
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.11.0"/>
82-
<PackageVersion Include="TickerQ" Version="10.2.5"/>
83-
<PackageVersion Include="TickerQ.EntityFrameworkCore" Version="10.2.5"/>
84-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5"/>
85-
<PackageVersion Include="Microsoft.Extensions.Resilience" Version="10.4.0"/>
86-
<PackageVersion Include="xunit.v3" Version="3.2.2"/>
67+
<PackageVersion Include="OpenTelemetry.Instrumentation.Process" Version="1.15.0-beta.1" />
68+
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.0" />
69+
<PackageVersion Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.15.0-beta.1" />
70+
<PackageVersion Include="Scalar.AspNetCore" Version="2.13.19" />
71+
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
72+
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1" />
73+
<PackageVersion Include="Serilog.Enrichers.Thread" Version="4.0.0" />
74+
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
75+
<PackageVersion Include="Serilog.Formatting.Compact" Version="3.0.0" />
76+
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.2.0" />
77+
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
78+
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
79+
<PackageVersion Include="StackExchange.Redis" Version="2.12.14" />
80+
<PackageVersion Include="Shouldly" Version="4.3.0" />
81+
<PackageVersion Include="SystemTextJsonPatch" Version="5.0.0" />
82+
<PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="3.0.0" />
83+
<PackageVersion Include="Respawn" Version="7.0.0" />
84+
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.11.0" />
85+
<PackageVersion Include="TickerQ" Version="10.2.5" />
86+
<PackageVersion Include="TickerQ.EntityFrameworkCore" Version="10.2.5" />
87+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
88+
<PackageVersion Include="Microsoft.Extensions.Resilience" Version="10.4.0" />
89+
<PackageVersion Include="xunit.v3" Version="3.2.2" />
8790
</ItemGroup>
8891
</Project>

src/APITemplate/Api/Extensions/Startup/DatabaseStartupExtensions.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static async Task UseDatabaseAsync(this WebApplication app)
2323
await EnsureSchemaAsync<ReviewsDbContext>(sp);
2424
await EnsureSchemaAsync<FileStorageDbContext>(sp);
2525
await EnsureSchemaAsync<BackgroundJobsDbContext>(sp);
26-
await EnsureSchemaAsync<TickerQSchedulerDbContext>(sp);
26+
await EnsureSchemaIfRegisteredAsync<TickerQSchedulerDbContext>(sp);
2727

2828
AuthBootstrapSeeder seeder = sp.GetRequiredService<AuthBootstrapSeeder>();
2929
await seeder.SeedAsync();
@@ -33,7 +33,25 @@ private static async Task EnsureSchemaAsync<TContext>(IServiceProvider sp)
3333
where TContext : DbContext
3434
{
3535
TContext context = sp.GetRequiredService<TContext>();
36+
await EnsureSchemaCoreAsync(context);
37+
}
38+
39+
/// <summary>
40+
/// TickerQ (and its <see cref="TickerQSchedulerDbContext" />) is only registered when
41+
/// BackgroundJobs:TickerQ:Enabled is true and Dragonfly is configured.
42+
/// </summary>
43+
private static async Task EnsureSchemaIfRegisteredAsync<TContext>(IServiceProvider sp)
44+
where TContext : DbContext
45+
{
46+
TContext? context = sp.GetService<TContext>();
47+
if (context is null)
48+
return;
3649

50+
await EnsureSchemaCoreAsync(context);
51+
}
52+
53+
private static async Task EnsureSchemaCoreAsync(DbContext context)
54+
{
3755
await context.Database.EnsureCreatedAsync();
3856

3957
IRelationalDatabaseCreator creator = context.GetService<IRelationalDatabaseCreator>();

src/Modules/Identity/Persistence/AuthBootstrapSeeder.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ private TenantIdentity GetTenantIdentity()
4242

4343
private Task<Tenant?> FindTenantAsync(string tenantCode, CancellationToken ct)
4444
{
45+
TenantCode code = TenantCode.FromPersistence(tenantCode);
4546
return _dbContext
4647
.Tenants.IgnoreQueryFilters([
4748
GlobalQueryFilterNames.SoftDelete,
4849
GlobalQueryFilterNames.Tenant,
4950
])
50-
.FirstOrDefaultAsync(t => t.Code.Value == tenantCode, ct);
51+
.FirstOrDefaultAsync(t => t.Code == code, ct);
5152
}
5253

5354
private bool CreateTenant(TenantIdentity tenantIdentity)

src/Modules/Notifications/Notifications.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<Nullable>enable</Nullable>
55
<ImplicitUsings>enable</ImplicitUsings>
66
</PropertyGroup>
7+
<ItemGroup>
8+
<InternalsVisibleTo Include="APITemplate.Tests"/>
9+
</ItemGroup>
710
<ItemGroup>
811
<FrameworkReference Include="Microsoft.AspNetCore.App"/>
912
</ItemGroup>

src/Modules/Webhooks/Webhooks.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<Nullable>enable</Nullable>
55
<ImplicitUsings>enable</ImplicitUsings>
66
</PropertyGroup>
7+
<ItemGroup>
8+
<InternalsVisibleTo Include="APITemplate.Tests"/>
9+
</ItemGroup>
710
<ItemGroup>
811
<FrameworkReference Include="Microsoft.AspNetCore.App"/>
912
</ItemGroup>

0 commit comments

Comments
 (0)