Нормализовать список изменённых настроек в аудите
This commit is contained in:
@@ -183,11 +183,12 @@ public static class AuditRecordDtoExtensions
|
||||
|
||||
// Приводит значение JSON к строке отображения.
|
||||
// element: Значение JSON.
|
||||
// Возвращает: Строковое представление либо null для JSON null.
|
||||
// Возвращает: Строковое представление либо null для JSON null; массивы — списком через запятую.
|
||||
private static string? Stringify(JsonElement element) => element.ValueKind switch
|
||||
{
|
||||
JsonValueKind.Null or JsonValueKind.Undefined => null,
|
||||
JsonValueKind.String => element.GetString(),
|
||||
JsonValueKind.Array => string.Join(", ", element.EnumerateArray().Select(Stringify)),
|
||||
_ => element.GetRawText(),
|
||||
};
|
||||
|
||||
|
||||
@@ -81,6 +81,28 @@ public sealed class AuditRecordDtoExtensionsTests
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AuditChanges_LegacyFieldsArray_RendersAsList()
|
||||
{
|
||||
var record = Record("""{"fields":["autoMonitorNew"]}""");
|
||||
|
||||
AuditChangeDto change = Assert.Single(record.AuditChanges());
|
||||
|
||||
Assert.Equal(AuditFields.Fields, change.Field);
|
||||
Assert.Null(change.From);
|
||||
Assert.Equal("autoMonitorNew", change.To);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AuditChanges_LegacyFieldsArray_JoinsMultipleKeys()
|
||||
{
|
||||
var record = Record("""{"fields":["autoMonitorNew","minLen"]}""");
|
||||
|
||||
AuditChangeDto change = Assert.Single(record.AuditChanges());
|
||||
|
||||
Assert.Equal("autoMonitorNew, minLen", change.To);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AuditChanges_InvalidJson_ReturnsEmpty()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user