|
|
@@ -147,3 +147,124 @@ func TestMemberList_DeletedUserEmptyInfo(t *testing.T) {
|
|
|
assert.Equal(t, "", items[0].Username)
|
|
|
assert.Equal(t, "", items[0].Nickname)
|
|
|
}
|
|
|
+
|
|
|
+// TC-1305: 非超管不传productCode时从JWT获取
|
|
|
+func TestMemberList_NonSuperAdminUsesJWTProductCode(t *testing.T) {
|
|
|
+ svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
|
|
|
+ conn := testutil.GetTestSqlConn()
|
|
|
+ now := time.Now().Unix()
|
|
|
+ pc := testutil.UniqueId()
|
|
|
+
|
|
|
+ uRes, err := svcCtx.SysUserModel.Insert(ctxhelper.SuperAdminCtx(), &userModel.SysUser{
|
|
|
+ Username: testutil.UniqueId(), Password: testutil.HashPassword("pass"), Nickname: "Nick",
|
|
|
+ Avatar: sql.NullString{}, IsSuperAdmin: 2, MustChangePassword: 2,
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ uId, _ := uRes.LastInsertId()
|
|
|
+
|
|
|
+ mRes, err := svcCtx.SysProductMemberModel.Insert(ctxhelper.SuperAdminCtx(), &memberModel.SysProductMember{
|
|
|
+ ProductCode: pc, UserId: uId, MemberType: "MEMBER",
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ mId, _ := mRes.LastInsertId()
|
|
|
+
|
|
|
+ t.Cleanup(func() {
|
|
|
+ testutil.CleanTable(ctxhelper.SuperAdminCtx(), conn, "`sys_product_member`", mId)
|
|
|
+ testutil.CleanTable(ctxhelper.SuperAdminCtx(), conn, "`sys_user`", uId)
|
|
|
+ })
|
|
|
+
|
|
|
+ ctx := ctxhelper.AdminCtx(pc)
|
|
|
+ logic := NewMemberListLogic(ctx, svcCtx)
|
|
|
+ resp, err := logic.MemberList(&types.MemberListReq{
|
|
|
+ Page: 1,
|
|
|
+ PageSize: 10,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ assert.Equal(t, int64(1), resp.Total)
|
|
|
+}
|
|
|
+
|
|
|
+// TC-1306: 非超管传了其他产品code时被忽略,仍返回JWT产品数据
|
|
|
+func TestMemberList_NonSuperAdminIgnoresReqProductCode(t *testing.T) {
|
|
|
+ svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
|
|
|
+ conn := testutil.GetTestSqlConn()
|
|
|
+ now := time.Now().Unix()
|
|
|
+ pc := testutil.UniqueId()
|
|
|
+
|
|
|
+ uRes, err := svcCtx.SysUserModel.Insert(ctxhelper.SuperAdminCtx(), &userModel.SysUser{
|
|
|
+ Username: testutil.UniqueId(), Password: testutil.HashPassword("pass"), Nickname: "Nick",
|
|
|
+ Avatar: sql.NullString{}, IsSuperAdmin: 2, MustChangePassword: 2,
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ uId, _ := uRes.LastInsertId()
|
|
|
+
|
|
|
+ mRes, err := svcCtx.SysProductMemberModel.Insert(ctxhelper.SuperAdminCtx(), &memberModel.SysProductMember{
|
|
|
+ ProductCode: pc, UserId: uId, MemberType: "MEMBER",
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ mId, _ := mRes.LastInsertId()
|
|
|
+
|
|
|
+ t.Cleanup(func() {
|
|
|
+ testutil.CleanTable(ctxhelper.SuperAdminCtx(), conn, "`sys_product_member`", mId)
|
|
|
+ testutil.CleanTable(ctxhelper.SuperAdminCtx(), conn, "`sys_user`", uId)
|
|
|
+ })
|
|
|
+
|
|
|
+ ctx := ctxhelper.AdminCtx(pc)
|
|
|
+ logic := NewMemberListLogic(ctx, svcCtx)
|
|
|
+ resp, err := logic.MemberList(&types.MemberListReq{
|
|
|
+ ProductCode: "other_product_code",
|
|
|
+ Page: 1,
|
|
|
+ PageSize: 10,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ assert.Equal(t, int64(1), resp.Total)
|
|
|
+}
|
|
|
+
|
|
|
+// TC-1307: 超管不传productCode时返回全量数据
|
|
|
+func TestMemberList_SuperAdminNoProductCodeReturnsAll(t *testing.T) {
|
|
|
+ ctx := ctxhelper.SuperAdminCtx()
|
|
|
+ svcCtx := svc.NewServiceContext(testutil.GetTestConfig())
|
|
|
+ conn := testutil.GetTestSqlConn()
|
|
|
+ now := time.Now().Unix()
|
|
|
+
|
|
|
+ pc1 := testutil.UniqueId()
|
|
|
+ pc2 := testutil.UniqueId()
|
|
|
+
|
|
|
+ uRes, err := svcCtx.SysUserModel.Insert(ctx, &userModel.SysUser{
|
|
|
+ Username: testutil.UniqueId(), Password: testutil.HashPassword("pass"), Nickname: "Nick",
|
|
|
+ Avatar: sql.NullString{}, IsSuperAdmin: 2, MustChangePassword: 2,
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ uId, _ := uRes.LastInsertId()
|
|
|
+
|
|
|
+ m1Res, err := svcCtx.SysProductMemberModel.Insert(ctx, &memberModel.SysProductMember{
|
|
|
+ ProductCode: pc1, UserId: uId, MemberType: "MEMBER",
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ m1Id, _ := m1Res.LastInsertId()
|
|
|
+
|
|
|
+ m2Res, err := svcCtx.SysProductMemberModel.Insert(ctx, &memberModel.SysProductMember{
|
|
|
+ ProductCode: pc2, UserId: uId, MemberType: "ADMIN",
|
|
|
+ Status: 1, CreateTime: now, UpdateTime: now,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ m2Id, _ := m2Res.LastInsertId()
|
|
|
+
|
|
|
+ t.Cleanup(func() {
|
|
|
+ testutil.CleanTable(ctx, conn, "`sys_product_member`", m1Id, m2Id)
|
|
|
+ testutil.CleanTable(ctx, conn, "`sys_user`", uId)
|
|
|
+ })
|
|
|
+
|
|
|
+ logic := NewMemberListLogic(ctx, svcCtx)
|
|
|
+ resp, err := logic.MemberList(&types.MemberListReq{
|
|
|
+ Page: 1,
|
|
|
+ PageSize: 10000,
|
|
|
+ })
|
|
|
+ require.NoError(t, err)
|
|
|
+ assert.GreaterOrEqual(t, resp.Total, int64(2))
|
|
|
+}
|