@@ -35,9 +35,8 @@ func TestLookupVersionForLockedProject_MatchRevisionToTag(t *testing.T) {
35
35
defer sm .Release ()
36
36
37
37
pi := gps.ProjectIdentifier {ProjectRoot : gps .ProjectRoot ("github.com/sdboyer/deptest" )}
38
- c , _ := gps .NewSemverConstraint ("^0.8.1" )
39
38
rev := gps .Revision ("ff2948a2ac8f538c4ecd55962e919d1e13e74baf" )
40
- v , err := lookupVersionForLockedProject (pi , c , rev , sm )
39
+ v , err := lookupVersionForLockedProject (pi , nil , rev , sm )
41
40
h .Must (err )
42
41
43
42
wantV := "v1.0.0"
@@ -47,6 +46,29 @@ func TestLookupVersionForLockedProject_MatchRevisionToTag(t *testing.T) {
47
46
}
48
47
}
49
48
49
+ func TestLookupVersionForLockedProject_MatchRevisionToMultipleTags (t * testing.T ) {
50
+ h := test .NewHelper (t )
51
+ defer h .Cleanup ()
52
+
53
+ ctx := newTestContext (h )
54
+ sm , err := ctx .SourceManager ()
55
+ h .Must (err )
56
+ defer sm .Release ()
57
+
58
+ pi := gps.ProjectIdentifier {ProjectRoot : gps .ProjectRoot ("github.com/sdboyer/deptest" )}
59
+ // Both 0.8.0 and 1.0.0 use the same rev, force dep to pick the lower version
60
+ c , _ := gps .NewSemverConstraint ("<1.0.0" )
61
+ rev := gps .Revision ("ff2948a2ac8f538c4ecd55962e919d1e13e74baf" )
62
+ v , err := lookupVersionForLockedProject (pi , c , rev , sm )
63
+ h .Must (err )
64
+
65
+ wantV := "v0.8.0"
66
+ gotV := v .String ()
67
+ if gotV != wantV {
68
+ t .Fatalf ("Expected '%s', got '%s'" , wantV , gotV )
69
+ }
70
+ }
71
+
50
72
func TestLookupVersionForLockedProject_FallbackToConstraint (t * testing.T ) {
51
73
h := test .NewHelper (t )
52
74
defer h .Cleanup ()
0 commit comments