test: consolidate Go tests (#39962)

Consolidate all Go tests. Coverage is identical to before. Go tests are
around 5% faster while being 7% smaller. No non-test code is touched.
This commit is contained in:
silverwind authored and GitHub committed 2026-10-24 13:48:19 +00:00
1 parent ce7364e215
commit 8abda62312
388 files changed
+18410 -29561

No files matched your search

+87 -154
View File
@@ -67,172 +67,105 @@ func TestBlockUser(t *testing.T) {
return count
}
t.Run("User", func(t *testing.T) {
var blockerID int64 = 16
blockerName := "user16"
blockerToken := getUserToken(t, blockerName, auth_model.AccessTokenScopeWriteUser)
for _, blocker := range []struct {
name string
id int64
username string
}{
{"User", 16, "user16"},
{"Organization", 3, "org3"},
} {
t.Run(blocker.name, func(t *testing.T) {
var blockerToken string
blocksURL := "/api/v1/user/blocks"
counts := []func(*testing.T, int64, int64) int64{countStars, countWatches, countRepositoryTransfers}
if blocker.name == "User" {
blockerToken = getUserToken(t, blocker.username, auth_model.AccessTokenScopeWriteUser)
} else {
blockerToken = getUserToken(t, "user2", auth_model.AccessTokenScopeWriteUser, auth_model.AccessTokenScopeWriteOrganization)
blocksURL = fmt.Sprintf("/api/v1/orgs/%s/blocks", blocker.username)
counts = append(counts, countAssignedIssues)
}
counts = append(counts, countCollaborations)
var blockeeID int64 = 10
blockeeName := "user10"
var blockeeID int64 = 10
blockeeName := "user10"
t.Run("Block", func(t *testing.T) {
req := NewRequest(t, "PUT", "/api/v1/user/blocks/"+blockeeName)
MakeRequest(t, req, http.StatusUnauthorized)
t.Run("Block", func(t *testing.T) {
req := NewRequest(t, "PUT", blocksURL+"/"+blockeeName)
MakeRequest(t, req, http.StatusUnauthorized)
assert.EqualValues(t, 1, countStars(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countWatches(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countRepositoryTransfers(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countCollaborations(t, blockerID, blockeeID))
if blocker.name == "Organization" {
req = NewRequest(t, "PUT", blocksURL+"/user4").
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block member
}
req = NewRequest(t, "GET", "/api/v1/user/blocks/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNotFound)
for _, count := range counts {
assert.EqualValues(t, 1, count(t, blocker.id, blockeeID))
}
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/blocks/%s?reason=test", blockeeName)).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", blocksURL+"/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNotFound)
assert.EqualValues(t, 0, countStars(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countWatches(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countRepositoryTransfers(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countCollaborations(t, blockerID, blockeeID))
req = NewRequest(t, "PUT", fmt.Sprintf("%s/%s?reason=test", blocksURL, blockeeName)).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", "/api/v1/user/blocks/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
for _, count := range counts {
assert.EqualValues(t, 0, count(t, blocker.id, blockeeID))
}
req = NewRequest(t, "PUT", "/api/v1/user/blocks/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block blocked user
req = NewRequest(t, "GET", blocksURL+"/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "PUT", "/api/v1/user/blocks/"+"org3").
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block organization
req = NewRequest(t, "PUT", blocksURL+"/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block blocked user
req = NewRequest(t, "GET", "/api/v1/user/blocks")
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "PUT", blocksURL+"/org3").
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block organization
req = NewRequest(t, "GET", "/api/v1/user/blocks").
AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", blocksURL)
MakeRequest(t, req, http.StatusUnauthorized)
users := DecodeJSON(t, resp, []api.User{})
req = NewRequest(t, "GET", blocksURL).
AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK)
assert.Len(t, users, 1)
assert.Equal(t, blockeeName, users[0].UserName)
users := DecodeJSON(t, resp, []api.User{})
assert.Len(t, users, 1)
assert.Equal(t, blockeeName, users[0].UserName)
})
t.Run("Unblock", func(t *testing.T) {
req := NewRequest(t, "DELETE", blocksURL+"/"+blockeeName)
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "DELETE", blocksURL+"/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "DELETE", blocksURL+"/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "DELETE", blocksURL+"/org3").
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "GET", blocksURL).
AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK)
users := DecodeJSON(t, resp, []api.User{})
assert.Empty(t, users)
})
})
t.Run("Unblock", func(t *testing.T) {
req := NewRequest(t, "DELETE", "/api/v1/user/blocks/"+blockeeName)
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "DELETE", "/api/v1/user/blocks/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "DELETE", "/api/v1/user/blocks/"+blockeeName).
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "DELETE", "/api/v1/user/blocks/"+"org3").
AddTokenAuth(blockerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "GET", "/api/v1/user/blocks").
AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK)
users := DecodeJSON(t, resp, []api.User{})
assert.Empty(t, users)
})
})
t.Run("Organization", func(t *testing.T) {
var blockerID int64 = 3
blockerName := "org3"
doerToken := getUserToken(t, "user2", auth_model.AccessTokenScopeWriteUser, auth_model.AccessTokenScopeWriteOrganization)
var blockeeID int64 = 10
blockeeName := "user10"
t.Run("Block", func(t *testing.T) {
req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName))
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, "user4")).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block member
assert.EqualValues(t, 1, countStars(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countWatches(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countRepositoryTransfers(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countAssignedIssues(t, blockerID, blockeeID))
assert.EqualValues(t, 1, countCollaborations(t, blockerID, blockeeID))
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusNotFound)
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s?reason=test", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusNoContent)
assert.EqualValues(t, 0, countStars(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countWatches(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countRepositoryTransfers(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countAssignedIssues(t, blockerID, blockeeID))
assert.EqualValues(t, 0, countCollaborations(t, blockerID, blockeeID))
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block blocked user
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, "org3")).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusBadRequest) // can't block organization
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/blocks", blockerName))
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/blocks", blockerName)).
AddTokenAuth(doerToken)
resp := MakeRequest(t, req, http.StatusOK)
users := DecodeJSON(t, resp, []api.User{})
assert.Len(t, users, 1)
assert.Equal(t, blockeeName, users[0].UserName)
})
t.Run("Unblock", func(t *testing.T) {
req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName))
MakeRequest(t, req, http.StatusUnauthorized)
req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, blockeeName)).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/%s/blocks/%s", blockerName, "org3")).
AddTokenAuth(doerToken)
MakeRequest(t, req, http.StatusBadRequest)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/blocks", blockerName)).
AddTokenAuth(doerToken)
resp := MakeRequest(t, req, http.StatusOK)
users := DecodeJSON(t, resp, []api.User{})
assert.Empty(t, users)
})
})
}
}