Files
Wiki/test/Wiki.Core.Tests/EmbeddingTextTests.cs
T

30 lines
1.1 KiB
C#

using Wiki.Core.Model;
using Wiki.Core.Parsing;
namespace Wiki.Core.Tests;
public class EmbeddingTextTests
{
[Fact]
public void ComposesSlugTitleAliasesTagsAndFirstParagraph()
{
var text = "---\ntitle: UDM intercepts DNS\naliases: [udm dns, split horizon]\ntags: [dns, udm]\n---\n\n# UDM intercepts DNS\n\nThe UDM answers\nevery query.\n\nSecond paragraph.\n";
var doc = DocumentParser.Parse(new DocumentRef(DocumentKind.Wiki, "udm-dns", "wiki/udm-dns.md", "h"), text);
Assert.Equal("udm dns UDM intercepts DNS udm dns split horizon dns udm The UDM answers every query.", EmbeddingText.For(doc));
}
[Fact]
public void FirstParagraphNeedsAnH1AndSkipsHeadings()
{
Assert.Equal(string.Empty, EmbeddingText.FirstParagraph("No heading\n\nText."));
Assert.Equal("Text. More.", EmbeddingText.FirstParagraph("# T\n\n## Sub\n\nText.\nMore.\n\nNext."));
}
[Fact]
public void CapsLength()
{
var doc = DocumentParser.Parse(new DocumentRef(DocumentKind.Wiki, "x", "wiki/x.md", "h"), "# x\n\n" + new string('a', 5000));
Assert.Equal(1500, EmbeddingText.For(doc).Length);
}
}