@@ -131,9 +131,12 @@ func GetUserByID(userID string) (*models.User, error) {
|
||||
log.Printf("[Repository] GetUserByID - userID=%s", userID)
|
||||
|
||||
query := `
|
||||
SELECT users_id, email_address, role_id, is_deleted
|
||||
FROM uess_user_management.users
|
||||
WHERE users_id = ?
|
||||
SELECT u.users_id, u.email_address, COALESCE(MIN(ur.role_id), 0) AS role_id, u.is_deleted
|
||||
FROM uess_user_management.users u
|
||||
LEFT JOIN uess_user_management.user_roles ur
|
||||
ON ur.users_id = u.users_id AND u.is_deleted = 0
|
||||
WHERE u.users_id = ?
|
||||
GROUP BY u.users_id, u.email_address, u.is_deleted
|
||||
`
|
||||
|
||||
var user models.User
|
||||
|
||||
@@ -107,7 +107,7 @@ func TestGetUserByIDSuccess(t *testing.T) {
|
||||
rows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("user123", "john@example.com", 7, "0")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnRows(rows)
|
||||
|
||||
@@ -134,7 +134,7 @@ func TestGetUserByIDNotFound(t *testing.T) {
|
||||
mock, cleanup := setupMockDB(t)
|
||||
defer cleanup()
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("nonexistent").
|
||||
WillReturnError(sql.ErrNoRows)
|
||||
|
||||
@@ -155,7 +155,7 @@ func TestGetUserByIDDeletedUserFilteredOut(t *testing.T) {
|
||||
rows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("deleted-user", "deleted@example.com", 3, "1")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("deleted-user").
|
||||
WillReturnRows(rows)
|
||||
|
||||
@@ -329,7 +329,7 @@ func TestGetUserByIDEmptyID(t *testing.T) {
|
||||
|
||||
rows := sqlmock.NewRows([]string{"users_id", "email_address"})
|
||||
|
||||
mock.ExpectQuery(`SELECT users_id, email_address`).
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("").
|
||||
WillReturnRows(rows)
|
||||
|
||||
@@ -348,7 +348,7 @@ func TestGetUserByIDDatabaseError(t *testing.T) {
|
||||
mock, cleanup := setupMockDB(t)
|
||||
defer cleanup()
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnError(errors.New("database connection failed"))
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ func TestAuthorize_PermissionNotFound(t *testing.T) {
|
||||
userRows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("user123", "john@example.com", 1, "0")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnRows(userRows)
|
||||
|
||||
@@ -82,7 +82,7 @@ func TestAuthorize_Success(t *testing.T) {
|
||||
userRows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("user123", "john@example.com", 1, "0")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnRows(userRows)
|
||||
|
||||
@@ -139,7 +139,7 @@ func TestAuthorize_UserAttributesError(t *testing.T) {
|
||||
userRows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("user123", "john@example.com", 1, "0")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnRows(userRows)
|
||||
|
||||
@@ -183,7 +183,7 @@ func TestAuthorize_PolicyAttributesError(t *testing.T) {
|
||||
userRows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("user123", "john@example.com", 1, "0")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("user123").
|
||||
WillReturnRows(userRows)
|
||||
|
||||
@@ -269,7 +269,7 @@ func TestAuthorize_DeletedUserRedirectsToLogin(t *testing.T) {
|
||||
userRows := sqlmock.NewRows([]string{"users_id", "email_address", "role_id", "is_deleted"}).
|
||||
AddRow("deleted-user", "deleted@example.com", 1, "1")
|
||||
|
||||
mock.ExpectQuery("SELECT users_id, email_address, role_id, is_deleted").
|
||||
mock.ExpectQuery(`SELECT u.users_id, u.email_address, COALESCE\(MIN\(ur.role_id\), 0\) AS role_id, u.is_deleted`).
|
||||
WithArgs("deleted-user").
|
||||
WillReturnRows(userRows)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user