(t *testing.T)
| 63 | } |
| 64 | |
| 65 | func TestUpdateUserSettingOnlyUpdatesSetting(t *testing.T) { |
| 66 | setupUserUpdateTestState(t) |
| 67 | |
| 68 | user := User{ |
| 69 | Id: 2, |
| 70 | Username: "setting-user", |
| 71 | Password: "password", |
| 72 | Status: common.UserStatusEnabled, |
| 73 | Quota: 1000, |
| 74 | UsedQuota: 20, |
| 75 | RequestCount: 3, |
| 76 | } |
| 77 | require.NoError(t, DB.Create(&user).Error) |
| 78 | |
| 79 | require.NoError(t, DB.Model(&User{}).Where("id = ?", user.Id).Updates(map[string]interface{}{ |
| 80 | "quota": gorm.Expr("quota - ?", 250), |
| 81 | "used_quota": gorm.Expr("used_quota + ?", 250), |
| 82 | "request_count": gorm.Expr("request_count + ?", 1), |
| 83 | }).Error) |
| 84 | |
| 85 | require.NoError(t, UpdateUserSetting(user.Id, dto.UserSetting{Language: "zh"})) |
| 86 | |
| 87 | var got User |
| 88 | require.NoError(t, DB.First(&got, user.Id).Error) |
| 89 | assert.Equal(t, 750, got.Quota) |
| 90 | assert.Equal(t, 270, got.UsedQuota) |
| 91 | assert.Equal(t, 4, got.RequestCount) |
| 92 | assert.Equal(t, "zh", got.GetSetting().Language) |
| 93 | } |
| 94 | |
| 95 | func TestEnsureEmailAvailableRejectsExistingEmailCaseInsensitive(t *testing.T) { |
| 96 | setupUserUpdateTestState(t) |
nothing calls this directly
no test coverage detected