пофикшен баг
This commit is contained in:
+22
-1
@@ -54,7 +54,7 @@ public sealed class ReminderServiceTests : IClassFixture<PostgresDatabaseFixture
|
||||
|
||||
private static object Row(
|
||||
int id, int ticketId, int stepOrder, string status, string phase,
|
||||
string? date = null, string email = "approver@tnsu.kz", int? slaHours = null, bool? ask = null) =>
|
||||
string? date = null, string email = "approver@tnsu.kz", object? slaHours = null, bool? ask = null) =>
|
||||
new
|
||||
{
|
||||
Id = id,
|
||||
@@ -207,6 +207,27 @@ public sealed class ReminderServiceTests : IClassFixture<PostgresDatabaseFixture
|
||||
result.Value.ShouldHaveSingleItem().HoursOverdue.ShouldBe(5);
|
||||
}
|
||||
|
||||
// SharePoint отдаёт Number-колонки ДРОБНЫМИ («1.0», а не «1»), и на этом
|
||||
// разбор спотыкался: JsonElement.TryGetInt32 на числе с десятичной точкой
|
||||
// возвращает false, поле молча становилось null и SLA строки терялся.
|
||||
// На фронтенде проблемы не было — в JavaScript 1.0 и 1 неразличимы.
|
||||
[Fact(DisplayName = "SLA строки читается, даже когда SharePoint отдаёт его дробным числом")]
|
||||
public async Task RowSla_WrittenAsDecimalNumber_IsStillRead()
|
||||
{
|
||||
var listUrl = await CreateTypeWithSlaAsync("Sla decimal", slaHours: 100);
|
||||
// По типу 100 часов — просрочки не было бы; в строке 1 час — просрочка 5 часов.
|
||||
var service = BuildService(listUrl,
|
||||
// Именно decimal: System.Text.Json сохраняет у него хвостовой ноль и
|
||||
// пишет «1.0», тогда как double 1.0 сериализуется в «1» и баг не
|
||||
// воспроизводит.
|
||||
[Row(10, 1, 1, "На согласовании", "Согласование", slaHours: 1.0m)],
|
||||
requestCreated: Now.AddHours(-6));
|
||||
|
||||
var result = await service.GetOverdueAsync(Now, CancellationToken.None);
|
||||
|
||||
result.Value.ShouldHaveSingleItem().HoursOverdue.ShouldBe(5);
|
||||
}
|
||||
|
||||
[Fact(DisplayName = "Флаг опроса причины наследуется от типа заявки, если в строке не задан")]
|
||||
public async Task AskOverdueReason_InheritsFromRequestType()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user