SlugHelperTests

This commit is contained in:
eelke 2026-02-15 06:54:25 +01:00
parent ed52e2f789
commit 7a5cb703ec
3 changed files with 29 additions and 2 deletions

View file

@ -0,0 +1,26 @@
using IdentityShroud.Core.Helpers;
namespace IdentityShroud.Core.Tests.Helpers;
public class SlugHelperTests
{
[Theory]
[InlineData("", 40, "")]
[InlineData("test", 40, "test")]
[InlineData("Test", 40, "test")]
[InlineData("tést", 40, "test")]
[InlineData("foo_bar", 40, "foo-bar")]
[InlineData("foo bar", 40, "foo-bar")]
[InlineData("-foo", 40, "foo")]
[InlineData("foo-", 40, "foo")]
[InlineData("_foo", 40, "foo")]
[InlineData("foo_", 40, "foo")]
[InlineData("slug_would_be_too_long", 16, "slug-woul-frYeRw")] // not at word boundary
[InlineData("slug_would_be_too_long", 18, "slug-would-frYeRw")] // at word boundary
public void Test(string input, int max_length, string expected)
{
string result = SlugHelper.GenerateSlug(input, max_length);
Assert.Equal(expected, result);
}
}

View file

@ -1,6 +1,7 @@
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using IdentityShroud.Core.DTO;
using IdentityShroud.Core.Messages;
using Microsoft.AspNetCore.WebUtilities;