diff --git a/services/user/TestReplaceInactivePrimaryEmail/forgejo_auth_token.yml b/services/user/TestReplaceInactivePrimaryEmail/forgejo_auth_token.yml new file mode 100644 index 0000000000..93a6c184b6 --- /dev/null +++ b/services/user/TestReplaceInactivePrimaryEmail/forgejo_auth_token.yml @@ -0,0 +1,5 @@ +- + id: 1001 + uid: 10 + lookup_key: unique + purpose: user_activation diff --git a/services/user/email_test.go b/services/user/email_test.go index b48936a27e..d2cff22696 100644 --- a/services/user/email_test.go +++ b/services/user/email_test.go @@ -6,6 +6,7 @@ package user import ( "testing" + auth_model "forgejo.org/models/auth" "forgejo.org/models/db" organization_model "forgejo.org/models/organization" "forgejo.org/models/unittest" @@ -123,25 +124,34 @@ func TestAddEmailAddresses(t *testing.T) { } func TestReplaceInactivePrimaryEmail(t *testing.T) { + defer unittest.OverrideFixtures("services/user/TestReplaceInactivePrimaryEmail/")() require.NoError(t, unittest.PrepareTestDatabase()) - email := &user_model.EmailAddress{ - Email: "user9999999@example.com", - UID: 9999999, - } - err := ReplaceInactivePrimaryEmail(db.DefaultContext, "user10@example.com", email) - require.Error(t, err) - assert.True(t, user_model.IsErrUserNotExist(err)) + t.Run("User doesn't exist", func(t *testing.T) { + email := &user_model.EmailAddress{ + Email: "user9999999@example.com", + UID: 9999999, + } + err := ReplaceInactivePrimaryEmail(db.DefaultContext, "user10@example.com", email) + require.Error(t, err) + assert.True(t, user_model.IsErrUserNotExist(err)) + }) - email = &user_model.EmailAddress{ - Email: "user201@example.com", - UID: 10, - } - err = ReplaceInactivePrimaryEmail(db.DefaultContext, "user10@example.com", email) - require.NoError(t, err) + t.Run("Normal", func(t *testing.T) { + unittest.AssertExistsIf(t, true, &auth_model.AuthorizationToken{UID: 10}) - user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 10}) - assert.Equal(t, "user201@example.com", user.Email) + email := &user_model.EmailAddress{ + Email: "user201@example.com", + UID: 10, + } + err := ReplaceInactivePrimaryEmail(db.DefaultContext, "user10@example.com", email) + require.NoError(t, err) + + user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 10}) + assert.Equal(t, "user201@example.com", user.Email) + + unittest.AssertExistsIf(t, false, &auth_model.AuthorizationToken{UID: 10}) + }) } func TestDeleteEmailAddresses(t *testing.T) {