github.com/cilium/cilium@v1.16.2/pkg/hubble/build/version_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package build
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/blang/semver/v4"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestVersion(t *testing.T) {
    14  	tests := []struct {
    15  		component, core, revision string
    16  		want                      string
    17  	}{
    18  		{
    19  			component: "hubble-relay",
    20  			core:      "1.9.0",
    21  			revision:  "63aa1b8",
    22  			want:      "hubble-relay v1.9.0+g63aa1b8",
    23  		}, {
    24  			component: "hubble-relay",
    25  			core:      "1.9.0-rc3",
    26  			revision:  "9907232",
    27  			want:      "hubble-relay v1.9.0-rc3+g9907232",
    28  		}, {
    29  			component: "hubble-relay",
    30  			core:      "1.9.0",
    31  			revision:  "",
    32  			want:      "hubble-relay v1.9.0",
    33  		}, {
    34  			component: "hubble-relay",
    35  			core:      "",
    36  			revision:  "",
    37  			want:      "hubble-relay",
    38  		},
    39  	}
    40  
    41  	for _, tt := range tests {
    42  		t.Run(tt.want, func(t *testing.T) {
    43  			v := &Version{
    44  				component: tt.component,
    45  				Core:      tt.core,
    46  				Revision:  tt.revision,
    47  			}
    48  			assert.Equal(t, tt.want, v.String())
    49  			if canonical := v.SemVer(); canonical != "" {
    50  				_, err := semver.Parse(canonical)
    51  				assert.NoError(t, err)
    52  			}
    53  		})
    54  	}
    55  }