diff --git a/controller/rbac/jwtManager_test.go b/controller/rbac/jwtManager_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..e79ec1b9ae4824066cf829b9c617fc5376f4ba1b
--- /dev/null
+++ b/controller/rbac/jwtManager_test.go
@@ -0,0 +1,110 @@
+package rbac
+
+import (
+	"reflect"
+	"testing"
+	"time"
+
+	"github.com/golang-jwt/jwt"
+)
+
+func TestJWTManager_GenerateToken(t *testing.T) {
+	type fields struct {
+		secretKey     string
+		tokenDuration time.Duration
+	}
+	type args struct {
+		user User
+	}
+	tests := []struct {
+		name    string
+		fields  fields
+		args    args
+		want    string
+		wantErr bool
+	}{
+		{
+			name: "default generate token",
+			fields: fields{
+				secretKey:     "",
+				tokenDuration: 1 * time.Minute,
+			},
+			args: args{
+				user: User{
+					UserName: "testUser",
+				},
+			},
+			want:    "testUser",
+			wantErr: false,
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			man := &JWTManager{
+				secretKey:     tt.fields.secretKey,
+				tokenDuration: tt.fields.tokenDuration,
+			}
+			got, err := man.GenerateToken(tt.args.user)
+			if (err != nil) != tt.wantErr {
+				t.Errorf("JWTManager.GenerateToken() error = %v, wantErr %v", err, tt.wantErr)
+				return
+			}
+
+			gotClaims, _ := man.VerifyToken(got)
+			claimsUser := gotClaims.Username
+
+			if claimsUser != tt.want {
+				t.Errorf("JWTManager.GenerateToken() = %v, want %v", claimsUser, tt.want)
+			}
+		})
+	}
+}
+
+func TestJWTManager_VerifyToken(t *testing.T) {
+	type fields struct {
+		secretKey     string
+		tokenDuration time.Duration
+	}
+	tests := []struct {
+		name     string
+		fields   fields
+		userName string
+		want     *UserClaims
+		wantErr  bool
+	}{
+		{
+			name: "default verify token",
+			fields: fields{
+				secretKey:     "",
+				tokenDuration: 1 * time.Minute,
+			},
+			userName: "testUser",
+			want: &UserClaims{
+				StandardClaims: jwt.StandardClaims{
+					ExpiresAt: time.Now().Add(1 * time.Minute).Unix(),
+				},
+				Username: "testUser",
+			},
+			wantErr: false,
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			man := &JWTManager{
+				secretKey:     tt.fields.secretKey,
+				tokenDuration: tt.fields.tokenDuration,
+			}
+
+			token, err := man.GenerateToken(User{UserName: tt.userName})
+			got, err := man.VerifyToken(token)
+			if (err != nil) != tt.wantErr {
+				t.Errorf("JWTManager.VerifyToken() error = %v, wantErr %v", err, tt.wantErr)
+				return
+			}
+
+			if !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("JWTManager.VerifyToken() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}