|
|
@@ -302,11 +302,16 @@ func TestAddSubordinateBizDepthLimit(t *testing.T) {
|
|
|
root := nodeID(0)
|
|
|
seedRoot(t, db, root, model.DivideTypeOneOff, "1.00")
|
|
|
prev := root
|
|
|
- // 建到 layer=3(3 层 = 超管 / 校区主任 / 老师)
|
|
|
+ // **正向断言不可省**:建到 3 层,每一层都必须真建出来。
|
|
|
+ // 只断言"第 4 层被拒"是不够的 —— 把上限误写成 2 时,这个用例只测被拒的那半也照样绿,
|
|
|
+ // 而生产上第 3 层就再也建不出来了(存量里 MAX(layer)=2,说明第 3 层从未被验证过)。
|
|
|
for i := 1; i < bizDepth; i++ {
|
|
|
child := nodeID(i)
|
|
|
if err := svc.AddSubordinate(ctx, prev, child); err != nil {
|
|
|
- t.Fatalf("建链 AddSubordinate(%s→%s) 失败: %v", prev, child, err)
|
|
|
+ t.Fatalf("建第 %d 层失败(上限 %d 应允许建到第 %d 层): %v", i+1, bizDepth, bizDepth, err)
|
|
|
+ }
|
|
|
+ if got := loadDivideNode(t, db, child).Layer; got != int32(i+1) {
|
|
|
+ t.Fatalf("第 %d 层的 layer 应为 %d,实得 %d", i+1, i+1, got)
|
|
|
}
|
|
|
prev = child
|
|
|
}
|