Skip to content

Commit 82d5deb

Browse files
committed
Create spec from variables
1 parent b6efb65 commit 82d5deb

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

common/spec/specfiles.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package spec
22

33
import (
44
"encoding/json"
5-
65
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
76
"github.com/jfrog/jfrog-client-go/artifactory/services/utils"
87
clientutils "github.com/jfrog/jfrog-client-go/utils"
@@ -39,6 +38,23 @@ func CreateSpecFromFile(specFilePath string, specVars map[string]string) (spec *
3938
return
4039
}
4140

41+
func CreateSpecFromBuildNameAndNumber(buildName, buildNumber string) (*SpecFiles, error) {
42+
if buildName == "" || buildNumber == "" {
43+
return nil, errorutils.CheckErrorf("build name and build number must be provided")
44+
}
45+
46+
buildString := buildName + "/" + buildNumber
47+
specFile := &SpecFiles{
48+
Files: []File{
49+
{
50+
Build: buildString,
51+
},
52+
},
53+
}
54+
55+
return specFile, nil
56+
}
57+
4258
type File struct {
4359
Aql utils.Aql
4460
PathMapping utils.PathMapping

common/spec/specfiles_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package spec
2+
3+
import (
4+
"github.com/stretchr/testify/assert"
5+
"testing"
6+
)
7+
8+
func TestCreateSpecFromVariables(t *testing.T) {
9+
t.Run("Valid Inputs", func(t *testing.T) {
10+
spec, err := CreateSpecFromBuildNameAndNumber("Common-builds", "1.2.0")
11+
12+
assert.NoError(t, err)
13+
assert.NotNil(t, spec)
14+
assert.Equal(t, "Common-builds/1.2.0", spec.Files[0].Build)
15+
})
16+
17+
t.Run("Missing Build Name", func(t *testing.T) {
18+
spec, err := CreateSpecFromBuildNameAndNumber("", "1.2.0")
19+
20+
assert.Error(t, err)
21+
assert.Nil(t, spec)
22+
assert.EqualError(t, err, "build name and build number must be provided")
23+
})
24+
25+
t.Run("Missing Build Number", func(t *testing.T) {
26+
spec, err := CreateSpecFromBuildNameAndNumber("Common-builds", "")
27+
28+
assert.Error(t, err)
29+
assert.Nil(t, spec)
30+
assert.EqualError(t, err, "build name and build number must be provided")
31+
})
32+
33+
t.Run("Empty Build Name and Build Number", func(t *testing.T) {
34+
spec, err := CreateSpecFromBuildNameAndNumber("", "")
35+
36+
assert.Error(t, err)
37+
assert.Nil(t, spec)
38+
assert.EqualError(t, err, "build name and build number must be provided")
39+
})
40+
}

0 commit comments

Comments
 (0)