< Summary - MechanicsSoftware — Coverage Report

Information
Class: MechanicsSoftware.Application.UseCases.ServiceOrders.Handlers.ApproveServiceOrderHandler
Assembly: MechanicsSoftware.Application
File(s): /home/runner/work/mechanics-software/mechanics-software/src/MechanicsSoftware.Application/UseCases/ServiceOrders/Handlers/ApproveServiceOrderHandler.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 21
Line coverage: 100%
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
.ctor(...)100%11100%
ExecuteAsync()100%11100%

File(s)

/home/runner/work/mechanics-software/mechanics-software/src/MechanicsSoftware.Application/UseCases/ServiceOrders/Handlers/ApproveServiceOrderHandler.cs

#LineLine coverage
 1using MechanicsSoftware.Application.Abstractions;
 2using Microsoft.Extensions.Logging;
 3
 4namespace MechanicsSoftware.Application.UseCases.ServiceOrders.Handlers;
 5
 166public sealed class ApproveServiceOrderHandler(IAppDbContext db, IEmailNotifier emailNotifier, ILogger<ApproveServiceOrd
 7{
 8    public async Task<ServiceOrderResponse> ExecuteAsync(
 9        Guid serviceOrderId, CancellationToken cancellationToken = default)
 1410    {
 1411        var order = await db.ServiceOrders.FindFullAsync(serviceOrderId, cancellationToken);
 12
 1213        order.Approve();
 14
 815        await db.SaveChangesAsync(cancellationToken);
 16
 817        await emailNotifier.TrySendStatusEmailAsync(db, logger, order, cancellationToken);
 18
 819        return ServiceOrderResponse.From(order);
 820    }
 21}