@@ -59,6 +59,95 @@ func TestRegistry(t *testing.T) {
5959 assert .Equal (t , c , cs [0 ])
6060}
6161
62+ func TestRegistryCompatibleVersions (t * testing.T ) {
63+ ctx := t .Context ()
64+
65+ t .Run ("Compatible minor version" , func (t * testing.T ) {
66+ r := registry .NewBaseRegistry (logger .Test (t ))
67+ id := "capability-1@1.5.0"
68+ ci , err := capabilities .NewCapabilityInfo (
69+ id ,
70+ capabilities .CapabilityTypeAction ,
71+ "capability-1-description" ,
72+ )
73+ require .NoError (t , err )
74+
75+ c := & mockCapability {CapabilityInfo : ci }
76+ err = r .Add (ctx , c )
77+ require .NoError (t , err )
78+ _ , err = r .Get (ctx , "capability-1@1.0.0" )
79+ require .NoError (t , err )
80+ })
81+
82+ t .Run ("Incompatible minor version" , func (t * testing.T ) {
83+ r := registry .NewBaseRegistry (logger .Test (t ))
84+ id := "capability-1@1.1.0"
85+ ci , err := capabilities .NewCapabilityInfo (
86+ id ,
87+ capabilities .CapabilityTypeAction ,
88+ "capability-1-description" ,
89+ )
90+ require .NoError (t , err )
91+
92+ c := & mockCapability {CapabilityInfo : ci }
93+ err = r .Add (ctx , c )
94+ require .NoError (t , err )
95+ _ , err = r .Get (ctx , "capability-1@1.2.0" )
96+ require .Error (t , err )
97+ })
98+
99+ t .Run ("Incompatible major version" , func (t * testing.T ) {
100+ r := registry .NewBaseRegistry (logger .Test (t ))
101+ id := "capability-1@2.0.0"
102+ ci , err := capabilities .NewCapabilityInfo (
103+ id ,
104+ capabilities .CapabilityTypeAction ,
105+ "capability-1-description" ,
106+ )
107+ require .NoError (t , err )
108+
109+ c := & mockCapability {CapabilityInfo : ci }
110+ err = r .Add (ctx , c )
111+ require .NoError (t , err )
112+ _ , err = r .Get (ctx , "capability-1@1.0.0" )
113+ require .Error (t , err )
114+ })
115+
116+ t .Run ("Don't match pre-release tags if requested version if not pre-release" , func (t * testing.T ) {
117+ r := registry .NewBaseRegistry (logger .Test (t ))
118+ id := "capability-1@1.5.0-alpha"
119+ ci , err := capabilities .NewCapabilityInfo (
120+ id ,
121+ capabilities .CapabilityTypeAction ,
122+ "capability-1-description" ,
123+ )
124+ require .NoError (t , err )
125+
126+ c := & mockCapability {CapabilityInfo : ci }
127+ err = r .Add (ctx , c )
128+ require .NoError (t , err )
129+ _ , err = r .Get (ctx , "capability-1@1.0.0" )
130+ require .Error (t , err )
131+ })
132+
133+ t .Run ("Match pre-release tags if requested version is pre-release" , func (t * testing.T ) {
134+ r := registry .NewBaseRegistry (logger .Test (t ))
135+ id := "capability-1@1.5.0-alpha"
136+ ci , err := capabilities .NewCapabilityInfo (
137+ id ,
138+ capabilities .CapabilityTypeAction ,
139+ "capability-1-description" ,
140+ )
141+ require .NoError (t , err )
142+
143+ c := & mockCapability {CapabilityInfo : ci }
144+ err = r .Add (ctx , c )
145+ require .NoError (t , err )
146+ _ , err = r .Get (ctx , "capability-1@1.0.0-alpha" )
147+ require .NoError (t , err )
148+ })
149+ }
150+
62151func TestRegistry_NoDuplicateIDs (t * testing.T ) {
63152 r := registry .NewBaseRegistry (logger .Test (t ))
64153 ctx := t .Context ()
0 commit comments