Skip to content

Commit acfe5d0

Browse files
committed
Add E2E tests
1 parent 74ceb85 commit acfe5d0

File tree

1 file changed

+18
-50
lines changed

1 file changed

+18
-50
lines changed

e2e/utils/e2e_tests_utils.go

Lines changed: 18 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package utils
55
import (
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

217185
func createNpmRepo(t *testing.T) string {

0 commit comments

Comments
 (0)