mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-01 05:36:19 +01:00
Add integration test for user deleting account (#2891)
This commit is contained in:
parent
5abd1d2a68
commit
47f40ccd5e
1 changed files with 45 additions and 2 deletions
|
@ -5,13 +5,26 @@
|
||||||
package integrations
|
package integrations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models"
|
"code.gitea.io/gitea/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestDeleteUser(t *testing.T) {
|
func assertUserDeleted(t *testing.T, userID int64) {
|
||||||
|
models.AssertNotExistsBean(t, &models.User{ID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.Follow{UserID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.Follow{FollowID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.Repository{OwnerID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.Access{UserID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.OrgUser{UID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.IssueUser{UID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.TeamUser{UID: userID})
|
||||||
|
models.AssertNotExistsBean(t, &models.Star{UID: userID})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAdminDeleteUser(t *testing.T) {
|
||||||
prepareTestEnv(t)
|
prepareTestEnv(t)
|
||||||
|
|
||||||
session := loginUser(t, "user1")
|
session := loginUser(t, "user1")
|
||||||
|
@ -22,6 +35,36 @@ func TestDeleteUser(t *testing.T) {
|
||||||
})
|
})
|
||||||
session.MakeRequest(t, req, http.StatusOK)
|
session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
models.AssertNotExistsBean(t, &models.User{ID: 8})
|
assertUserDeleted(t, 8)
|
||||||
models.CheckConsistencyFor(t, &models.User{})
|
models.CheckConsistencyFor(t, &models.User{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUserDeleteAccount(t *testing.T) {
|
||||||
|
prepareTestEnv(t)
|
||||||
|
|
||||||
|
session := loginUser(t, "user8")
|
||||||
|
csrf := GetCSRF(t, session, "/user/settings/delete")
|
||||||
|
urlStr := fmt.Sprintf("/user/settings/delete?password=%s", userPassword)
|
||||||
|
req := NewRequestWithValues(t, "POST", urlStr, map[string]string{
|
||||||
|
"_csrf": csrf,
|
||||||
|
})
|
||||||
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
|
assertUserDeleted(t, 8)
|
||||||
|
models.CheckConsistencyFor(t, &models.User{})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUserDeleteAccountStillOwnRepos(t *testing.T) {
|
||||||
|
prepareTestEnv(t)
|
||||||
|
|
||||||
|
session := loginUser(t, "user2")
|
||||||
|
csrf := GetCSRF(t, session, "/user/settings/delete")
|
||||||
|
urlStr := fmt.Sprintf("/user/settings/delete?password=%s", userPassword)
|
||||||
|
req := NewRequestWithValues(t, "POST", urlStr, map[string]string{
|
||||||
|
"_csrf": csrf,
|
||||||
|
})
|
||||||
|
session.MakeRequest(t, req, http.StatusFound)
|
||||||
|
|
||||||
|
// user should not have been deleted, because the user still owns repos
|
||||||
|
models.AssertExistsAndLoadBean(t, &models.User{ID: 2})
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue