Files
itworx-knowledge-hub-Public/tests/backend/ItWorx.KnowledgeHub.IntegrationTests/Operations/ActivityFeedTests.cs
T

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));
}
}