Skip to content

Commit 9bcd6e9

Browse files
committed
Add E2E tests
1 parent 8ef8b60 commit 9bcd6e9

File tree

3 files changed

+84
-47
lines changed

3 files changed

+84
-47
lines changed

e2e/e2e_tests_runner.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ const (
1919
testJfrogTokenEnvVar = "JFROG_APPTRUST_CLI_TESTS_JFROG_ACCESS_TOKEN"
2020
)
2121

22+
type testPackageResources struct {
23+
packageType string
24+
packageName string
25+
packageVersion string
26+
packagePath string
27+
buildName string
28+
buildNumber string
29+
}
30+
2231
var (
2332
serverDetails *coreConfig.ServerDetails
2433
artifactoryServicesManager artifactory.ArtifactoryServicesManager
@@ -28,13 +37,7 @@ var (
2837

2938
testProjectKey string
3039
testRepoKey string
31-
32-
testPackageType string
33-
testPackageName string
34-
testPackageVersion string
35-
testPackagePath string
36-
testBuildName string
37-
testBuildNumber string
40+
testPackageRes *testPackageResources
3841
)
3942

4043
func loadCredentials() {
@@ -65,10 +68,10 @@ func GetTestProjectKey(t *testing.T) string {
6568
return testProjectKey
6669
}
6770

68-
func getTestPackage(t *testing.T) (pkgType, pkgName, pkgVersion, pkgPath string) {
71+
func getTestPackage(t *testing.T) *testPackageResources {
6972
// Upload the test package to Artifactory if not already done
70-
if testPackageName == "" {
73+
if testPackageRes.packageName == "" {
7174
uploadPackageToArtifactory(t)
7275
}
73-
return testPackageType, testPackageName, testPackageVersion, testPackagePath
76+
return testPackageRes
7477
}

e2e/e2e_tests_utils.go

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,22 @@ func uploadPackageToArtifactory(t *testing.T) {
137137
err = summary.ArtifactsDetailsReader.NextRecord(artifactDetails)
138138
require.NoError(t, err)
139139

140-
testPackageType = "npm"
141-
testPackageName = "@gpizza/pizza-frontend"
142-
testPackageVersion = "1.0.0"
143-
testPackagePath = targetPath
140+
packageName := "@gpizza/pizza-frontend"
141+
packageVersion := "1.0.0"
144142

145143
// Wait for the package to be indexed in Artifactory
146-
waitForPackageIndexing(t, testPackageName, testPackageVersion)
144+
waitForPackageIndexing(t, packageName, packageVersion)
145+
146+
testPackageRes = &testPackageResources{
147+
packageType: "npm",
148+
packageName: packageName,
149+
packageVersion: packageVersion,
150+
packagePath: targetPath,
151+
buildName: buildName,
152+
buildNumber: buildNumber,
153+
}
147154

148-
createBuild(t, buildName, buildNumber, artifactDetails.Checksums.Sha256)
155+
publishBuild(t, buildName, buildNumber, artifactDetails.Checksums.Sha256)
149156
}
150157

151158
func waitForPackageIndexing(t *testing.T, packageName, packageVersion string) {
@@ -236,7 +243,7 @@ func getArtifactoryServicesManager(t *testing.T) artifactory.ArtifactoryServices
236243
return artifactoryServicesManager
237244
}
238245

239-
func createBuild(t *testing.T, buildName, buildNumber, sha256 string) {
246+
func publishBuild(t *testing.T, buildName, buildNumber, sha256 string) {
240247
buildInfo := &buildinfo.BuildInfo{
241248
Name: buildName,
242249
Number: buildNumber,
@@ -246,7 +253,7 @@ func createBuild(t *testing.T, buildName, buildNumber, sha256 string) {
246253
Id: "build-module",
247254
Artifacts: []buildinfo.Artifact{
248255
{
249-
Name: testPackageName,
256+
Name: testPackageRes.packageName,
250257
Checksum: buildinfo.Checksum{
251258
Sha256: sha256,
252259
},
@@ -260,17 +267,14 @@ func createBuild(t *testing.T, buildName, buildNumber, sha256 string) {
260267
require.NoError(t, err)
261268
require.NotNil(t, summary)
262269
require.True(t, summary.IsSucceeded())
263-
264-
testBuildName = buildName
265-
testBuildNumber = buildNumber
266270
}
267271

268272
func deleteBuild() {
269-
if testBuildName == "" {
273+
if testPackageRes == nil {
270274
return
271275
}
272276

273-
err := artifactoryServicesManager.DeleteBuildInfo(&buildinfo.BuildInfo{Name: testBuildName, Number: testBuildNumber}, "", 1)
277+
err := artifactoryServicesManager.DeleteBuildInfo(&buildinfo.BuildInfo{Name: testPackageRes.buildName, Number: testPackageRes.buildNumber}, "", 1)
274278
if err != nil {
275279
log.Error("Failed to delete build-info", err)
276280
}

e2e/version_test.go

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ func TestCreateVersion_Package(t *testing.T) {
2020
createBasicApplication(t, appKey)
2121
defer deleteApplication(t, appKey)
2222

23-
packageType, packageName, packageVersion, _ := getTestPackage(t)
23+
testPackage := getTestPackage(t)
2424
version := "1.0.0"
2525

2626
// Execute
27-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
27+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
28+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
2829
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
2930
require.NoError(t, err)
3031
defer deleteVersion(t, appKey, version)
@@ -41,11 +42,11 @@ func TestCreateVersion_Artifact(t *testing.T) {
4142
createBasicApplication(t, appKey)
4243
defer deleteApplication(t, appKey)
4344

44-
_, _, _, packagePath := getTestPackage(t)
45+
testPackage := getTestPackage(t)
4546
version := "1.0.1"
4647

4748
// Execute
48-
artifactFlag := fmt.Sprintf("--source-type-artifacts=path=%s", packagePath)
49+
artifactFlag := fmt.Sprintf("--source-type-artifacts=path=%s", testPackage.packagePath)
4950
err := AppTrustCli.Exec("vc", appKey, version, artifactFlag)
5051
require.NoError(t, err)
5152
defer deleteVersion(t, appKey, version)
@@ -62,9 +63,10 @@ func TestCreateVersion_ApplicationVersion(t *testing.T) {
6263
createBasicApplication(t, sourceAppKey)
6364
defer deleteApplication(t, sourceAppKey)
6465

65-
packageType, packageName, packageVersion, _ := getTestPackage(t)
66+
testPackage := getTestPackage(t)
6667
sourceVersion := "1.0.2"
67-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
68+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
69+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
6870
err := AppTrustCli.Exec("vc", sourceAppKey, sourceVersion, packageFlag)
6971
require.NoError(t, err)
7072
defer deleteVersion(t, sourceAppKey, sourceVersion)
@@ -102,7 +104,7 @@ func TestCreateVersion_ReleaseBundle(t *testing.T) {
102104
require.NoError(t, err)
103105

104106
projectKey := GetTestProjectKey(t)
105-
packageType, packageName, packageVersion, _ := getTestPackage(t)
107+
testPackage := getTestPackage(t)
106108
bundleName := generateUniqueKey("apptrust-cli-tests-rb")
107109
bundleVersion := "1.0.0"
108110

@@ -113,9 +115,9 @@ func TestCreateVersion_ReleaseBundle(t *testing.T) {
113115

114116
source := services.CreateFromPackagesSource{Packages: []services.PackageSource{
115117
{
116-
PackageName: packageName,
117-
PackageVersion: packageVersion,
118-
PackageType: packageType,
118+
PackageName: testPackage.packageName,
119+
PackageVersion: testPackage.packageVersion,
120+
PackageType: testPackage.packageType,
119121
RepositoryKey: testRepoKey,
120122
},
121123
}}
@@ -141,18 +143,41 @@ func TestCreateVersion_ReleaseBundle(t *testing.T) {
141143
assertVersionContent(t, versionContent, statusCode, appKey, version)
142144
}
143145

146+
func TestCreateVersion_Build(t *testing.T) {
147+
// Prepare
148+
appKey := generateUniqueKey("app-version-create-build")
149+
createBasicApplication(t, appKey)
150+
defer deleteApplication(t, appKey)
151+
152+
// Make sure to upload a package associated with a build
153+
testPackage := getTestPackage(t)
154+
155+
version := "1.0.10"
156+
157+
// Execute
158+
buildInfoFlag := fmt.Sprintf("--source-type-builds=name=%s, id=%s", testPackage.buildName, testPackage.buildNumber)
159+
err := AppTrustCli.Exec("vc", appKey, version, buildInfoFlag)
160+
require.NoError(t, err)
161+
defer deleteVersion(t, appKey, version)
162+
163+
// Assert
164+
versionContent, statusCode, err := getApplicationVersion(appKey, version)
165+
require.NoError(t, err)
166+
assertVersionContent(t, versionContent, statusCode, appKey, version)
167+
}
168+
144169
func assertVersionContent(t *testing.T, versionContent *versionContentResponse, statusCode int, appKey, version string) {
145170
assert.Equal(t, http.StatusOK, statusCode)
146171
require.NotNil(t, versionContent)
147172
assert.Equal(t, appKey, versionContent.ApplicationKey)
148173
assert.Equal(t, version, versionContent.Version)
149174
assert.Equal(t, "COMPLETED", versionContent.Status)
150175
assert.Len(t, versionContent.Releasables, 1)
151-
assert.Equal(t, testPackageType, versionContent.Releasables[0].PackageType)
152-
assert.Equal(t, testPackageName, versionContent.Releasables[0].Name)
153-
assert.Equal(t, testPackageVersion, versionContent.Releasables[0].Version)
176+
assert.Equal(t, testPackageRes.packageType, versionContent.Releasables[0].PackageType)
177+
assert.Equal(t, testPackageRes.packageName, versionContent.Releasables[0].Name)
178+
assert.Equal(t, testPackageRes.packageVersion, versionContent.Releasables[0].Version)
154179
assert.Len(t, versionContent.Releasables[0].Artifacts, 1)
155-
assert.Contains(t, testPackagePath, versionContent.Releasables[0].Artifacts[0].Path)
180+
assert.Contains(t, testPackageRes.packagePath, versionContent.Releasables[0].Artifacts[0].Path)
156181
}
157182

158183
func TestUpdateVersion(t *testing.T) {
@@ -161,11 +186,12 @@ func TestUpdateVersion(t *testing.T) {
161186
createBasicApplication(t, appKey)
162187
defer deleteApplication(t, appKey)
163188

164-
packageType, packageName, packageVersion, _ := getTestPackage(t)
189+
testPackage := getTestPackage(t)
165190
version := "1.0.4"
166191

167192
// Create a version first
168-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
193+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
194+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
169195
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
170196
require.NoError(t, err)
171197
defer deleteVersion(t, appKey, version)
@@ -191,11 +217,12 @@ func TestDeleteVersion(t *testing.T) {
191217
createBasicApplication(t, appKey)
192218
defer deleteApplication(t, appKey)
193219

194-
packageType, packageName, packageVersion, _ := getTestPackage(t)
220+
testPackage := getTestPackage(t)
195221
version := "1.0.5"
196222

197223
// Create a version first
198-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
224+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
225+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
199226
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
200227
require.NoError(t, err)
201228

@@ -221,11 +248,12 @@ func TestPromoteVersion(t *testing.T) {
221248
createBasicApplication(t, appKey)
222249
defer deleteApplication(t, appKey)
223250

224-
packageType, packageName, packageVersion, _ := getTestPackage(t)
251+
testPackage := getTestPackage(t)
225252
version := "1.0.6"
226253

227254
// Create a version first
228-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
255+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
256+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
229257
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
230258
require.NoError(t, err)
231259
defer deleteVersion(t, appKey, version)
@@ -251,11 +279,12 @@ func TestReleaseVersion(t *testing.T) {
251279
createBasicApplication(t, appKey)
252280
defer deleteApplication(t, appKey)
253281

254-
packageType, packageName, packageVersion, _ := getTestPackage(t)
282+
testPackage := getTestPackage(t)
255283
version := "1.0.7"
256284

257285
// Create a version first
258-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
286+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
287+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
259288
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
260289
require.NoError(t, err)
261290
defer deleteVersion(t, appKey, version)
@@ -280,11 +309,12 @@ func TestRollbackVersion(t *testing.T) {
280309
createBasicApplication(t, appKey)
281310
defer deleteApplication(t, appKey)
282311

283-
packageType, packageName, packageVersion, _ := getTestPackage(t)
312+
testPackage := getTestPackage(t)
284313
version := "1.0.8"
285314

286315
// Create a version first
287-
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s", packageType, packageName, packageVersion, testRepoKey)
316+
packageFlag := fmt.Sprintf("--source-type-packages=type=%s, name=%s, version=%s, repo-key=%s",
317+
testPackage.packageType, testPackage.packageName, testPackage.packageVersion, testRepoKey)
288318
err := AppTrustCli.Exec("vc", appKey, version, packageFlag)
289319
require.NoError(t, err)
290320
defer deleteVersion(t, appKey, version)

0 commit comments

Comments
 (0)