diff --git a/SeaHavenIndustries.Tests/WorkOrderAdvancedSearchDateRangeTests.cs b/SeaHavenIndustries.Tests/WorkOrderAdvancedSearchDateRangeTests.cs index 4bacc93..634c12f 100644 --- a/SeaHavenIndustries.Tests/WorkOrderAdvancedSearchDateRangeTests.cs +++ b/SeaHavenIndustries.Tests/WorkOrderAdvancedSearchDateRangeTests.cs @@ -49,6 +49,12 @@ public class WorkOrderAdvancedSearchDateRangeTests istemplate = false }; + private static WorkOrder NotWeekOnly(WorkOrder wo) + { + wo.ScheduleWeekOnly = false; + return wo; + } + private static WorkOrderAdvancedSearchQueryDto UnassignedInRange(bool includeDateless = false) => new() { DatePreset = WorkOrderAdvancedSearchDatePreset.Custom, @@ -105,7 +111,12 @@ public class WorkOrderAdvancedSearchDateRangeTests context.workOrders.AddRange( Wo(1, null, targetWeek: new DateOnly(2026, 9, 21)), Wo(2, null, targetWeek: new DateOnly(2026, 9, 14)), - Wo(3, null, targetWeek: new DateOnly(2026, 9, 28))); + Wo(3, null, targetWeek: new DateOnly(2026, 9, 28)), + // Week-only with a leftover date outside the range: the week decides, + // as on the board page (SH-391). + Wo(4, new DateTime(2026, 10, 2), targetWeek: new DateOnly(2026, 9, 21)), + // Not week-only: its date decides, so a target week does not bring it in. + NotWeekOnly(Wo(5, new DateTime(2026, 10, 2), targetWeek: new DateOnly(2026, 9, 21)))); await context.SaveChangesAsync(); // Wed–Fri of the week of 9/21: the week-only row for that week overlaps it. @@ -117,7 +128,7 @@ public class WorkOrderAdvancedSearchDateRangeTests Dispatchers = new List { "__unassigned__" } }, WorkOrderAccountTestHelpers.OrgWideAdmin(), null); - Assert.Equal(new[] { 1 }, result.Items.Select(i => i.Id).ToArray()); + Assert.Equal(new[] { 1, 4 }, result.Items.Select(i => i.Id).OrderBy(id => id).ToArray()); } [Fact]