Skip to content

Commit 1e12a2a

Browse files
authored
Fixes semver range parsing for required packages (#423)
Signed-off-by: Mikalai Radchuk <[email protected]>
1 parent cdb99fa commit 1e12a2a

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

internal/catalogmetadata/types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ type Channel struct {
3131

3232
type PackageRequired struct {
3333
property.PackageRequired
34-
SemverRange *bsemver.Range `json:"-"`
34+
SemverRange bsemver.Range `json:"-"`
3535
}
3636

3737
type Bundle struct {
@@ -98,17 +98,17 @@ func (b *Bundle) loadRequiredPackages() error {
9898
if err != nil {
9999
return fmt.Errorf("error determining bundle required packages for bundle %q: %s", b.Name, err)
100100
}
101-
for _, requiredPackage := range requiredPackages {
102-
semverRange, err := bsemver.ParseRange(requiredPackage.VersionRange)
101+
for i := range requiredPackages {
102+
semverRange, err := bsemver.ParseRange(requiredPackages[i].VersionRange)
103103
if err != nil {
104104
return fmt.Errorf(
105105
"error parsing bundle required package semver range for bundle %q (required package %q): %s",
106106
b.Name,
107-
requiredPackage.PackageName,
107+
requiredPackages[i].PackageName,
108108
err,
109109
)
110110
}
111-
requiredPackage.SemverRange = &semverRange
111+
requiredPackages[i].SemverRange = semverRange
112112
}
113113
b.requiredPackages = requiredPackages
114114
}

internal/catalogmetadata/types_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,16 @@ func TestBundleRequiredPackages(t *testing.T) {
123123
} {
124124
t.Run(tt.name, func(t *testing.T) {
125125
packages, err := tt.bundle.RequiredPackages()
126+
assert.Len(t, packages, len(tt.wantRequiredPackages))
127+
for i := range packages {
128+
// SemverRange is a function which is not comparable
129+
// so we just make sure that it is set.
130+
assert.NotNil(t, packages[i].SemverRange)
131+
132+
// And then we set it to nil for ease of further comparisons
133+
packages[i].SemverRange = nil
134+
}
135+
126136
assert.Equal(t, tt.wantRequiredPackages, packages)
127137
if tt.wantErr != "" {
128138
assert.EqualError(t, err, tt.wantErr)

0 commit comments

Comments
 (0)