shoc-backend/SeaHavenIndustries.Tests/WorkOrderBoardDispatchAssignmentTests.cs
Arthur Bassi 75d337df0f fix(work-orders): omit inactive primary vendor from board rows (SH-183)
Do not project VendorId/VendorName for Cancelled, Canceled, or Refused primary dispatches, and expose PrimaryDispatchStatus on the board DTO.
2026-08-20 13:22:12 -03:00

35 lines
1.1 KiB
C#

using SeaHaven.DataServices.Helpers;
namespace SeaHavenIndustries.Tests;
public class WorkOrderBoardDispatchAssignmentTests
{
[Theory]
[InlineData("Cancelled")]
[InlineData("Canceled")]
[InlineData("Refused")]
[InlineData(" cancelled ")]
[InlineData("CANCELED")]
[InlineData("refused")]
public void LiveVendor_InactiveStatus_ClearsAssignment(string status)
{
var (vendorId, vendorName) = WorkOrderBoardDispatchAssignment.LiveVendor(45, "Acme HVAC", status);
Assert.Null(vendorId);
Assert.Null(vendorName);
Assert.True(WorkOrderBoardDispatchAssignment.IsInactivePrimaryDispatch(status));
}
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("Sent")]
[InlineData("Verified")]
[InlineData("Completed")]
public void LiveVendor_LiveOrMissingStatus_KeepsVendorIdWhenNameEmpty(string? status)
{
var (vendorId, vendorName) = WorkOrderBoardDispatchAssignment.LiveVendor(45, null, status);
Assert.Equal(45, vendorId);
Assert.Null(vendorName);
Assert.False(WorkOrderBoardDispatchAssignment.IsInactivePrimaryDispatch(status));
}
}