github.com/getgauge/gauge@v1.6.9/plugin/install/check_test.go (about)

     1  /*----------------------------------------------------------------
     2   *  Copyright (c) ThoughtWorks, Inc.
     3   *  Licensed under the Apache License, Version 2.0
     4   *  See LICENSE in the project root for license information.
     5   *----------------------------------------------------------------*/
     6  
     7  package install
     8  
     9  import (
    10  	"github.com/getgauge/gauge/version"
    11  	. "gopkg.in/check.v1"
    12  )
    13  
    14  var _ = Suite(&MySuite{})
    15  
    16  func (s *MySuite) TestCheckGaugeUpdateWhenThereIsAnUpdate(c *C) {
    17  	getLatestGaugeVersion = func(url string) (string, error) {
    18  		return "0.1.0", nil
    19  	}
    20  	version.CurrentGaugeVersion = &version.Version{Major: 0, Minor: 0, Patch: 1}
    21  	updateInfo := checkGaugeUpdate()[0]
    22  	c.Assert(updateInfo.CompatibleVersion, Equals, "0.1.0")
    23  	c.Assert(updateInfo.Name, Equals, "Gauge")
    24  }
    25  
    26  func (s *MySuite) TestCheckGaugeUpdateWhenThereIsNoUpdate(c *C) {
    27  	getLatestGaugeVersion = func(url string) (string, error) {
    28  		return "0.1.0", nil
    29  	}
    30  	version.CurrentGaugeVersion = &version.Version{Major: 0, Minor: 2, Patch: 0}
    31  	updateInfos := checkGaugeUpdate()
    32  	c.Assert(len(updateInfos), Equals, 0)
    33  }
    34  
    35  func (s *MySuite) TestCreatePluginUpdateDetailWhenThereIsAnUpdate(c *C) {
    36  	version.CurrentGaugeVersion = &version.Version{Major: 0, Minor: 1, Patch: 1}
    37  	ruby := "ruby"
    38  	i := installDescription{Name: ruby, Versions: []versionInstallDescription{versionInstallDescription{Version: "0.1.1", GaugeVersionSupport: version.VersionSupport{Minimum: "0.1.0", Maximum: "0.1.2"}}}}
    39  	updateDetails := createPluginUpdateDetail("0.1.0", i)
    40  	c.Assert(len(updateDetails), Equals, 1)
    41  	c.Assert(updateDetails[0].Name, Equals, ruby)
    42  	c.Assert(updateDetails[0].CompatibleVersion, Equals, "0.1.1")
    43  	c.Assert(updateDetails[0].Message, Equals, "Run 'gauge update ruby'")
    44  }
    45  
    46  func (s *MySuite) TestCreatePluginUpdateDetailWhenThereIsNoUpdate(c *C) {
    47  	version.CurrentGaugeVersion = &version.Version{Major: 0, Minor: 1, Patch: 1}
    48  	ruby := "ruby"
    49  	i := installDescription{Name: ruby, Versions: []versionInstallDescription{versionInstallDescription{Version: "0.1.0", GaugeVersionSupport: version.VersionSupport{Minimum: "0.1.0", Maximum: "0.1.2"}}}}
    50  	updateDetails := createPluginUpdateDetail("0.1.0", i)
    51  	c.Assert(len(updateDetails), Equals, 0)
    52  }
    53  
    54  func (s *MySuite) TestGetGaugeVersionFromURL(c *C) {
    55  	url := `https://github.com/getgauge/gauge/releases/tag/v1.0.4`
    56  
    57  	v, err := getGaugeVersionFromURL(url)
    58  
    59  	c.Assert(err, Equals, nil)
    60  	c.Assert(v, Equals, "1.0.4")
    61  }
    62  
    63  func (s *MySuite) TestCreatePluginUpdateDetailForNightly(c *C) {
    64  	version.CurrentGaugeVersion = &version.Version{Major: 0, Minor: 1, Patch: 1}
    65  	ruby := "ruby"
    66  	i := installDescription{Name: ruby, Versions: []versionInstallDescription{versionInstallDescription{Version: "0.1.1.nightly.2050-02-01", GaugeVersionSupport: version.VersionSupport{Minimum: "0.1.0", Maximum: "0.1.2"}}}}
    67  	updateDetails := createPluginUpdateDetail("0.1.0", i)
    68  	c.Assert(len(updateDetails), Equals, 0)
    69  }