package role import ( "testing" "time" roleModel "perms-system-server/internal/model/role" "perms-system-server/internal/svc" "perms-system-server/internal/testutil" "perms-system-server/internal/testutil/ctxhelper" "perms-system-server/internal/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) // TC-0110: 正常查询 func TestRoleList_Normal(t *testing.T) { ctx := ctxhelper.SuperAdminCtx() svcCtx := svc.NewServiceContext(testutil.GetTestConfig()) conn := testutil.GetTestSqlConn() now := time.Now().Unix() pc := testutil.UniqueId() var roleIds []int64 for i := 0; i < 3; i++ { res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{ ProductCode: pc, Name: testutil.UniqueId(), Status: 1, PermsLevel: int64(i + 1), CreateTime: now, UpdateTime: now, }) require.NoError(t, err) id, _ := res.LastInsertId() roleIds = append(roleIds, id) } t.Cleanup(func() { testutil.CleanTable(ctx, conn, "`sys_role`", roleIds...) }) logic := NewRoleListLogic(ctx, svcCtx) resp, err := logic.RoleList(&types.RoleListReq{ ProductCode: pc, Page: 1, PageSize: 10, }) require.NoError(t, err) assert.Equal(t, int64(3), resp.Total) items := resp.List.([]types.RoleItem) assert.Len(t, items, 3) } // TC-0110: 正常查询 func TestRoleList_DefaultPagination(t *testing.T) { ctx := ctxhelper.SuperAdminCtx() svcCtx := svc.NewServiceContext(testutil.GetTestConfig()) conn := testutil.GetTestSqlConn() now := time.Now().Unix() pc := testutil.UniqueId() res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{ ProductCode: pc, Name: testutil.UniqueId(), Status: 1, PermsLevel: 1, CreateTime: now, UpdateTime: now, }) require.NoError(t, err) roleId, _ := res.LastInsertId() t.Cleanup(func() { testutil.CleanTable(ctx, conn, "`sys_role`", roleId) }) logic := NewRoleListLogic(ctx, svcCtx) resp, err := logic.RoleList(&types.RoleListReq{ ProductCode: pc, }) require.NoError(t, err) assert.Equal(t, int64(1), resp.Total) } // TC-0111: pageSize超过上限 func TestRoleList_PageSizeExceedsLimit(t *testing.T) { ctx := ctxhelper.SuperAdminCtx() svcCtx := svc.NewServiceContext(testutil.GetTestConfig()) conn := testutil.GetTestSqlConn() now := time.Now().Unix() pc := testutil.UniqueId() res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{ ProductCode: pc, Name: testutil.UniqueId(), Status: 1, PermsLevel: 1, CreateTime: now, UpdateTime: now, }) require.NoError(t, err) roleId, _ := res.LastInsertId() t.Cleanup(func() { testutil.CleanTable(ctx, conn, "`sys_role`", roleId) }) logic := NewRoleListLogic(ctx, svcCtx) resp, err := logic.RoleList(&types.RoleListReq{ ProductCode: pc, Page: 1, PageSize: 200, }) require.NoError(t, err) assert.Equal(t, int64(1), resp.Total) }