< Summary - Estud

Information
Class: Estud.Back.Features.Identity.SendResetPasswordToken.SendResetPasswordTokenService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Identity/SendResetPasswordToken/SendResetPasswordTokenService.cs
Tag: 114_29044117136
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 20
Line coverage: 100%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

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

File(s)

/home/runner/work/syki/syki/Back/Features/Identity/SendResetPasswordToken/SendResetPasswordTokenService.cs

#LineLine coverage
 1using Estud.Back.Domain.Identity;
 2
 3namespace Estud.Back.Features.Identity.SendResetPasswordToken;
 4
 365public class SendResetPasswordTokenService(EstudDbContext ctx, UserManager<EstudUser> userManager) : IEstudService
 6{
 7    public async Task<OneOf<EstudSuccess, EstudError>> Send(SendResetPasswordTokenIn data)
 8    {
 369        var user = await userManager.FindByEmailAsync(data.Email);
 3610        if (user == null) return EstudSuccess.I; // Don't reveal if the email is registered or not
 11
 3612        var token = await userManager.GeneratePasswordResetTokenAsync(user);
 13
 3614        var reset = new ResetPasswordToken(user.Id, user.InstitutionId, token);
 3615        ctx.AddCommand(user.InstitutionId, new SendResetPasswordTokenEmailCommand(user.Email, reset.Id), maxRetries: 1);
 3616        await ctx.SaveChangesAsync(reset);
 17
 3618        return EstudSuccess.I;
 3619    }
 20}