feat: добавил интеграционные тесты
This commit is contained in:
@@ -6,6 +6,7 @@ using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.OpenApi;
|
||||
using Serilog;
|
||||
using UniVerse.Api.BackgroundServices;
|
||||
using UniVerse.Api.Filters;
|
||||
using UniVerse.Api.Middleware;
|
||||
using UniVerse.Application.Interfaces;
|
||||
using UniVerse.Infrastructure.Services;
|
||||
@@ -119,29 +120,36 @@ builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.SwaggerDoc("v1", new OpenApiInfo
|
||||
{
|
||||
Title = "UniVerse API",
|
||||
Version = "v1",
|
||||
Description = "Universe"
|
||||
Title = "UniVerse API",
|
||||
Version = "v1",
|
||||
Description =
|
||||
"REST API веб-платформы UniVerse.\n\n" +
|
||||
"Аутентификация: JWT Bearer (получить через `POST /api/v1/auth/login/microsoft` или `POST /api/v1/auth/login/dev` в Development).",
|
||||
Contact = new OpenApiContact
|
||||
{
|
||||
Name = "UniVerse Dev"
|
||||
}
|
||||
});
|
||||
|
||||
// Bearer security scheme definition (used per-endpoint by AuthorizeOperationFilter)
|
||||
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
||||
{
|
||||
Name = "Authorization",
|
||||
Type = SecuritySchemeType.Http,
|
||||
Scheme = "bearer",
|
||||
Name = "Authorization",
|
||||
Type = SecuritySchemeType.Http,
|
||||
Scheme = "bearer",
|
||||
BearerFormat = "JWT",
|
||||
In = ParameterLocation.Header,
|
||||
Description = "Enter your JWT token"
|
||||
In = ParameterLocation.Header,
|
||||
Description = "Введите JWT access token, полученный из `/api/v1/auth/login/microsoft`.\n\nПример: `eyJhbGci...`"
|
||||
});
|
||||
|
||||
options.AddSecurityRequirement(doc =>
|
||||
{
|
||||
var bearerSchemeRef = new OpenApiSecuritySchemeReference("Bearer", doc, externalResource: null);
|
||||
return new OpenApiSecurityRequirement
|
||||
{
|
||||
[bearerSchemeRef] = new List<string>()
|
||||
};
|
||||
});
|
||||
// Include XML doc comments generated from controller /// summaries
|
||||
var xmlFile = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
||||
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
||||
if (File.Exists(xmlPath))
|
||||
options.IncludeXmlComments(xmlPath);
|
||||
|
||||
// Per-endpoint security requirement + role documentation (replaces global AddSecurityRequirement)
|
||||
options.OperationFilter<AuthorizeOperationFilter>();
|
||||
});
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
Reference in New Issue
Block a user