forked from xiongyuxing/tiku-backend.net
feat: bootstrap local platform development
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
using System.Net;
|
||||
|
||||
namespace Tiku.IntegrationTests.Api;
|
||||
|
||||
public sealed class PlatformAdminStaticEndpointTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Platform_admin_static_shell_is_served_without_api_authentication()
|
||||
{
|
||||
await using var factory = new ApiTestFactory();
|
||||
using var client = factory.CreateClient();
|
||||
|
||||
var response = await client.GetAsync("/platform-admin/");
|
||||
var body = await response.Content.ReadAsStringAsync();
|
||||
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
Assert.Contains("恭学题库 SaaS · 平台管理", body, StringComparison.Ordinal);
|
||||
Assert.Contains("./platform-api.js", body, StringComparison.Ordinal);
|
||||
Assert.Contains("./platform-auth.js", body, StringComparison.Ordinal);
|
||||
Assert.Contains("platformAuthGate", body, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Platform_admin_short_path_redirects_to_static_shell_directory()
|
||||
{
|
||||
await using var factory = new ApiTestFactory();
|
||||
using var client = factory.CreateClient(new()
|
||||
{
|
||||
AllowAutoRedirect = false
|
||||
});
|
||||
|
||||
var response = await client.GetAsync("/platform-admin");
|
||||
|
||||
Assert.Equal(HttpStatusCode.MovedPermanently, response.StatusCode);
|
||||
Assert.Equal("/platform-admin/", response.Headers.Location?.AbsolutePath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Platform_admin_runtime_uses_real_api_without_mock_fallback()
|
||||
{
|
||||
await using var factory = new ApiTestFactory();
|
||||
using var client = factory.CreateClient();
|
||||
|
||||
var runtime = await client.GetStringAsync("/platform-admin/runtime-config.js");
|
||||
var authentication = await client.GetStringAsync("/platform-admin/platform-auth.js");
|
||||
|
||||
Assert.Contains("mode: 'api'", runtime, StringComparison.Ordinal);
|
||||
Assert.Contains("fallbackToMock: false", runtime, StringComparison.Ordinal);
|
||||
Assert.Contains("/api/auth/login/password", authentication, StringComparison.Ordinal);
|
||||
Assert.Contains("/api/auth/password/change-required", authentication, StringComparison.Ordinal);
|
||||
Assert.Contains("/api/auth/mfa/totp/confirm", authentication, StringComparison.Ordinal);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user