34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Mvc.Testing;
|
|
|
|
namespace RpgRoller.Tests;
|
|
|
|
public sealed class SystemApiTests : ApiTestBase
|
|
{
|
|
public SystemApiTests(WebApplicationFactory<Program> factory)
|
|
: base(factory)
|
|
{
|
|
}
|
|
|
|
[Fact]
|
|
public async Task RulesetAndSseEndpoints_ReturnExpectedResponses()
|
|
{
|
|
using var factory = CreateFactory(2, 2, 2);
|
|
using var client = factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false });
|
|
|
|
var rulesets = await GetAsync<IReadOnlyList<RulesetDefinition>>(client, "/api/rulesets");
|
|
Assert.Equal(2, rulesets.Count);
|
|
|
|
await RegisterAsync(client, "sse", "Password123", "Sse User");
|
|
await LoginAsync(client, "sse", "Password123");
|
|
|
|
var campaign = await PostAsync<CreateCampaignRequest, CampaignSummary>(
|
|
client,
|
|
"/api/campaigns",
|
|
new CreateCampaignRequest("SSE", "d6"));
|
|
|
|
var sseResponse = await client.GetAsync($"/api/events/state?campaignId={campaign.Id}", HttpCompletionOption.ResponseHeadersRead);
|
|
Assert.Equal(HttpStatusCode.OK, sseResponse.StatusCode);
|
|
Assert.Equal("text/event-stream", sseResponse.Content.Headers.ContentType?.MediaType);
|
|
}
|
|
}
|