< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.WebApi.Email.LoggingPasswordResetSender
Assembly: ArturRios.Heimdall.WebApi
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Presentation/ArturRios.Heimdall.WebApi/Email/LoggingPasswordResetSender.cs
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
Total lines: 23
Line coverage: 100%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage
100%
Covered methods: 2
Fully covered methods: 2
Total methods: 2
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
SendAsync(...)50%22100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Presentation/ArturRios.Heimdall.WebApi/Email/LoggingPasswordResetSender.cs

#LineLine coverage
 1using ArturRios.Heimdall.Shared.Security;
 2using ArturRios.Heimdall.Command.Services;
 3
 4namespace ArturRios.Heimdall.WebApi.Email;
 5
 6/// <summary>
 7///     Fallback <see cref="IPasswordResetSender" /> for environments without Mailgun credentials:
 8///     logs the recipient and token instead of delivering a real email. Registered in place of
 9///     <see cref="MailgunPasswordResetSender" /> when
 10///     <see cref="EmailDeliveryOptions.MailgunConfigured" /> is false.
 11/// </summary>
 3812public class LoggingPasswordResetSender(ILogger<LoggingPasswordResetSender> logger)
 13    : IPasswordResetSender
 14{
 15    public Task SendAsync(string email, string token, string? linkBase)
 16    {
 2317        logger.LogInformation(
 2318            "Password reset token issued for {EmailRef}: {Token} (link base: {LinkBase})",
 2319            LogSafeEmail.Reference(email), token, string.IsNullOrWhiteSpace(linkBase) ? "global" : "scope");
 20
 2321        return Task.CompletedTask;
 22    }
 23}