github.com/windmeup/goreleaser@v1.21.95/main_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  	"github.com/windmeup/goreleaser/internal/golden"
     8  )
     9  
    10  func TestVersion(t *testing.T) {
    11  	const goVersion = "go1.20.3"
    12  	const compiler = "gc"
    13  	const platform = "linux/amd64"
    14  
    15  	for name, tt := range map[string]struct {
    16  		version, commit, date, builtBy, treeState string
    17  	}{
    18  		"all empty": {},
    19  		"complete": {
    20  			version:   "1.2.3",
    21  			date:      "12/12/12",
    22  			commit:    "aaaa",
    23  			builtBy:   "me",
    24  			treeState: "clean",
    25  		},
    26  		"only version": {
    27  			version: "1.2.3",
    28  		},
    29  		"version and date": {
    30  			version: "1.2.3",
    31  			date:    "12/12/12",
    32  		},
    33  		"version, date, built by": {
    34  			version: "1.2.3",
    35  			date:    "12/12/12",
    36  			builtBy: "me",
    37  		},
    38  	} {
    39  		tt := tt
    40  		t.Run(name, func(t *testing.T) {
    41  			v := buildVersion(tt.version, tt.commit, tt.date, tt.builtBy, tt.treeState)
    42  			v.GoVersion = goVersion
    43  			v.Compiler = compiler
    44  			v.Platform = platform
    45  			out, err := v.JSONString()
    46  			require.NoError(t, err)
    47  
    48  			golden.RequireEqualJSON(t, []byte(out))
    49  		})
    50  	}
    51  }