Skip to content

Commit 119a984

Browse files
committed
chore: renamed endpoint, and added unit-tests
1 parent b4efc0e commit 119a984

File tree

4 files changed

+45
-4
lines changed

4 files changed

+45
-4
lines changed

routers/api/packages/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ func CommonRoutes() *web.Router {
336336
})
337337
}, reqPackageAccess(perm.AccessModeRead))
338338
r.Group("/generic", func() {
339-
r.Get("/{packagename}/list", generic.EnumeratePackageVersions)
339+
r.Get("/{packagename}/list", generic.ListPackageVersions)
340340
r.Group("/{packagename}/{packageversion}", func() {
341341
r.Delete("", reqPackageAccess(perm.AccessModeWrite), generic.DeletePackage)
342342
r.Group("/{filename}", func() {

routers/api/packages/generic/generic.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ func apiError(ctx *context.Context, status int, obj any) {
4949
ctx.PlainText(status, message)
5050
}
5151

52-
// EnumeratePackageVersions lists upload versions and their associated files
53-
func EnumeratePackageVersions(ctx *context.Context) {
52+
// ListPackageVersions lists upload versions and their associated files
53+
func ListPackageVersions(ctx *context.Context) {
5454
pvs, err := packages_model.GetVersionsByPackageName(ctx, ctx.Package.Owner.ID, packages_model.TypeGeneric, ctx.PathParam("packagename"))
5555
if err != nil {
5656
apiError(ctx, http.StatusInternalServerError, err)

tests/integration/api_packages_generic_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package integration
55

66
import (
77
"bytes"
8+
"encoding/json"
89
"fmt"
910
"io"
1011
"net/http"
@@ -15,6 +16,8 @@ import (
1516
user_model "code.gitea.io/gitea/models/user"
1617
"code.gitea.io/gitea/modules/setting"
1718
"code.gitea.io/gitea/modules/test"
19+
"code.gitea.io/gitea/modules/timeutil"
20+
"code.gitea.io/gitea/routers/api/packages/generic"
1821
"code.gitea.io/gitea/tests"
1922

2023
"github.com/stretchr/testify/assert"
@@ -30,7 +33,9 @@ func TestPackageGeneric(t *testing.T) {
3033
filename := "fi-le_na.me"
3134
content := []byte{1, 2, 3}
3235

36+
timestamp := timeutil.TimeStampNow().AsTime().Unix()
3337
url := fmt.Sprintf("/api/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)
38+
listUrl := fmt.Sprintf("/api/packages/%s/generic/%s/list", user.Name, packageName)
3439

3540
t.Run("Upload", func(t *testing.T) {
3641
defer tests.PrintCurrentTest(t)()
@@ -98,6 +103,32 @@ func TestPackageGeneric(t *testing.T) {
98103
})
99104
})
100105

106+
t.Run("List", func(t *testing.T) {
107+
defer tests.PrintCurrentTest(t)()
108+
109+
req := NewRequest(t, "GET", listUrl)
110+
resp := MakeRequest(t, req, http.StatusOK)
111+
112+
var expected []generic.PackageInfo
113+
err := json.Unmarshal(resp.Body.Bytes(), &expected)
114+
assert.NoError(t, err)
115+
116+
assert.Equal(t, len(expected), 1)
117+
assert.Equal(t, len(expected[0].Files), 2)
118+
119+
resPkg := expected[0]
120+
assert.Equal(t, resPkg.Version, packageVersion)
121+
assert.Equal(t, resPkg.DownloadCount, int64(0))
122+
123+
resFile1 := expected[0].Files[0]
124+
assert.Equal(t, resFile1.Name, filename)
125+
assert.GreaterOrEqual(t, resFile1.CreatedUnix, timestamp)
126+
127+
resFile2 := expected[0].Files[1]
128+
assert.Equal(t, resFile2.Name, "dummy.bin")
129+
assert.GreaterOrEqual(t, resFile2.CreatedUnix, timestamp)
130+
})
131+
101132
t.Run("Download", func(t *testing.T) {
102133
defer tests.PrintCurrentTest(t)()
103134

tests/integration/api_packages_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,15 @@ func TestPackageAccess(t *testing.T) {
249249
MakeRequest(t, req, expectedStatus)
250250
}
251251

252+
listPackage := func(doer, owner *user_model.User, expectedStatus int) {
253+
url := fmt.Sprintf("/api/packages/%s/generic/test-package/list", owner.Name)
254+
req := NewRequest(t, "GET", url)
255+
if doer != nil {
256+
req.AddBasicAuth(doer.Name)
257+
}
258+
MakeRequest(t, req, expectedStatus)
259+
}
260+
252261
type Target struct {
253262
Owner *user_model.User
254263
ExpectedStatus int
@@ -339,7 +348,7 @@ func TestPackageAccess(t *testing.T) {
339348
}
340349
})
341350

342-
t.Run("Download", func(t *testing.T) {
351+
t.Run("List/Download", func(t *testing.T) {
343352
defer tests.PrintCurrentTest(t)()
344353

345354
cases := []struct {
@@ -416,6 +425,7 @@ func TestPackageAccess(t *testing.T) {
416425
for _, c := range cases {
417426
for _, target := range c.Targets {
418427
downloadPackage(c.Doer, target.Owner, target.ExpectedStatus)
428+
listPackage(c.Doer, target.Owner, target.ExpectedStatus)
419429
}
420430
}
421431
})

0 commit comments

Comments
 (0)