github.com/jfrog/jfrog-cli-core/v2@v2.52.0/artifactory/commands/buildinfo/publish_test.go (about)

     1  package buildinfo
     2  
     3  import (
     4  	"strconv"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/jfrog/jfrog-cli-core/v2/common/build"
     9  	"github.com/jfrog/jfrog-cli-core/v2/utils/config"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestPrintBuildInfoLink(t *testing.T) {
    14  	timeNow := time.Now()
    15  	buildTime := strconv.FormatInt(timeNow.UnixNano()/1000000, 10)
    16  	var linkTypes = []struct {
    17  		majorVersion  int
    18  		buildTime     time.Time
    19  		buildInfoConf *build.BuildConfiguration
    20  		serverDetails config.ServerDetails
    21  		expected      string
    22  	}{
    23  		// Test platform URL
    24  		{5, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    25  			config.ServerDetails{Url: "http://localhost:8081/"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"},
    26  		{6, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    27  			config.ServerDetails{Url: "http://localhost:8081/"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"},
    28  		{7, timeNow, build.NewBuildConfiguration("test", "1", "6", ""),
    29  			config.ServerDetails{Url: "http://localhost:8082/"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=artifactory-build-info"},
    30  		{7, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    31  			config.ServerDetails{Url: "http://localhost:8082/"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=cli-build-info&projectKey=cli"},
    32  
    33  		// Test Artifactory URL
    34  		{5, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    35  			config.ServerDetails{ArtifactoryUrl: "http://localhost:8081/artifactory"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"},
    36  		{6, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    37  			config.ServerDetails{ArtifactoryUrl: "http://localhost:8081/artifactory/"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"},
    38  		{7, timeNow, build.NewBuildConfiguration("test", "1", "6", ""),
    39  			config.ServerDetails{ArtifactoryUrl: "http://localhost:8082/artifactory"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=artifactory-build-info"},
    40  		{7, timeNow, build.NewBuildConfiguration("test", "1", "6", "cli"),
    41  			config.ServerDetails{ArtifactoryUrl: "http://localhost:8082/artifactory/"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=cli-build-info&projectKey=cli"},
    42  	}
    43  
    44  	for i := range linkTypes {
    45  		buildPubConf := &BuildPublishCommand{
    46  			linkTypes[i].buildInfoConf,
    47  			&linkTypes[i].serverDetails,
    48  			nil,
    49  			true,
    50  			nil,
    51  		}
    52  		buildPubComService, err := buildPubConf.getBuildInfoUiUrl(linkTypes[i].majorVersion, linkTypes[i].buildTime)
    53  		assert.NoError(t, err)
    54  		assert.Equal(t, buildPubComService, linkTypes[i].expected)
    55  	}
    56  }