| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package dept
- import (
- "testing"
- deptModel "perms-system-server/internal/model/dept"
- "perms-system-server/internal/testutil/ctxhelper"
- "perms-system-server/internal/testutil/mocks"
- "perms-system-server/internal/types"
- "github.com/stretchr/testify/assert"
- "go.uber.org/mock/gomock"
- )
- // TC-0533: DeptType变更时级联清除子部门用户缓存
- func TestUpdateDept_Mock_CascadeCacheClean(t *testing.T) {
- ctrl := gomock.NewController(t)
- defer ctrl.Finish()
- parentDeptId := int64(10)
- childDeptId1 := int64(20)
- childDeptId2 := int64(30)
- mockDept := mocks.NewMockSysDeptModel(ctrl)
- mockDept.EXPECT().FindOne(gomock.Any(), parentDeptId).
- Return(&deptModel.SysDept{
- Id: parentDeptId,
- Name: "Parent",
- Path: "/10/",
- DeptType: "NORMAL",
- Status: 1,
- }, nil)
- mockDept.EXPECT().Update(gomock.Any(), gomock.Any()).Return(nil)
- mockDept.EXPECT().FindByPathPrefix(gomock.Any(), "/10/").
- Return([]*deptModel.SysDept{
- {Id: parentDeptId, Path: "/10/", DeptType: "DEV"},
- {Id: childDeptId1, Path: "/10/20/", DeptType: "NORMAL"},
- {Id: childDeptId2, Path: "/10/30/", DeptType: "NORMAL"},
- }, nil)
- mockUser := mocks.NewMockSysUserModel(ctrl)
- mockUser.EXPECT().FindIdsByDeptId(gomock.Any(), parentDeptId).
- Return([]int64{100, 101}, nil)
- mockUser.EXPECT().FindIdsByDeptId(gomock.Any(), childDeptId1).
- Return([]int64{200}, nil)
- mockUser.EXPECT().FindIdsByDeptId(gomock.Any(), childDeptId2).
- Return([]int64{300, 301}, nil)
- svcCtx := mocks.NewMockServiceContext(mocks.MockModels{
- Dept: mockDept,
- User: mockUser,
- })
- ctx := ctxhelper.SuperAdminCtx()
- logic := NewUpdateDeptLogic(ctx, svcCtx)
- err := logic.UpdateDept(&types.UpdateDeptReq{
- Id: parentDeptId,
- Name: "Parent Updated",
- DeptType: "DEV",
- })
- assert.NoError(t, err)
- }
|