github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/updater/updater_test.go (about) 1 package updater 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func newAvailableUpdate(channel, version string) *AvailableUpdate { 10 return NewAvailableUpdate(channel, version, "platform", "path/to/zipfile.zip", "123456", "") 11 } 12 13 func TestUpdateNotNeeded(t *testing.T) { 14 tests := []struct { 15 Name string 16 Origin *Origin 17 AvailableUpdate *AvailableUpdate 18 IsUseful bool 19 }{ 20 { 21 Name: "same-version", 22 Origin: &Origin{Channel: "master", Version: "1.2.3"}, 23 AvailableUpdate: newAvailableUpdate("master", "1.2.3"), 24 IsUseful: false, 25 }, 26 { 27 Name: "updated-version", 28 Origin: &Origin{Channel: "master", Version: "2.3.4"}, 29 AvailableUpdate: newAvailableUpdate("master", "2.3.5"), 30 IsUseful: true, 31 }, 32 { 33 Name: "check-different-channel", 34 Origin: &Origin{Channel: "master", Version: "3.4.5"}, 35 AvailableUpdate: newAvailableUpdate("beta", "3.4.5"), 36 IsUseful: true, 37 }, 38 { 39 Name: "empty AvailableUpdate", 40 Origin: &Origin{"master", "5.6.7"}, 41 AvailableUpdate: &AvailableUpdate{}, 42 IsUseful: false, 43 }, 44 } 45 46 for _, tt := range tests { 47 t.Run(tt.Name, func(t *testing.T) { 48 upd := NewUpdateInstallerByOrigin(nil, tt.Origin, tt.AvailableUpdate) 49 assert.Equal(t, tt.IsUseful, upd.ShouldInstall()) 50 }) 51 } 52 }