Fix Task 5 review issues: per-test ApiFactory, drop dead RoleManager param + EF Core using

This commit is contained in:
2026-06-11 18:38:37 +00:00
parent 2a208e81b2
commit a1aa5023a2
2 changed files with 10 additions and 11 deletions
+9 -8
View File
@@ -5,14 +5,13 @@ using Xunit;
namespace backend.tests; namespace backend.tests;
public class AuthTests(ApiFactory factory) : IClassFixture<ApiFactory> public class AuthTests
{ {
private readonly ApiFactory _factory = factory;
[Fact] [Fact]
public async Task Register_then_login_then_me_returns_user() public async Task Register_then_login_then_me_returns_user()
{ {
var client = _factory.CreateClient(); using var factory = new ApiFactory();
var client = factory.CreateClient();
var reg = await client.PostAsJsonAsync("/api/auth/register", var reg = await client.PostAsJsonAsync("/api/auth/register",
new { email = "first@example.com", password = "Passw0rd!" }); new { email = "first@example.com", password = "Passw0rd!" });
@@ -30,7 +29,8 @@ public class AuthTests(ApiFactory factory) : IClassFixture<ApiFactory>
[Fact] [Fact]
public async Task Me_without_login_returns_401() public async Task Me_without_login_returns_401()
{ {
var client = _factory.CreateClient(); using var factory = new ApiFactory();
var client = factory.CreateClient();
var res = await client.GetAsync("/api/auth/me"); var res = await client.GetAsync("/api/auth/me");
res.StatusCode.Should().Be(HttpStatusCode.Unauthorized); res.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
} }
@@ -38,11 +38,12 @@ public class AuthTests(ApiFactory factory) : IClassFixture<ApiFactory>
[Fact] [Fact]
public async Task First_user_is_admin() public async Task First_user_is_admin()
{ {
var client = _factory.CreateClient(); using var factory = new ApiFactory();
var client = factory.CreateClient();
await client.PostAsJsonAsync("/api/auth/register", await client.PostAsJsonAsync("/api/auth/register",
new { email = "first@example.com", password = "Passw0rd!" }); new { email = "admin@example.com", password = "Passw0rd!" });
await client.PostAsJsonAsync("/api/auth/login", await client.PostAsJsonAsync("/api/auth/login",
new { email = "first@example.com", password = "Passw0rd!" }); new { email = "admin@example.com", password = "Passw0rd!" });
var me = await client.GetAsync("/api/auth/me"); var me = await client.GetAsync("/api/auth/me");
(await me.Content.ReadAsStringAsync()).Should().Contain("\"isAdmin\":true"); (await me.Content.ReadAsStringAsync()).Should().Contain("\"isAdmin\":true");
+1 -3
View File
@@ -1,6 +1,5 @@
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace backend.Auth; namespace backend.Auth;
@@ -15,8 +14,7 @@ public static class AuthEndpoints
grp.MapPost("/register", async ( grp.MapPost("/register", async (
[FromBody] RegisterRequest req, [FromBody] RegisterRequest req,
UserManager<ApplicationUser> users, UserManager<ApplicationUser> users) =>
RoleManager<IdentityRole<Guid>> roles) =>
{ {
var user = new ApplicationUser { UserName = req.Email, Email = req.Email }; var user = new ApplicationUser { UserName = req.Email, Email = req.Email };
var create = await users.CreateAsync(user, req.Password); var create = await users.CreateAsync(user, req.Password);