github.com/clly/consul@v1.4.5/agent/metadata/build_test.go (about) 1 package metadata 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/go-version" 7 "github.com/hashicorp/serf/serf" 8 "github.com/pascaldekloe/goe/verify" 9 ) 10 11 func TestBuild(t *testing.T) { 12 tests := []struct { 13 desc string 14 m *serf.Member 15 ver *version.Version 16 err bool 17 }{ 18 { 19 "no version", 20 &serf.Member{}, 21 nil, 22 true, 23 }, 24 { 25 "bad version", 26 &serf.Member{ 27 Tags: map[string]string{ 28 "build": "nope", 29 }, 30 }, 31 nil, 32 true, 33 }, 34 { 35 "good version", 36 &serf.Member{ 37 Tags: map[string]string{ 38 "build": "0.8.5", 39 }, 40 }, 41 version.Must(version.NewVersion("0.8.5")), 42 false, 43 }, 44 { 45 "rc version", 46 &serf.Member{ 47 Tags: map[string]string{ 48 "build": "0.9.3rc1:d62743c", 49 }, 50 }, 51 version.Must(version.NewVersion("0.9.3")), 52 false, 53 }, 54 { 55 "ent version", 56 &serf.Member{ 57 Tags: map[string]string{ 58 "build": "0.9.3+ent:d62743c", 59 }, 60 }, 61 version.Must(version.NewVersion("0.9.3")), 62 false, 63 }, 64 } 65 for _, tt := range tests { 66 t.Run(tt.desc, func(t *testing.T) { 67 ver, err := Build(tt.m) 68 gotErr := err != nil 69 if wantErr := tt.err; gotErr != wantErr { 70 t.Fatalf("got %v want %v", gotErr, wantErr) 71 } 72 verify.Values(t, "", ver, tt.ver) 73 }) 74 } 75 }