- 新增自定义函数与表单定义绑定关系字段 FormDefinitionId - 实现按钮调用函数时的表单作用域权限校验机制 - 实现按钮提交表单时的作用域权限检查功能 - 添加自定义函数列表按表单定义筛选查询能力 - 新增 RelationPicker 关联选择表单组件支持 - 完善菜单权限体系支持受限但可见菜单配置 - 添加文件消息大小限制验证(最大200MB) - 优化表单聚合变量同步异常处理机制 - 增加BuildFlow管理后台入口菜单种子数据 - 补充相关单元测试和架构约束测试用例
55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
using BuildFlow.Platform.Application.Menus.Commands;
|
|
using BuildFlow.Platform.Application.Menus.Validators;
|
|
using BuildFlow.Platform.Domain.Enums;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace BuildFlow.Platform.Tests.Menus;
|
|
|
|
/// <summary>
|
|
/// 菜单运行时形态校验测试。BuildFlow 自定义菜单当前只支持列表和表单两种形态。
|
|
/// </summary>
|
|
public class MenuRuntimeViewModeValidatorTests
|
|
{
|
|
[Fact]
|
|
public void CreateMenuCommand_ShouldRejectDetailRuntimeViewMode()
|
|
{
|
|
var validator = new CreateMenuCommandValidator();
|
|
|
|
var result = validator.Validate(new CreateMenuCommand
|
|
{
|
|
Code = "buildflow.form.expense.detail",
|
|
FormDefinitionId = Guid.NewGuid(),
|
|
Name = "BuildFlowFormExpenseDetail",
|
|
Path = "/buildflow/runtime/forms/expense/detail",
|
|
RenderType = MenuRenderType.BuildFlowForm,
|
|
RuntimeViewMode = MenuRuntimeViewMode.Detail,
|
|
Title = "费用申请详情",
|
|
});
|
|
|
|
result.IsValid.Should().BeFalse();
|
|
result.Errors.Should().Contain(x =>
|
|
x.PropertyName == nameof(CreateMenuCommand.RuntimeViewMode) &&
|
|
x.ErrorMessage == "自定义表单菜单运行形态只支持列表和表单");
|
|
}
|
|
|
|
[Fact]
|
|
public void UpdateMenuCommand_ShouldRejectDetailRuntimeViewMode()
|
|
{
|
|
var validator = new UpdateMenuCommandValidator();
|
|
|
|
var result = validator.Validate(new UpdateMenuCommand
|
|
{
|
|
Id = 100,
|
|
FormDefinitionId = Guid.NewGuid(),
|
|
RenderType = MenuRenderType.BuildFlowForm,
|
|
RuntimeViewMode = MenuRuntimeViewMode.Detail,
|
|
});
|
|
|
|
result.IsValid.Should().BeFalse();
|
|
result.Errors.Should().Contain(x =>
|
|
x.PropertyName == nameof(UpdateMenuCommand.RuntimeViewMode) &&
|
|
x.ErrorMessage == "自定义表单菜单运行形态只支持列表和表单");
|
|
}
|
|
}
|