...

Source file src/edge-infra.dev/pkg/lib/build/version_test.go

Documentation: edge-infra.dev/pkg/lib/build

     1  package build
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"edge-infra.dev/pkg/lib/build/semver"
     9  )
    10  
    11  func TestVersionString(t *testing.T) {
    12  	inputs := []Version{
    13  		{
    14  			Commit:           "abcdef123456",
    15  			ReleaseCandidate: true,
    16  			SemVer:           "4.2.0",
    17  			Timestamp:        16053000,
    18  		},
    19  		{
    20  			Commit:           "abcdef123456",
    21  			ReleaseCandidate: false,
    22  			SemVer:           "4.2.0",
    23  			Timestamp:        16053000,
    24  		},
    25  	}
    26  
    27  	for _, v := range inputs {
    28  		verStr := v.String()
    29  		if err := semver.IsValidSemver(verStr); err != nil {
    30  			t.Errorf(
    31  				"Version %v did not produce valid SemVer. SemVer: %v",
    32  				v,
    33  				verStr,
    34  			)
    35  		}
    36  	}
    37  }
    38  
    39  func TestVersion_Validate(t *testing.T) {
    40  	var (
    41  		commit = "5c143c7c5fa14e871afc70e20c8c31355464a4a9"
    42  		short  = "5c143c7"
    43  	)
    44  
    45  	tcs := map[string]struct {
    46  		val   Version
    47  		valid bool
    48  	}{
    49  		"valid rc":         {Version{commit, true, "0.0.1", 1691702745}, true},
    50  		"valid":            {Version{commit, false, "10.2.0", 16917025}, true},
    51  		"valid short":      {Version{short, true, "0.0.1", 1691702745}, true},
    52  		"commit too short": {Version{"d34dbe", false, "0.0.1", 1691702745}, false},
    53  		"empty commit":     {Version{"", true, "0.0.1", 1691702745}, false},
    54  		"no timestamp":     {Version{commit, true, "0.0.1", 0}, false},
    55  		"empty semver":     {Version{commit, true, "", 1691702745}, false},
    56  		"invalid semver":   {Version{commit, true, "0.0.1.1", 1691702745}, false},
    57  		"two parts":        {Version{commit, true, "0.15", 1691702745}, false},
    58  	}
    59  
    60  	for name, tc := range tcs {
    61  		t.Run(name, func(t *testing.T) {
    62  			err := tc.val.Validate()
    63  			switch tc.valid {
    64  			case true:
    65  				assert.NoError(t, err)
    66  			case false:
    67  				assert.Error(t, err)
    68  			}
    69  		})
    70  	}
    71  }
    72  

View as plain text