Skip to content

Commit 48115e0

Browse files
committed
add a resolver test for completely disjoint graphs within a channel
Signed-off-by: Evan <[email protected]>
1 parent d76b75b commit 48115e0

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

Diff for: pkg/controller/registry/resolver/resolver_test.go

+29
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,35 @@ func TestSolveOperators(t *testing.T) {
5959
require.EqualValues(t, expected, operators)
6060
}
6161

62+
func TestDisjointChannelGraph(t *testing.T) {
63+
const namespace = "test-namespace"
64+
catalog := registry.CatalogKey{Name: "test-catalog", Namespace: namespace}
65+
66+
newSub := newSub(namespace, "packageA", "alpha", catalog)
67+
subs := []*v1alpha1.Subscription{newSub}
68+
69+
fakeNamespacedOperatorCache := NamespacedOperatorCache{
70+
snapshots: map[registry.CatalogKey]*CatalogSnapshot{
71+
catalog: {
72+
key: catalog,
73+
operators: []*Operator{
74+
genOperator("packageA.side1.v1", "0.0.1", "", "packageA", "alpha", catalog.Name, catalog.Namespace, nil, nil, nil, "", false),
75+
genOperator("packageA.side1.v2", "0.0.2", "packageA.side1.v1", "packageA", "alpha", catalog.Name, catalog.Namespace, nil, nil, nil, "", false),
76+
genOperator("packageA.side2.v1", "1.0.0", "", "packageA", "alpha", catalog.Name, catalog.Namespace, nil, nil, nil, "", false),
77+
genOperator("packageA.side2.v2", "2.0.0", "packageA.side2.v1", "packageA", "alpha", catalog.Name, catalog.Namespace, nil, nil, nil, "", false),
78+
},
79+
},
80+
},
81+
}
82+
satResolver := SatResolver{
83+
cache: getFakeOperatorCache(fakeNamespacedOperatorCache),
84+
log: logrus.New(),
85+
}
86+
87+
_, err := satResolver.SolveOperators([]string{namespace}, nil, subs)
88+
require.Error(t, err, "a unique replacement chain within a channel is required to determine the relative order between channel entries, but 2 replacement chains were found in channel \"alpha\" of package \"packageA\": packageA.side1.v2...packageA.side1.v1, packageA.side2.v2...packageA.side2.v1")
89+
}
90+
6291
func TestPropertiesAnnotationHonored(t *testing.T) {
6392
const (
6493
namespace = "olm"

0 commit comments

Comments
 (0)