Rework post page (lead, pager), add skip link, unified focus ring, reduced motion and keyboard-accessible menu
This commit is contained in:
1 parent
ae362639e3
commit
ba65b18d29
14 files changed
+544
-69
No files matched your search
@@ -0,0 +1,57 @@
|
||||
using Elternbeirat.Contracts;
|
||||
using Elternbeirat.Web.Features.Posts;
|
||||
|
||||
namespace Elternbeirat.Web.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Unit tests for the older/newer post next to a post. The list comes newest
|
||||
/// first, as from PocketBase; "previous" is the older post. Pure logic, no
|
||||
/// PocketBase needed.
|
||||
/// </summary>
|
||||
public class PostNeighborsTests
|
||||
{
|
||||
// Newest first, like PocketBaseClient.GetPostsAsync.
|
||||
private static readonly Post[] Posts = [Post("march"), Post("february"), Post("january")];
|
||||
|
||||
private static Post Post(string slug) =>
|
||||
new() { Id = slug, Title = slug, Slug = slug };
|
||||
|
||||
[Fact]
|
||||
public void Middle_post_has_the_older_as_previous_and_the_newer_as_next()
|
||||
{
|
||||
var neighbors = PostNeighbors.Of(Posts, "february");
|
||||
|
||||
neighbors.Previous?.Slug.ShouldBe("january");
|
||||
neighbors.Next?.Slug.ShouldBe("march");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Newest_post_has_no_next()
|
||||
{
|
||||
var neighbors = PostNeighbors.Of(Posts, "march");
|
||||
|
||||
neighbors.Previous?.Slug.ShouldBe("february");
|
||||
neighbors.Next.ShouldBeNull();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Oldest_post_has_no_previous()
|
||||
{
|
||||
var neighbors = PostNeighbors.Of(Posts, "january");
|
||||
|
||||
neighbors.Previous.ShouldBeNull();
|
||||
neighbors.Next?.Slug.ShouldBe("february");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Only_post_has_no_neighbors() =>
|
||||
PostNeighbors.Of([Post("only")], "only").ShouldBe(new PostNeighbors(null, null));
|
||||
|
||||
[Fact]
|
||||
public void Unknown_slug_has_no_neighbors() =>
|
||||
PostNeighbors.Of(Posts, "december").ShouldBe(new PostNeighbors(null, null));
|
||||
|
||||
[Fact]
|
||||
public void Slug_is_compared_case_insensitively() =>
|
||||
PostNeighbors.Of(Posts, "February").Next?.Slug.ShouldBe("march");
|
||||
}
|
||||
Reference in new issue
Block a user