@@ -1357,14 +1357,14 @@ func TestSolveOperators_WithoutDeprecated(t *testing.T) {
1357
1357
assert .IsType (t , solver.NotSatisfiable {}, err )
1358
1358
}
1359
1359
1360
- func TestSolveOperators_WithSkips (t * testing.T ) {
1360
+ func TestSolveOperators_WithSkipsAndStartingCSV (t * testing.T ) {
1361
1361
APISet := APISet {opregistry.APIKey {"g" , "v" , "k" , "ks" }: struct {}{}}
1362
1362
Provides := APISet
1363
1363
1364
1364
namespace := "olm"
1365
1365
catalog := registry.CatalogKey {"community" , namespace }
1366
1366
1367
- newSub := newSub (namespace , "packageB" , "alpha" , catalog )
1367
+ newSub := newSub (namespace , "packageB" , "alpha" , catalog , withStartingCSV ( "packageB.v1" ) )
1368
1368
subs := []* v1alpha1.Subscription {newSub }
1369
1369
1370
1370
opToAddVersionDeps := []* api.Dependency {
@@ -1375,6 +1375,8 @@ func TestSolveOperators_WithSkips(t *testing.T) {
1375
1375
}
1376
1376
1377
1377
opB := genOperator ("packageB.v1" , "1.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , opToAddVersionDeps , "" , false )
1378
+ opB2 := genOperator ("packageB.v2" , "2.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , opToAddVersionDeps , "" , false )
1379
+ opB2 .skips = []string {"packageB.v1" }
1378
1380
op1 := genOperator ("packageA.v1" , "1.0.0" , "" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1379
1381
op2 := genOperator ("packageA.v2" , "2.0.0" , "packageA.v1" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
1380
1382
op3 := genOperator ("packageA.v3" , "3.0.0" , "packageA.v2" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false )
@@ -1395,7 +1397,7 @@ func TestSolveOperators_WithSkips(t *testing.T) {
1395
1397
Name : "community" ,
1396
1398
},
1397
1399
operators : []* Operator {
1398
- opB , op1 , op2 , op3 , op4 , op5 , op6 ,
1400
+ opB , opB2 , op1 , op2 , op3 , op4 , op5 , op6 ,
1399
1401
},
1400
1402
},
1401
1403
},
@@ -1407,10 +1409,50 @@ func TestSolveOperators_WithSkips(t *testing.T) {
1407
1409
1408
1410
operators , err := satResolver .SolveOperators ([]string {"olm" }, nil , subs )
1409
1411
assert .NoError (t , err )
1412
+ opB .SourceInfo ().StartingCSV = "packageB.v1"
1413
+ expected := OperatorSet {
1414
+ "packageB.v1" : opB ,
1415
+ "packageA.v6" : op6 ,
1416
+ }
1417
+ require .EqualValues (t , expected , operators )
1418
+ }
1419
+
1420
+ func TestSolveOperators_WithSkips (t * testing.T ) {
1421
+ namespace := "olm"
1422
+ catalog := registry.CatalogKey {"community" , namespace }
1410
1423
1424
+ newSub := newSub (namespace , "packageB" , "alpha" , catalog )
1425
+ subs := []* v1alpha1.Subscription {newSub }
1426
+
1427
+ opB := genOperator ("packageB.v1" , "1.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , nil , "" , false )
1428
+ opB2 := genOperator ("packageB.v2" , "2.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , nil , "" , false )
1429
+ opB2 .skips = []string {"packageB.v1" }
1430
+
1431
+ fakeNamespacedOperatorCache := NamespacedOperatorCache {
1432
+ snapshots : map [registry.CatalogKey ]* CatalogSnapshot {
1433
+ registry.CatalogKey {
1434
+ Namespace : "olm" ,
1435
+ Name : "community" ,
1436
+ }: {
1437
+ key : registry.CatalogKey {
1438
+ Namespace : "olm" ,
1439
+ Name : "community" ,
1440
+ },
1441
+ operators : []* Operator {
1442
+ opB , opB2 ,
1443
+ },
1444
+ },
1445
+ },
1446
+ }
1447
+ satResolver := SatResolver {
1448
+ cache : getFakeOperatorCache (fakeNamespacedOperatorCache ),
1449
+ log : logrus .New (),
1450
+ }
1451
+
1452
+ operators , err := satResolver .SolveOperators ([]string {"olm" }, nil , subs )
1453
+ assert .NoError (t , err )
1411
1454
expected := OperatorSet {
1412
- "packageB.v1" : genOperator ("packageB.v1" , "1.0.0" , "" , "packageB" , "alpha" , "community" , "olm" , nil , nil , opToAddVersionDeps , "" , false ),
1413
- "packageA.v6" : genOperator ("packageA.v6" , "6.0.0" , "packageA.v5" , "packageA" , "alpha" , "community" , "olm" , nil , Provides , nil , "" , false ),
1455
+ "packageB.v2" : opB2 ,
1414
1456
}
1415
1457
require .EqualValues (t , expected , operators )
1416
1458
}
0 commit comments