@@ -5,7 +5,6 @@ package utils
55import (
66 "encoding/json"
77 "fmt"
8- "io"
98 "net/http"
109 "path/filepath"
1110 "runtime"
@@ -143,8 +142,8 @@ func uploadPackageToArtifactory(t *testing.T) {
143142 packageName := "@gpizza/pizza-frontend"
144143 packageVersion := "1.0.0"
145144
146- // Wait for the package to be indexed in Artifactory
147- waitForPackageIndexing ( t , packageName , packageVersion , repoKey )
145+ // Reindex the repo for the package to be available
146+ reindexRepo ( t , repoKey )
148147
149148 testPackageRes = & TestPackageResources {
150149 PackageType : "npm" ,
@@ -159,59 +158,28 @@ func uploadPackageToArtifactory(t *testing.T) {
159158 publishBuild (t , buildName , buildNumber , artifactDetails .Checksums .Sha256 )
160159}
161160
162- func waitForPackageIndexing (t * testing.T , packageName , packageVersion , repoKey string ) {
163- found := false
164- timeout := time .After (5 * time .Minute )
165- log .Info (fmt .Sprintf ("Waiting up to 5 minutes for package indexing on %s" , serverDetails .Url ))
161+ func reindexRepo (t * testing.T , repoKey string ) {
162+ log .Info (fmt .Sprintf ("Reindexing repository %s" , repoKey ))
166163
167- query := fmt .Sprintf (`{"query ": "query { versions (first: 100, filter: {name: \"%s\", repositoriesIn: [{name: \ "%s\"}]}) { edges { node { package { name }}}}}"}` , packageVersion , repoKey )
164+ query := fmt .Sprintf (`{"paths ": [ "%s"]}` , repoKey )
168165
169166 client := & http.Client {
170167 Timeout : 10 * time .Second ,
171168 }
172169
173- for ! found {
174- select {
175- case <- timeout :
176- log .Warn ("Timeout reached waiting for package indexing" )
177- require .FailNow (t , "Package indexing timeout: package %s was not indexed within 5 minutes" , packageName )
178- default :
179- metadataUrl := serverDetails .Url + "metadata/api/v1/query"
180- req , err := http .NewRequest (http .MethodPost , metadataUrl , strings .NewReader (query ))
181- if err != nil {
182- log .Error ("Error creating request:" , err )
183- break
184- }
185- req .Header .Set ("Content-Type" , "application/json" )
186- req .Header .Set ("Authorization" , "Bearer " + serverDetails .AccessToken )
187-
188- resp , err := client .Do (req )
189- if err != nil {
190- log .Error ("Error querying packages:" , err )
191- break
192- }
193-
194- body , err := io .ReadAll (resp .Body )
195- if err != nil {
196- log .Error ("Error reading response body:" , err )
197- break
198- }
199- err = resp .Body .Close ()
200- if err != nil {
201- log .Debug ("Error reading response body:" , err )
202- break
203- }
204-
205- stringBody := string (body )
206- if strings .Contains (stringBody , packageName ) {
207- log .Info (fmt .Sprintf ("Package %s found and indexed" , packageName ))
208- found = true
209- } else {
210- log .Debug (fmt .Sprintf ("Package %s not found yet, retrying in 2 seconds" , packageName ))
211- time .Sleep (2 * time .Second )
212- }
213- }
214- }
170+ metadataUrl := serverDetails .GetArtifactoryUrl () + "api/metadata_server/reindex?async=false"
171+ req , err := http .NewRequest (http .MethodPost , metadataUrl , strings .NewReader (query ))
172+ require .NoError (t , err )
173+ req .Header .Set ("Content-Type" , "application/json" )
174+ req .Header .Set ("Authorization" , "Bearer " + serverDetails .AccessToken )
175+
176+ resp , err := client .Do (req )
177+ require .NoError (t , err )
178+ defer func () {
179+ err = resp .Body .Close ()
180+ require .NoError (t , err )
181+ }()
182+ require .Equal (t , http .StatusOK , resp .StatusCode )
215183}
216184
217185func createNpmRepo (t * testing.T ) string {
0 commit comments