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  }