@@ -71,6 +71,44 @@ func TestPackageAPI(t *testing.T) {
7171 assert .Equal (t , packageVersion , p .Version )
7272 assert .NotNil (t , p .Creator )
7373 assert .Equal (t , user .Name , p .Creator .UserName )
74+
75+ t .Run ("RepositoryLink" , func (t * testing.T ) {
76+ defer PrintCurrentTest (t )()
77+
78+ p , err := packages_model .GetPackageByName (db .DefaultContext , user .ID , packages_model .TypeGeneric , packageName )
79+ assert .NoError (t , err )
80+
81+ // no repository link
82+ req := NewRequest (t , "GET" , fmt .Sprintf ("/api/v1/packages/%s/generic/%s/%s?token=%s" , user .Name , packageName , packageVersion , token ))
83+ resp := MakeRequest (t , req , http .StatusOK )
84+
85+ var ap1 * api.Package
86+ DecodeJSON (t , resp , & ap1 )
87+ assert .Nil (t , ap1 .Repository )
88+
89+ // link to public repository
90+ assert .NoError (t , packages_model .SetRepositoryLink (db .DefaultContext , p .ID , 1 ))
91+
92+ req = NewRequest (t , "GET" , fmt .Sprintf ("/api/v1/packages/%s/generic/%s/%s?token=%s" , user .Name , packageName , packageVersion , token ))
93+ resp = MakeRequest (t , req , http .StatusOK )
94+
95+ var ap2 * api.Package
96+ DecodeJSON (t , resp , & ap2 )
97+ assert .NotNil (t , ap2 .Repository )
98+ assert .EqualValues (t , 1 , ap2 .Repository .ID )
99+
100+ // link to private repository
101+ assert .NoError (t , packages_model .SetRepositoryLink (db .DefaultContext , p .ID , 2 ))
102+
103+ req = NewRequest (t , "GET" , fmt .Sprintf ("/api/v1/packages/%s/generic/%s/%s?token=%s" , user .Name , packageName , packageVersion , token ))
104+ resp = MakeRequest (t , req , http .StatusOK )
105+
106+ var ap3 * api.Package
107+ DecodeJSON (t , resp , & ap3 )
108+ assert .Nil (t , ap3 .Repository )
109+
110+ assert .NoError (t , packages_model .UnlinkRepositoryFromAllPackages (db .DefaultContext , 2 ))
111+ })
74112 })
75113
76114 t .Run ("ListPackageFiles" , func (t * testing.T ) {
0 commit comments