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 }