29 lines
1.4 KiB
C#
29 lines
1.4 KiB
C#
using System.Net.Http.Json;
|
|
using ItWorx.KnowledgeHub.Contracts.Activity;
|
|
using ItWorx.KnowledgeHub.Contracts.Knowledge;
|
|
using ItWorx.KnowledgeHub.IntegrationTests.Infrastructure;
|
|
|
|
namespace ItWorx.KnowledgeHub.IntegrationTests.Operations;
|
|
|
|
[Collection(PostgresTestGroup.Name)]
|
|
public sealed class ActivityFeedTests(PostgresContainerFixture postgres) : OwnerSetupTestBase(postgres)
|
|
{
|
|
[Fact]
|
|
public async Task Activity_feed_returns_real_append_only_audit_events_in_reverse_chronological_order()
|
|
{
|
|
using var client = Factory.CreateClient();
|
|
await SetupHelper.LoginAsync(client, OwnerEmail, OwnerPassword);
|
|
var create = await SetupHelper.PostWithCsrfAsync(
|
|
client, "/api/v1/pages", new CreatePageRequest(null, "Auditbare pagina", "WikiPage", "Inhoud.", null));
|
|
create.EnsureSuccessStatusCode();
|
|
|
|
var activity = await client.GetFromJsonAsync<ActivityListResponse>("/api/v1/activity?limit=20");
|
|
Assert.NotNull(activity);
|
|
var pageCreated = Assert.Single(activity.Items, item => item.Action == "page.created");
|
|
Assert.Equal("page", pageCreated.TargetType);
|
|
Assert.Contains("Auditbare pagina", pageCreated.Summary, StringComparison.Ordinal);
|
|
Assert.DoesNotContain("Inhoud.", pageCreated.Summary, StringComparison.Ordinal);
|
|
Assert.Equal(activity.Items.OrderByDescending(item => item.OccurredAt).Select(item => item.Id), activity.Items.Select(item => item.Id));
|
|
}
|
|
}
|