Skip to content

Commit 218bf48

Browse files
committed
add test
1 parent 8cd1338 commit 218bf48

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

internal/exec/version_test.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/cloudposse/atmos/pkg/version"
99
"github.com/golang/mock/gomock"
1010
"github.com/pkg/errors"
11+
"github.com/stretchr/testify/assert"
1112
)
1213

1314
// Mock interfaces generated by mockgen
@@ -194,3 +195,61 @@ func TestIsCheckVersionEnabled(t *testing.T) {
194195
})
195196
}
196197
}
198+
199+
func TestGetLatestVersion(t *testing.T) {
200+
tests := []struct {
201+
name string
202+
version string
203+
latestRelease string
204+
getLatestReleaseErr error
205+
expectedVersion string
206+
expectedOk bool
207+
}{
208+
{
209+
name: "Same version",
210+
version: "v1.0.0",
211+
latestRelease: "v1.0.0",
212+
expectedVersion: "",
213+
expectedOk: false,
214+
},
215+
{
216+
name: "Newer version available",
217+
version: "v1.0.0",
218+
latestRelease: "v1.1.0",
219+
expectedVersion: "1.1.0",
220+
expectedOk: true,
221+
},
222+
{
223+
name: "Error fetching latest release",
224+
version: "v1.0.0",
225+
getLatestReleaseErr: errors.New("error"),
226+
expectedVersion: "",
227+
expectedOk: false,
228+
},
229+
}
230+
231+
for _, tt := range tests {
232+
t.Run(tt.name, func(t *testing.T) {
233+
ctrl := gomock.NewController(t)
234+
oldVersion := version.Version
235+
version.Version = tt.version
236+
t.Cleanup(func() {
237+
version.Version = oldVersion // Reset to a known state
238+
})
239+
defer ctrl.Finish()
240+
241+
mockExec := NewMockVersionExecutor(ctrl)
242+
mockExec.EXPECT().GetLatestGitHubRepoRelease().
243+
Return(tt.latestRelease, tt.getLatestReleaseErr).AnyTimes()
244+
245+
v := versionExec{
246+
atmosConfig: &schema.AtmosConfiguration{},
247+
getLatestGitHubRepoRelease: mockExec.GetLatestGitHubRepoRelease,
248+
}
249+
250+
version, ok := v.GetLatestVersion(true)
251+
assert.Equal(t, tt.expectedVersion, version, "Expected version mismatch")
252+
assert.Equal(t, tt.expectedOk, ok, "Expected ok mismatch")
253+
})
254+
}
255+
}

0 commit comments

Comments
 (0)