@@ -13,6 +13,8 @@ import (
1313
1414 "code.gitea.io/gitea/models/db"
1515 "code.gitea.io/gitea/models/packages"
16+ packages_model "code.gitea.io/gitea/models/packages"
17+ repo_model "code.gitea.io/gitea/models/repo"
1618 "code.gitea.io/gitea/models/unittest"
1719 user_model "code.gitea.io/gitea/models/user"
1820 composer_module "code.gitea.io/gitea/modules/packages/composer"
@@ -215,8 +217,40 @@ func TestPackageComposer(t *testing.T) {
215217 assert .Equal (t , packageAuthor , pkgs [0 ].Authors [0 ].Name )
216218 assert .Equal (t , "zip" , pkgs [0 ].Dist .Type )
217219 assert .Equal (t , "4f5fa464c3cb808a1df191dbf6cb75363f8b7072" , pkgs [0 ].Dist .Checksum )
218- // TODO: add a test for repository field after link package to a repository via API is implemented
219220 assert .Len (t , pkgs [0 ].Bin , 1 )
220221 assert .Equal (t , packageBin , pkgs [0 ].Bin [0 ])
222+
223+ // Test package linked to repository
224+ repo1 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 1 })
225+ pvs , err := packages .GetVersionsByPackageType (db .DefaultContext , user .ID , packages .TypeComposer )
226+ assert .NoError (t , err )
227+ assert .Len (t , pvs , 1 )
228+
229+ err = packages_model .SetRepositoryLink (db .DefaultContext , pvs [0 ].ID , repo1 .ID )
230+ assert .NoError (t , err )
231+
232+ req = NewRequest (t , "GET" , fmt .Sprintf ("%s/p2/%s/%s.json" , url , vendorName , projectName )).
233+ AddBasicAuth (user .Name )
234+ resp = MakeRequest (t , req , http .StatusOK )
235+
236+ result = composer.PackageMetadataResponse {}
237+ DecodeJSON (t , resp , & result )
238+
239+ assert .Contains (t , result .Packages , packageName )
240+ pkgs = result .Packages [packageName ]
241+ assert .Len (t , pkgs , 1 )
242+ assert .Equal (t , packageName , pkgs [0 ].Name )
243+ assert .Equal (t , packageVersion , pkgs [0 ].Version )
244+ assert .Equal (t , packageType , pkgs [0 ].Type )
245+ assert .Equal (t , packageDescription , pkgs [0 ].Description )
246+ assert .Len (t , pkgs [0 ].Authors , 1 )
247+ assert .Equal (t , packageAuthor , pkgs [0 ].Authors [0 ].Name )
248+ assert .Equal (t , "zip" , pkgs [0 ].Dist .Type )
249+ assert .Equal (t , "4f5fa464c3cb808a1df191dbf6cb75363f8b7072" , pkgs [0 ].Dist .Checksum )
250+ assert .Len (t , pkgs [0 ].Bin , 1 )
251+ assert .Equal (t , packageBin , pkgs [0 ].Bin [0 ])
252+ assert .Equal (t , repo1 .HTMLURL (), pkgs [0 ].Source .URL )
253+ assert .Equal (t , "git" , pkgs [0 ].Source .Type )
254+ assert .Equal (t , packageVersion , pkgs [0 ].Source .Reference )
221255 })
222256}
0 commit comments