30 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|