已发布方案可修改名称、总学分、说明、课程模块及课程配置。

适用专业、入学年级、版本号保持锁定;前端禁用,后端也会返回 409 拒绝篡改。
归档方案仍只读。
修改已发布方案前增加即时生效警示和二次确认。
This commit is contained in:
2026-07-25 09:42:09 +08:00 Unverified
parent 9a3afa3df5
commit ce65fe82d9
6 changed files with 125 additions and 24 deletions
@@ -0,0 +1,29 @@
using Jiaowu.Api.Domain.Academic;
using Jiaowu.Api.Infrastructure.Graduation;
namespace Jiaowu.Api.Tests;
public sealed class CurriculumPlanEditingPolicyTests
{
[Theory]
[InlineData(CurriculumPlanStatus.Draft, true)]
[InlineData(CurriculumPlanStatus.Published, true)]
[InlineData(CurriculumPlanStatus.Archived, false)]
public void Content_modification_is_limited_to_draft_and_published_plans(
CurriculumPlanStatus status,
bool expected)
{
Assert.Equal(expected, CurriculumPlanEditingPolicy.CanModifyContent(status));
}
[Theory]
[InlineData(CurriculumPlanStatus.Draft, true)]
[InlineData(CurriculumPlanStatus.Published, false)]
[InlineData(CurriculumPlanStatus.Archived, false)]
public void Only_draft_plans_can_change_their_applicability(
CurriculumPlanStatus status,
bool expected)
{
Assert.Equal(expected, CurriculumPlanEditingPolicy.CanChangeApplicability(status));
}
}