Files
itworx-knowledge-hub-Public/tests/backend/ItWorx.KnowledgeHub.Domain.Tests/RunbookProfileTests.cs
T

39 lines
1.3 KiB
C#

using ItWorx.KnowledgeHub.Domain.Runbooks;
namespace ItWorx.KnowledgeHub.Domain.Tests;
public sealed class RunbookProfileTests
{
private static readonly DateTimeOffset Now = new(2026, 8, 1, 12, 0, 0, TimeSpan.Zero);
[Fact]
public void A_never_validated_runbook_is_stale_against_any_revision()
{
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Medium, false, null, null, Now);
Assert.True(runbook.IsStaleAgainst(1));
}
[Fact]
public void Validate_records_the_reviewer_and_the_current_revision()
{
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.High, true, 30, null, Now);
var validator = Guid.NewGuid();
runbook.Validate(validator, 3, Now);
Assert.Equal(validator, runbook.ValidatedBy);
Assert.Equal(Now, runbook.LastValidatedAt);
Assert.False(runbook.IsStaleAgainst(3));
}
[Fact]
public void A_new_content_revision_after_validation_makes_the_runbook_stale_again()
{
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Low, false, null, null, Now);
runbook.Validate(Guid.NewGuid(), 2, Now);
Assert.True(runbook.IsStaleAgainst(3));
}
}