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

+48 -79
View File
@@ -110,49 +110,40 @@ func TestPackageAPI(t *testing.T) {
assert.Equal(t, user.Name, p.Creator.UserName)
})
t.Run("DeleteEntirePackage", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
for _, c := range []struct {
name string
packageName string
suffix string
}{
{"DeleteEntirePackage", "test-package-entire-delete", ""},
{"DeletePackageVersion", "test-package-version-delete", "/1.0.1"},
} {
t.Run(c.name, func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
packageName := "test-package-entire-delete"
for _, version := range []string{"1.0.1", "1.0.2"} {
url := fmt.Sprintf("/api/packages/%s/generic/%s/%s/file.bin", user.Name, packageName, version)
req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})).
AddBasicAuth(user.Name)
MakeRequest(t, req, http.StatusCreated)
}
for _, version := range []string{"1.0.1", "1.0.2"} {
url := fmt.Sprintf("/api/packages/%s/generic/%s/%s/file.bin", user.Name, c.packageName, version)
req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})).
AddBasicAuth(user.Name)
MakeRequest(t, req, http.StatusCreated)
}
req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/generic/%s", user.Name, packageName)).
AddTokenAuth(tokenWritePackage)
MakeRequest(t, req, http.StatusNoContent)
url := fmt.Sprintf("/api/v1/packages/%s/generic/%s", user.Name, c.packageName) + c.suffix
req := NewRequest(t, "DELETE", url).
AddTokenAuth(tokenWritePackage)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s", user.Name, packageName)).
AddTokenAuth(tokenReadPackage)
MakeRequest(t, req, http.StatusNotFound)
})
req = NewRequest(t, "GET", url).
AddTokenAuth(tokenReadPackage)
MakeRequest(t, req, http.StatusNotFound)
t.Run("DeletePackageVersion", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
packageName := "test-package-version-delete"
for _, version := range []string{"1.0.1", "1.0.2"} {
url := fmt.Sprintf("/api/packages/%s/generic/%s/%s/file.bin", user.Name, packageName, version)
req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})).
AddBasicAuth(user.Name)
MakeRequest(t, req, http.StatusCreated)
}
req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/generic/%s/1.0.1", user.Name, packageName)).
AddTokenAuth(tokenWritePackage)
MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/1.0.1", user.Name, packageName)).
AddTokenAuth(tokenReadPackage)
MakeRequest(t, req, http.StatusNotFound)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/1.0.2", user.Name, packageName)).
AddTokenAuth(tokenReadPackage)
MakeRequest(t, req, http.StatusOK)
})
if c.suffix != "" {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/1.0.2", user.Name, c.packageName)).
AddTokenAuth(tokenReadPackage)
MakeRequest(t, req, http.StatusOK)
}
})
}
t.Run("ListPackageVersions", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
@@ -317,6 +308,20 @@ func TestPackageAccess(t *testing.T) {
ExpectedStatus int
}
unauthorizedTargets := []Target{
{admin, http.StatusUnauthorized},
{inactive, http.StatusUnauthorized},
{user, http.StatusUnauthorized},
{limitedUser, http.StatusUnauthorized},
{privateUser, http.StatusUnauthorized},
{privateOrgMember, http.StatusUnauthorized},
{limitedOrgMember, http.StatusUnauthorized},
{publicOrgMember, http.StatusUnauthorized},
{privateOrgNoMember, http.StatusUnauthorized},
{limitedOrgNoMember, http.StatusUnauthorized},
{publicOrgNoMember, http.StatusUnauthorized},
}
t.Run("Upload", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
@@ -345,36 +350,12 @@ func TestPackageAccess(t *testing.T) {
{ // Without credentials no upload should be possible
Doer: nil,
Filename: "nil",
Targets: []Target{
{admin, http.StatusUnauthorized},
{inactive, http.StatusUnauthorized},
{user, http.StatusUnauthorized},
{limitedUser, http.StatusUnauthorized},
{privateUser, http.StatusUnauthorized},
{privateOrgMember, http.StatusUnauthorized},
{limitedOrgMember, http.StatusUnauthorized},
{publicOrgMember, http.StatusUnauthorized},
{privateOrgNoMember, http.StatusUnauthorized},
{limitedOrgNoMember, http.StatusUnauthorized},
{publicOrgNoMember, http.StatusUnauthorized},
},
Targets: unauthorizedTargets,
},
{ // Inactive users can't upload anywhere
Doer: inactive,
Filename: "inactive",
Targets: []Target{
{admin, http.StatusUnauthorized},
{inactive, http.StatusUnauthorized},
{user, http.StatusUnauthorized},
{limitedUser, http.StatusUnauthorized},
{privateUser, http.StatusUnauthorized},
{privateOrgMember, http.StatusUnauthorized},
{limitedOrgMember, http.StatusUnauthorized},
{publicOrgMember, http.StatusUnauthorized},
{privateOrgNoMember, http.StatusUnauthorized},
{limitedOrgNoMember, http.StatusUnauthorized},
{publicOrgNoMember, http.StatusUnauthorized},
},
Targets: unauthorizedTargets,
},
{ // Normal users can upload to self and orgs in which they are members and have package write access
Doer: user,
@@ -445,20 +426,8 @@ func TestPackageAccess(t *testing.T) {
},
},
{ // Inactive users have no access
Doer: inactive,
Targets: []Target{
{admin, http.StatusUnauthorized},
{inactive, http.StatusUnauthorized},
{user, http.StatusUnauthorized},
{limitedUser, http.StatusUnauthorized},
{privateUser, http.StatusUnauthorized},
{privateOrgMember, http.StatusUnauthorized},
{limitedOrgMember, http.StatusUnauthorized},
{publicOrgMember, http.StatusUnauthorized},
{privateOrgNoMember, http.StatusUnauthorized},
{limitedOrgNoMember, http.StatusUnauthorized},
{publicOrgNoMember, http.StatusUnauthorized},
},
Doer: inactive,
Targets: unauthorizedTargets,
},
{ // Normal users can access self, public or limited users/orgs and private orgs in which they are members
Doer: user,