roleListLogic_test.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package role
  2. import (
  3. "testing"
  4. "time"
  5. roleModel "perms-system-server/internal/model/role"
  6. "perms-system-server/internal/svc"
  7. "perms-system-server/internal/testutil"
  8. "perms-system-server/internal/testutil/ctxhelper"
  9. "perms-system-server/internal/types"
  10. "github.com/stretchr/testify/assert"
  11. "github.com/stretchr/testify/require"
  12. )
  13. // TC-0122: 正常查询
  14. func TestRoleList_Normal(t *testing.T) {
  15. ctx := ctxhelper.SuperAdminCtx()
  16. svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
  17. conn := testutil.GetTestSqlConn()
  18. now := time.Now().Unix()
  19. pc := testutil.UniqueId()
  20. var roleIds []int64
  21. for i := 0; i < 3; i++ {
  22. res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{
  23. ProductCode: pc, Name: testutil.UniqueId(), Status: 1,
  24. PermsLevel: int64(i + 1), CreateTime: now, UpdateTime: now,
  25. })
  26. require.NoError(t, err)
  27. id, _ := res.LastInsertId()
  28. roleIds = append(roleIds, id)
  29. }
  30. t.Cleanup(func() {
  31. testutil.CleanTable(ctx, conn, "`sys_role`", roleIds...)
  32. })
  33. logic := NewRoleListLogic(ctx, svcCtx)
  34. resp, err := logic.RoleList(&types.RoleListReq{
  35. ProductCode: pc, Page: 1, PageSize: 10,
  36. })
  37. require.NoError(t, err)
  38. assert.Equal(t, int64(3), resp.Total)
  39. items := resp.List.([]types.RoleItem)
  40. assert.Len(t, items, 3)
  41. }
  42. // TC-0122: 正常查询
  43. func TestRoleList_DefaultPagination(t *testing.T) {
  44. ctx := ctxhelper.SuperAdminCtx()
  45. svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
  46. conn := testutil.GetTestSqlConn()
  47. now := time.Now().Unix()
  48. pc := testutil.UniqueId()
  49. res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{
  50. ProductCode: pc, Name: testutil.UniqueId(), Status: 1, PermsLevel: 1,
  51. CreateTime: now, UpdateTime: now,
  52. })
  53. require.NoError(t, err)
  54. roleId, _ := res.LastInsertId()
  55. t.Cleanup(func() {
  56. testutil.CleanTable(ctx, conn, "`sys_role`", roleId)
  57. })
  58. logic := NewRoleListLogic(ctx, svcCtx)
  59. resp, err := logic.RoleList(&types.RoleListReq{
  60. ProductCode: pc,
  61. })
  62. require.NoError(t, err)
  63. assert.Equal(t, int64(1), resp.Total)
  64. }
  65. // TC-0123: pageSize超过上限
  66. func TestRoleList_PageSizeExceedsLimit(t *testing.T) {
  67. ctx := ctxhelper.SuperAdminCtx()
  68. svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
  69. conn := testutil.GetTestSqlConn()
  70. now := time.Now().Unix()
  71. pc := testutil.UniqueId()
  72. res, err := svcCtx.SysRoleModel.Insert(ctx, &roleModel.SysRole{
  73. ProductCode: pc, Name: testutil.UniqueId(), Status: 1, PermsLevel: 1,
  74. CreateTime: now, UpdateTime: now,
  75. })
  76. require.NoError(t, err)
  77. roleId, _ := res.LastInsertId()
  78. t.Cleanup(func() {
  79. testutil.CleanTable(ctx, conn, "`sys_role`", roleId)
  80. })
  81. logic := NewRoleListLogic(ctx, svcCtx)
  82. resp, err := logic.RoleList(&types.RoleListReq{
  83. ProductCode: pc, Page: 1, PageSize: 200,
  84. })
  85. require.NoError(t, err)
  86. assert.Equal(t, int64(1), resp.Total)
  87. }