删除(workflow 模块): - Application/BuildFlow/CustomFunctions/ 全目录(Commands/Handlers/Queries/DTOs/Services) - Domain/Entities/CustomFunction.cs + CustomFunctionExecutionLog.cs - Domain/Enums/CustomFunctionType.cs + CustomFunctionExecutionStatus.cs - Infrastructure/Configurations/CustomFunction*Configuration.cs - Host/Endpoints/Workflow/BuildFlow/CustomFunctions/ 全目录(5 端点+5 请求) - Host/Services/Integration/HttpFunctionExecutor.cs + IHttpFunctionExecutor.cs(HTTP 函数不做,spec §11) - WorkflowDbContext 移除 CustomFunctions/CustomFunctionExecutionLogs DbSet - WorkflowApplicationModule 移除 ICustomFunctionExecutionService 注册 迁移: - SeedData 权限码 buildflow:function:* → scripts.* (8 个) - SeedData 菜单 buildflow.functions → scripts(顶级模块) - 新增空迁移 RemoveCustomFunctionFromWorkflowModel(仅更新 ModelSnapshot) 测试清理: - 删除 CustomFunctionTests.cs + BuildFlowApplicationTests.cs CustomFunction 用例 - BuildFlowButtonActionTests.cs 删除 7 个已 skip 的执行器测试(T9 重写) - BuildFlowEntrySeedTests / PermissionRegistration 断言对齐新种子 Task T7 of scripting module refactor
56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
namespace BuildFlow.Architecture.Tests;
|
||
|
||
using Xunit;
|
||
|
||
/// <summary>
|
||
/// BuildFlow 低代码后台入口种子约束。保证干净库自动具备表单、按钮、函数管理菜单。
|
||
/// </summary>
|
||
public class BuildFlowEntrySeedTests
|
||
{
|
||
[Fact]
|
||
public void PlatformSeedDataShouldContainBuildFlowMetadataMenus()
|
||
{
|
||
var seedData = ReadPlatformSeedData();
|
||
|
||
Assert.Contains("\"buildflow\"", seedData, StringComparison.Ordinal);
|
||
Assert.Contains("\"buildflow.forms\"", seedData, StringComparison.Ordinal);
|
||
Assert.Contains("\"/buildflow/forms/index\"", seedData, StringComparison.Ordinal);
|
||
Assert.Contains("\"buildflow.buttons\"", seedData, StringComparison.Ordinal);
|
||
Assert.Contains("\"/buildflow/buttons/index\"", seedData, StringComparison.Ordinal);
|
||
// 脚本函数菜单已迁移至独立的 Scripting 模块(原 buildflow.functions → scripts)
|
||
Assert.Contains("\"scripts\"", seedData, StringComparison.Ordinal);
|
||
Assert.Contains("\"/scripts/index\"", seedData, StringComparison.Ordinal);
|
||
}
|
||
|
||
private static string ReadPlatformSeedData()
|
||
{
|
||
var repoRoot = FindRepoRoot();
|
||
var seedPath = Path.Combine(
|
||
repoRoot.FullName,
|
||
"src",
|
||
"modules",
|
||
"platform",
|
||
"Infrastructure",
|
||
"Persistence",
|
||
"SeedData.cs");
|
||
|
||
return File.ReadAllText(seedPath);
|
||
}
|
||
|
||
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,架构测试无法确定仓库边界。");
|
||
}
|
||
}
|