feat: add auth dto and scalar templates

This commit is contained in:
xiong
2026-07-26 13:18:18 +08:00
parent 70e2503d18
commit 00413d6b3b
5 changed files with 196 additions and 44 deletions

View File

@@ -3,7 +3,7 @@ using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.Extensions.DependencyInjection;
using Tiku.Application.Auth;
using Tiku.Api.Controllers;
using Tiku.Api.Contracts;
using Tiku.Domain.Identity;
using Tiku.Domain.Tenancy;
using Tiku.Infrastructure.Auth;
@@ -22,7 +22,12 @@ public sealed class AuthEndpointTests
var loginResponse = await client.PostAsJsonAsync(
"/api/auth/login/password",
new PasswordLoginHttpRequest(seed.TenantId, seed.Phone, "passw0rd!"));
new PasswordLoginDto
{
TenantId = seed.TenantId,
Phone = seed.Phone,
Password = "passw0rd!"
});
var loginJson = await ReadJsonAsync(loginResponse);
var accessToken = loginJson.RootElement
.GetProperty("tokens")
@@ -50,7 +55,12 @@ public sealed class AuthEndpointTests
var loginResponse = await client.PostAsJsonAsync(
"/api/auth/login/sms",
new SmsLoginHttpRequest(seed.TenantId, seed.Phone, "123456"));
new SmsLoginDto
{
TenantId = seed.TenantId,
Phone = seed.Phone,
Code = "123456"
});
var loginJson = await ReadJsonAsync(loginResponse);
var accessToken = loginJson.RootElement
.GetProperty("tokens")
@@ -72,7 +82,12 @@ public sealed class AuthEndpointTests
using var client = factory.CreateClient();
var loginResponse = await client.PostAsJsonAsync(
"/api/auth/login/password",
new PasswordLoginHttpRequest(seed.TenantId, seed.Phone, "passw0rd!"));
new PasswordLoginDto
{
TenantId = seed.TenantId,
Phone = seed.Phone,
Password = "passw0rd!"
});
var loginJson = await ReadJsonAsync(loginResponse);
var tokens = loginJson.RootElement.GetProperty("tokens");
var accessToken = tokens.GetProperty("accessToken").GetString();
@@ -80,12 +95,12 @@ public sealed class AuthEndpointTests
var logoutResponse = await client.PostAsJsonAsync(
"/api/auth/logout",
new RefreshHttpRequest(refreshToken!));
new RefreshSessionDto { RefreshToken = refreshToken! });
client.DefaultRequestHeaders.Authorization = new("Bearer", accessToken);
var meResponse = await client.GetAsync("/api/me");
var refreshResponse = await client.PostAsJsonAsync(
"/api/auth/refresh",
new RefreshHttpRequest(refreshToken!));
new RefreshSessionDto { RefreshToken = refreshToken! });
Assert.Equal(HttpStatusCode.NoContent, logoutResponse.StatusCode);
Assert.Equal(HttpStatusCode.Unauthorized, meResponse.StatusCode);
@@ -119,7 +134,11 @@ public sealed class AuthEndpointTests
var loginResponse = await client.PostAsJsonAsync(
"/api/auth/oauth/wechat-miniapp",
new WechatLoginHttpRequest(tenantId, "wx-code"));
new OAuthCodeDto
{
TenantId = tenantId,
Code = "wx-code"
});
var loginJson = await ReadJsonAsync(loginResponse);
var accessToken = loginJson.RootElement
.GetProperty("tokens")