fix query

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-05-08 09:45:34 +08:00
parent e6bbaeffa6
commit 506797868a
3 changed files with 16 additions and 13 deletions
+6 -3
View File
@@ -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
+5 -5
View File
@@ -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"))