Reorganize tests by API and service concerns
This commit is contained in:
35
RpgRoller.Tests/Api/AuthApiTests.cs
Normal file
35
RpgRoller.Tests/Api/AuthApiTests.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
|
||||
namespace RpgRoller.Tests;
|
||||
|
||||
public sealed class AuthApiTests : ApiTestBase
|
||||
{
|
||||
public AuthApiTests(WebApplicationFactory<Program> factory)
|
||||
: base(factory)
|
||||
{
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task RegisterLoginAndMeFlow_WorksWithDuplicateUsernameGuard()
|
||||
{
|
||||
using var factory = CreateFactory(4, 4, 4);
|
||||
using var client = factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false });
|
||||
|
||||
var registerResult = await RegisterAsync(client, "alice", "Password123", "Alice");
|
||||
Assert.Equal("alice", registerResult.Username);
|
||||
|
||||
var duplicate = await client.PostAsJsonAsync("/api/auth/register", new RegisterRequest("alice", "Password123", "Alice 2"));
|
||||
Assert.Equal(HttpStatusCode.BadRequest, duplicate.StatusCode);
|
||||
|
||||
var loginResult = await client.PostAsJsonAsync("/api/auth/login", new LoginRequest("alice", "Password123"));
|
||||
Assert.Equal(HttpStatusCode.OK, loginResult.StatusCode);
|
||||
|
||||
var me = await GetAsync<MeResponse>(client, "/api/me");
|
||||
Assert.Equal(registerResult.Id, me.User.Id);
|
||||
Assert.Null(me.ActiveCharacterId);
|
||||
Assert.Null(me.CurrentCampaignId);
|
||||
|
||||
var invalidLogin = await client.PostAsJsonAsync("/api/auth/login", new LoginRequest("alice", "wrong-password"));
|
||||
Assert.Equal(HttpStatusCode.BadRequest, invalidLogin.StatusCode);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user