< Summary

Information
Class: Anichron.API.Infrastructure.WebApplicationBuilderExtensions
Assembly: Anichron.API
File(s): /home/runner/work/anichron/anichron/src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs
Tag: 228_36821334185
Line coverage
0%
Covered lines: 0
Uncovered lines: 12
Coverable lines: 12
Total lines: 26
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddAppConfiguration(...)100%210%

File(s)

/home/runner/work/anichron/anichron/src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs

#LineLine coverage
 1using Anichron.Infrastructure.Configuration;
 2using System.IO.Abstractions;
 3using System.Security.Cryptography;
 4
 5namespace Anichron.API.Infrastructure;
 6
 7public static class WebApplicationBuilderExtensions
 8{
 9    extension(WebApplicationBuilder builder)
 10    {
 11        public WebApplicationBuilder AddAppConfiguration()
 012        {
 013            var iniPath = Path.Combine(builder.Environment.ContentRootPath, "configuration", "app.ini");
 014            new AppIniInitializer(new FileSystem()).EnsureUpToDate(iniPath,
 015            [
 016                new IniEntry("Jwt", "Secret", () => Convert.ToBase64String(RandomNumberGenerator.GetBytes(64))),
 017                new IniEntry("Jwt", "Issuer", () => "anichron-api"),
 018                new IniEntry("Jwt", "Audience", () => "anichron-client"),
 019                new IniEntry("Cors", "AllowedOrigins", () => string.Empty),
 020            ]);
 021            builder.Configuration.AddIniFile(iniPath, optional: false, reloadOnChange: false);
 022            builder.Configuration.AddEnvironmentVariables();
 023            return builder;
 24        }
 25    }
 26}