- 在菜单系统中新增 RenderType、FormDefinitionId 和 RuntimeViewMode 字段 - 实现自定义表单菜单类型的组件映射和验证逻辑 - 为分片上传相关端点添加 file:upload 权限控制 - 为桶和文件夹操作添加 bucket:write 和 file:write 权限控制 - 为文件共享功能添加 file-share:write 权限控制 - 为文件读取操作添加 file:read 权限控制 - 扩展 AI 模型提供商枚举,支持更多模型供应商 - 在 AI 模型创建和更新时添加枚举值验证 - 重构工作流按钮权限检查逻辑,使用统一的权限码查询方式 - 为 JSON 格式文档添加提取器支持 - 增强表单数据派生服务,支持自定义表单关联解析 - 为表单数据添加按表单定义 ID 的索引优化 - 添加聊天消息搜索和上下文获取的集成测试 - 修正删除菜单端点的 ID 类型从 Guid 改为 long
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
namespace BuildFlow.Architecture.Tests;
|
||
|
||
using Xunit;
|
||
|
||
/// <summary>
|
||
/// RAG 知识库 HTTP 校验器的契约测试。确保 Host 入口允许的策略范围与应用层保持一致。
|
||
/// </summary>
|
||
public class RagKnowledgeBaseValidatorTests
|
||
{
|
||
[Theory]
|
||
[InlineData("CreateKnowledgeBaseRequestValidator.cs")]
|
||
[InlineData("UpdateKnowledgeBaseRequestValidator.cs")]
|
||
public void KnowledgeBaseValidatorsShouldAllowAllImplementedChunkingModes(string fileName)
|
||
{
|
||
var repoRoot = FindRepoRoot();
|
||
var validatorPath = Path.Combine(
|
||
repoRoot.FullName,
|
||
"src",
|
||
"BuildFlow.Host",
|
||
"Endpoints",
|
||
"Rag",
|
||
"KnowledgeBase",
|
||
fileName);
|
||
var source = File.ReadAllText(validatorPath);
|
||
|
||
Assert.Contains(".InclusiveBetween(0, 5)", source);
|
||
Assert.DoesNotContain(".InclusiveBetween(0, 2).When(x => x.ChunkingMode.HasValue)", source);
|
||
Assert.Contains("0=General,1=Heading,2=ParentChild,3=Separator,4=ByPage,5=Token", source);
|
||
}
|
||
|
||
private static DirectoryInfo FindRepoRoot()
|
||
{
|
||
var current = new DirectoryInfo(AppContext.BaseDirectory);
|
||
while (current is not null)
|
||
{
|
||
if (File.Exists(Path.Combine(current.FullName, "BuildFlow.slnx")))
|
||
{
|
||
return current;
|
||
}
|
||
|
||
current = current.Parent;
|
||
}
|
||
|
||
throw new InvalidOperationException("无法定位 BuildFlow.slnx,无法验证 RAG 知识库校验器。");
|
||
}
|
||
}
|