Files
vigil365/M365SecurityAlertDashboard.sln
AnandSundar ac685b4712 test(alerting): add xUnit project for auto-resolve path
Adds M365SecurityDashboard.Api.Tests with seven focused tests for the
new auto-resolve loop in AlertEvaluator:

- Streak increments on a below-threshold observation
- Auto-resolve after AutoResolveDebounceCycles consecutive observations
- Streak resets to zero on any above-threshold observation
- Debounce-of-one auto-resolves on the first observation
- Terminal-state alerts (resolved, auto_resolved) are skipped
- No notification dispatch on auto-resolve
- AcknowledgedAt and AcknowledgedBy survive an auto-resolve transition

Uses Microsoft.EntityFrameworkCore.InMemory for the test DbContext.
NotificationSender is constructed but never invoked by the loop under
test, so no HTTP/DPAPI dependencies are exercised.
2026-06-22 13:29:42 -06:00

30 lines
1.7 KiB
Plaintext

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "M365SecurityDashboard.Api", "src\M365SecurityDashboard.Api\M365SecurityDashboard.Api.csproj", "{A0AD3D97-983E-4665-B8A0-BB72D07686B6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8CEF94CD-3FDE-42A2-B93C-4D9552702532}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "M365SecurityDashboard.Api.Tests", "src\M365SecurityDashboard.Api.Tests\M365SecurityDashboard.Api.Tests.csproj", "{B8504228-F65D-4D8B-B972-B6471E615FB9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A0AD3D97-983E-4665-B8A0-BB72D07686B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0AD3D97-983E-4665-B8A0-BB72D07686B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0AD3D97-983E-4665-B8A0-BB72D07686B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0AD3D97-983E-4665-B8A0-BB72D07686B6}.Release|Any CPU.Build.0 = Release|Any CPU
{B8504228-F65D-4D8B-B972-B6471E615FB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B8504228-F65D-4D8B-B972-B6471E615FB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B8504228-F65D-4D8B-B972-B6471E615FB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B8504228-F65D-4D8B-B972-B6471E615FB9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{B8504228-F65D-4D8B-B972-B6471E615FB9} = {8CEF94CD-3FDE-42A2-B93C-4D9552702532}
EndGlobalSection
EndGlobal