fix(uns): guard scripted-alarm name uniqueness on create/update (code-review)

This commit is contained in:
Joseph Doherty
2026-06-11 14:31:35 -04:00
parent 705ed6234f
commit 5cae3c5b96
2 changed files with 52 additions and 7 deletions
@@ -74,4 +74,16 @@ public sealed class UnsTreeServiceScriptedAlarmTests
(await svc.DeleteScriptedAlarmAsync("SA-1", dto!.RowVersion)).Ok.ShouldBeTrue();
(await svc.LoadAlarmsForEquipmentAsync(UnsTreeTestDb.SeededEquipmentId)).ShouldBeEmpty();
}
[Fact]
public async Task Create_rejects_duplicate_name_on_same_equipment()
{
var svc = SeededService();
(await svc.CreateScriptedAlarmAsync(UnsTreeTestDb.SeededEquipmentId, Sample("SA-1"))).Ok.ShouldBeTrue();
// Same Name ("Over-temp" from Sample), different id, same equipment → rejected.
var dup = await svc.CreateScriptedAlarmAsync(UnsTreeTestDb.SeededEquipmentId, Sample("SA-2"));
dup.Ok.ShouldBeFalse();
dup.Error.ShouldNotBeNull();
dup.Error!.ShouldContain("already exists");
}
}