Initial curated itworx-knowledge-hub source from 3b1751d0d9dee551aa6994eee0093704dc334817
This commit is contained in:
commit
ad8ad252a9
825 files changed
+124216
No files matched your search
@@ -0,0 +1,55 @@
|
||||
namespace ItWorx.KnowledgeHub.Domain.Tests;
|
||||
|
||||
using ItWorx.KnowledgeHub.Domain.Knowledge;
|
||||
|
||||
/// <summary>V2-R1 (audit finding M3): a draft must capture every field the editor
|
||||
/// actually lets a user change, not just title/Markdown, so a metadata-only edit is
|
||||
/// recoverable exactly like a content edit is.</summary>
|
||||
public sealed class DraftTests
|
||||
{
|
||||
private static readonly DateTimeOffset Now = new(2026, 8, 3, 12, 0, 0, TimeSpan.Zero);
|
||||
|
||||
[Fact]
|
||||
public void Create_captures_tags_document_type_status_and_change_summary()
|
||||
{
|
||||
var draft = Draft.Create(
|
||||
Guid.NewGuid(), Guid.NewGuid(), "draft-key", null, null,
|
||||
"Titel", "Markdown", ["netwerk", "referentie"], "Runbook", "Active", "Kleine wijziging",
|
||||
Now, TimeSpan.FromDays(14));
|
||||
|
||||
Assert.Equal(["netwerk", "referentie"], draft.Tags);
|
||||
Assert.Equal("Runbook", draft.DocumentType);
|
||||
Assert.Equal("Active", draft.DocumentStatus);
|
||||
Assert.Equal("Kleine wijziging", draft.ChangeSummary);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_with_no_metadata_defaults_to_an_empty_tag_list_and_null_metadata_never_null_reference()
|
||||
{
|
||||
var draft = Draft.Create(
|
||||
Guid.NewGuid(), Guid.NewGuid(), "draft-key", null, null,
|
||||
"Titel", "Markdown", null, null, null, null, Now, TimeSpan.FromDays(14));
|
||||
|
||||
Assert.Empty(draft.Tags);
|
||||
Assert.Null(draft.DocumentType);
|
||||
Assert.Null(draft.DocumentStatus);
|
||||
Assert.Null(draft.ChangeSummary);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Update_replaces_every_field_including_a_metadata_only_change()
|
||||
{
|
||||
var draft = Draft.Create(
|
||||
Guid.NewGuid(), Guid.NewGuid(), "draft-key", null, null,
|
||||
"Titel", "Markdown", ["oud"], "WikiPage", "Draft", null, Now, TimeSpan.FromDays(14));
|
||||
|
||||
draft.Update("Titel", "Markdown", ["nieuw"], "Runbook", "Active", "Bijgewerkt", Now.AddMinutes(1), TimeSpan.FromDays(14));
|
||||
|
||||
Assert.Equal(["nieuw"], draft.Tags);
|
||||
Assert.Equal("Runbook", draft.DocumentType);
|
||||
Assert.Equal("Active", draft.DocumentStatus);
|
||||
Assert.Equal("Bijgewerkt", draft.ChangeSummary);
|
||||
Assert.Equal(Now.AddMinutes(1), draft.UpdatedAt);
|
||||
Assert.Equal(Now.AddMinutes(1).AddDays(14), draft.ExpiresAt);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user