mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-22 12:43:39 +09:00
enhance(packages): implement npm single-version API and add per-version repository (#39267)
Signed-off-by: silverwind <me@silverwind.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
co-authored by
wxiaoguang
Lunny Xiao
parent
d93bd06d0c
commit
459fc13783
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
packages_model "gitea.dev/models/packages"
|
||||
user_model "gitea.dev/models/user"
|
||||
"gitea.dev/modules/json"
|
||||
npm_module "gitea.dev/modules/packages/npm"
|
||||
"gitea.dev/modules/timeutil"
|
||||
|
||||
@@ -17,13 +18,14 @@ import (
|
||||
)
|
||||
|
||||
func TestCreatePackageMetadataResponse(t *testing.T) {
|
||||
descriptor := func(v string, publishedUnix int64) *packages_model.PackageDescriptor {
|
||||
repository := npm_module.Repository{Type: "git", URL: "https://gitea.dev/alice/test.git"}
|
||||
descriptor := func(v string, publishedUnix int64, repo npm_module.Repository) *packages_model.PackageDescriptor {
|
||||
return &packages_model.PackageDescriptor{
|
||||
Package: &packages_model.Package{Name: "@scope/test"},
|
||||
Owner: &user_model.User{Name: "alice"},
|
||||
Version: &packages_model.PackageVersion{Version: v, CreatedUnix: timeutil.TimeStamp(publishedUnix)},
|
||||
SemVer: version.Must(version.NewVersion(v)),
|
||||
Metadata: &npm_module.Metadata{Keywords: []string{"gitea"}},
|
||||
Metadata: &npm_module.Metadata{Keywords: []string{"gitea"}, Repository: repo},
|
||||
Files: []*packages_model.PackageFileDescriptor{{
|
||||
File: &packages_model.PackageFile{LowerName: "test-" + v + ".tgz"},
|
||||
Blob: &packages_model.PackageBlob{},
|
||||
@@ -32,8 +34,8 @@ func TestCreatePackageMetadataResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
result := createPackageMetadataResponse("https://gitea.dev/api/packages/alice/npm", []*packages_model.PackageDescriptor{
|
||||
descriptor("1.1.0", 1000),
|
||||
descriptor("1.0.0", 2000),
|
||||
descriptor("1.1.0", 1000, npm_module.Repository{}),
|
||||
descriptor("1.0.0", 2000, repository),
|
||||
})
|
||||
|
||||
assert.Equal(t, map[string]time.Time{
|
||||
@@ -50,4 +52,15 @@ func TestCreatePackageMetadataResponse(t *testing.T) {
|
||||
"https://gitea.dev/api/packages/alice/npm/@scope%2Ftest/-/1.0.0/test-1.0.0.tgz",
|
||||
result.Versions["1.0.0"].Dist.Tarball,
|
||||
)
|
||||
assert.Equal(t, repository, result.Versions["1.0.0"].Repository)
|
||||
|
||||
withoutRepository, err := json.Marshal(result.Versions["1.1.0"])
|
||||
assert.NoError(t, err)
|
||||
assert.NotContains(t, string(withoutRepository), `"repository"`)
|
||||
|
||||
raw, err := json.Marshal(result)
|
||||
assert.NoError(t, err)
|
||||
doc := map[string]any{}
|
||||
assert.NoError(t, json.Unmarshal(raw, &doc))
|
||||
assert.NotContains(t, doc, "repository")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user