fix tests

This commit is contained in:
2026-01-27 10:58:24 +08:00
parent 8af97e970a
commit ac0ff00880
5 changed files with 76 additions and 54 deletions
+4 -4
View File
@@ -30,8 +30,8 @@ func TestInsertAccessLogLogin(t *testing.T) {
Time: currentTime,
}
mock.ExpectExec(`INSERT INTO access_log \( user_id, participant_id, activity_type, ip_address, field_updated, time\) VALUES \(\?, \?, \?, \?, \?, \?\)`).
WithArgs(&userID, &participantID, activityType, ipAddress, &fieldData, currentTime).
mock.ExpectExec(`INSERT INTO access_log \( user_id, activity_type, ip_address, field_updated, time\) VALUES \(\?, \?, \?, \?, \?\)`).
WithArgs(&userID, activityType, ipAddress, &fieldData, currentTime).
WillReturnResult(sqlmock.NewResult(1, 1))
err := InsertAccessLogLogin(accessLog)
@@ -62,8 +62,8 @@ func TestInsertAccessLogLoginNullFields(t *testing.T) {
Time: currentTime,
}
mock.ExpectExec(`INSERT INTO access_log \( user_id, participant_id, activity_type, ip_address, field_updated, time\) VALUES \(\?, \?, \?, \?, \?, \?\)`).
WithArgs(nil, nil, activityType, ipAddress, nil, currentTime).
mock.ExpectExec(`INSERT INTO access_log \( user_id, activity_type, ip_address, field_updated, time\) VALUES \(\?, \?, \?, \?, \?\)`).
WithArgs(nil, activityType, ipAddress, nil, currentTime).
WillReturnResult(sqlmock.NewResult(1, 1))
err := InsertAccessLogLogin(accessLog)
+1 -1
View File
@@ -19,7 +19,7 @@ func GetUserID(email string) (string, error) {
func CheckEmailInDB(email string) (bool, error) {
var exists bool
query := `SELECT EXISTS (
SELECT 1 FROM users WHERE email_address = ? AND is_deleted = 0);`
SELECT 1 FROM users WHERE email_address = ? AND is_deleted = 0)`
err := db.DB.QueryRow(query, email).Scan(&exists)
if err != nil {
return false, err
+15 -28
View File
@@ -32,14 +32,11 @@ func TestGetUser(t *testing.T) {
email := "test@example.com"
expectedID := "user123"
expectedFirstName := "John"
expectedLastName := "Doe"
expectedEmail := "test@example.com"
rows := sqlmock.NewRows([]string{"id", "first_name", "last_name", "email_address"}).
AddRow(expectedID, expectedFirstName, expectedLastName, expectedEmail)
rows := sqlmock.NewRows([]string{"user_id"}).
AddRow(expectedID)
mock.ExpectQuery(`SELECT id, first_name, last_name, email_address FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1;`).
WithArgs(email).
WillReturnRows(rows)
@@ -51,7 +48,7 @@ func TestGetUserNotFound(t *testing.T) {
email := "nonexistent@example.com"
mock.ExpectQuery(`SELECT id, first_name, last_name, email_address FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1;`).
WithArgs(email).
WillReturnError(sql.ErrNoRows)
@@ -73,10 +70,10 @@ func TestGetUserNullNames(t *testing.T) {
email := "test@example.com"
expectedID := "user456"
rows := sqlmock.NewRows([]string{"id", "first_name", "last_name", "email_address"}).
AddRow(expectedID, nil, nil, email)
rows := sqlmock.NewRows([]string{"user_id"}).
AddRow(expectedID)
mock.ExpectQuery(`SELECT id, first_name, last_name, email_address FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1;`).
WithArgs(email).
WillReturnRows(rows)
@@ -99,11 +96,10 @@ func TestGetUserID(t *testing.T) {
email := "test@example.com"
expectedID := "user789"
rows := sqlmock.NewRows([]string{"id"}).
rows := sqlmock.NewRows([]string{"user_id"}).
AddRow(expectedID)
// Note: The query has a typo "SELECT id, FROM" but we match it as-is
mock.ExpectQuery(`SELECT id, FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1;`).
WithArgs(email).
WillReturnRows(rows)
@@ -201,7 +197,7 @@ func TestGetUserIDFromEmail(t *testing.T) {
rows := sqlmock.NewRows([]string{"id"}).
AddRow(expectedID)
mock.ExpectQuery(`SELECT id FROM \( SELECT id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM \( SELECT user_id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1;`).
WithArgs(email).
WillReturnRows(rows)
@@ -226,7 +222,7 @@ func TestGetUserIDFromEmailNotFound(t *testing.T) {
email := "notfound@example.com"
mock.ExpectQuery(`SELECT id FROM \( SELECT id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM \( SELECT user_id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1;`).
WithArgs(email).
WillReturnError(sql.ErrNoRows)
@@ -247,7 +243,7 @@ func TestGetUserIDFromEmailDBError(t *testing.T) {
email := "error@example.com"
mock.ExpectQuery(`SELECT id FROM \( SELECT id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM \( SELECT user_id, 1 AS priority FROM users WHERE email_address = \? AND is_deleted = 0 \) t ORDER BY priority ASC LIMIT 1;`).
WithArgs(email).
WillReturnError(sql.ErrConnDone)
@@ -282,19 +278,10 @@ func TestGetUserMultipleEmails(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.email, func(t *testing.T) {
var firstName, lastName interface{}
if tc.hasNames {
firstName = "First"
lastName = "Last"
} else {
firstName = nil
lastName = nil
}
rows := sqlmock.NewRows([]string{"user_id"}).
AddRow(tc.userID)
rows := sqlmock.NewRows([]string{"id", "first_name", "last_name", "email_address"}).
AddRow(tc.userID, firstName, lastName, tc.email)
mock.ExpectQuery(`SELECT id, first_name, last_name, email_address FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1`).
mock.ExpectQuery(`SELECT user_id FROM users WHERE email_address = \? AND is_deleted = 0 LIMIT 1;`).
WithArgs(tc.email).
WillReturnRows(rows)