mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
fix(work-orders): map Overdue to PM catalog in service and template lists
This commit is contained in:
parent
b545d4a4fe
commit
d82fb18a3d
3 changed files with 55 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ using SeaHaven.DataServices.Interfaces;
|
|||
using SeaHaven.DataServices.Models;
|
||||
using SeaHaven.Services.DTOs;
|
||||
using SeaHaven.Services.Exceptions;
|
||||
using SeaHaven.Services.Helpers;
|
||||
using SeaHaven.Services.Interfaces;
|
||||
|
||||
namespace SeaHaven.Services.Implementation
|
||||
|
|
@ -34,8 +35,9 @@ namespace SeaHaven.Services.Implementation
|
|||
|
||||
public async Task<IReadOnlyList<ServiceDto>> GetAllAsync(bool? isActive, WorkOrderType? workOrderType, CancellationToken cancellationToken)
|
||||
{
|
||||
ValidateWorkOrderTypeFilter(workOrderType);
|
||||
var rows = await _dataService.GetServiceRowsAsync(isActive, workOrderType, cancellationToken);
|
||||
var catalogType = WorkOrderCatalogType.For(workOrderType);
|
||||
ValidateWorkOrderTypeFilter(catalogType);
|
||||
var rows = await _dataService.GetServiceRowsAsync(isActive, catalogType, cancellationToken);
|
||||
return rows.Select(MapToDto).ToList();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace SeaHaven.Services.Implementation
|
|||
|
||||
public async Task<IReadOnlyList<CompletionDocTemplateDto>> GetTemplatesAsync(string? serviceKey, WorkOrderType? workOrderType)
|
||||
{
|
||||
var rows = await _templateData.GetActiveAsync(serviceKey, workOrderType);
|
||||
var rows = await _templateData.GetActiveAsync(serviceKey, WorkOrderCatalogType.For(workOrderType));
|
||||
return rows.Select(WorkOrderDetailService.MapTemplate).ToList();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -278,6 +278,56 @@ public class WorkOrderOverdueTypeTests
|
|||
Assert.Equal("PM Completion", detail.Completion.Template!.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ListServices_Overdue_ReturnsPmCatalog()
|
||||
{
|
||||
await using var context = NewContext();
|
||||
SeedServices(context);
|
||||
await context.SaveChangesAsync();
|
||||
|
||||
var services = await new ServicesRegistryService(new ServicesRegistryDataService(context))
|
||||
.GetAllAsync(true, WorkOrderType.Overdue, CancellationToken.None);
|
||||
|
||||
Assert.Equal(new[] { PmServiceId }, services.Select(s => s.Id).ToArray());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ListTemplates_Overdue_ReturnsPmTemplates()
|
||||
{
|
||||
await using var context = NewContext();
|
||||
context.CompletionDocTemplates.AddRange(
|
||||
new CompletionDocTemplate
|
||||
{
|
||||
Name = "PM Completion",
|
||||
ServiceKey = "pm-generic",
|
||||
WorkOrderType = WorkOrderType.PM,
|
||||
TemplateUrl = "https://example.com/pm.pdf",
|
||||
IsActive = true
|
||||
},
|
||||
new CompletionDocTemplate
|
||||
{
|
||||
Name = "Reactive Completion",
|
||||
ServiceKey = "reactive-generic",
|
||||
WorkOrderType = WorkOrderType.Reactive,
|
||||
TemplateUrl = "https://example.com/reactive.pdf",
|
||||
IsActive = true
|
||||
});
|
||||
await context.SaveChangesAsync();
|
||||
|
||||
var service = new WorkOrderCompletionService(
|
||||
new WorkOrderCompletionDataService(context),
|
||||
new CompletionDocTemplateDataService(context),
|
||||
new WorkOrderDetailDataService(context),
|
||||
new WorkOrderAuditService(
|
||||
new WorkOrderAuditDataService(context),
|
||||
new WorkOrderFieldLockService(new WorkOrderFieldLockDataService(context))),
|
||||
WorkOrderAccountTestHelpers.Resolver(context));
|
||||
|
||||
var templates = await service.GetTemplatesAsync(null, WorkOrderType.Overdue);
|
||||
|
||||
Assert.Equal(new[] { "PM Completion" }, templates.Select(t => t.Name).ToArray());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Search_TypeOverdue_ReturnsOverdueTypeOnly_NotPastDueRows()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue