From a329ba86ba6137dc8e4fd83300ac0ee8d3bdc4ee Mon Sep 17 00:00:00 2001 From: "Badr, Nesma" Date: Wed, 26 Feb 2025 14:14:53 +0100 Subject: [PATCH] Add a test case for failed to list ModuleTemplates --- .../by_channel_strategy_test.go | 15 +++++++++++ .../by_version_strategy_test.go | 25 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/pkg/templatelookup/moduletemplateinfolookup/by_channel_strategy_test.go b/pkg/templatelookup/moduletemplateinfolookup/by_channel_strategy_test.go index e17c990f9b..173e55cc24 100644 --- a/pkg/templatelookup/moduletemplateinfolookup/by_channel_strategy_test.go +++ b/pkg/templatelookup/moduletemplateinfolookup/by_channel_strategy_test.go @@ -138,6 +138,21 @@ func Test_ByChannelStrategy_Lookup_WhenNoModuleTemplateFound(t *testing.T) { "no templates were found: for module test-module in channel regular") } +func Test_ByChannelStrateg_Lookup_WhenFailedToListModuleTemplates(t *testing.T) { + moduleInfo := newModuleInfoBuilder().WithName("test-module").WithChannel("regular").Enabled().Build() + kyma := builder.NewKymaBuilder().Build() + var moduleReleaseMeta *v1beta2.ModuleReleaseMeta = nil + + byChannelStrategy := moduletemplateinfolookup.NewByChannelStrategy(&failedClientStub{}) + + moduleTemplateInfo := byChannelStrategy.Lookup(context.Background(), moduleInfo, kyma, moduleReleaseMeta) + + assert.NotNil(t, moduleTemplateInfo) + assert.Nil(t, moduleTemplateInfo.ModuleTemplate) + assert.ErrorContains(t, moduleTemplateInfo.Err, + "failed to list module templates on lookup") +} + func Test_ByChannelStrategy_Lookup_WhenMoreThanOneModuleTemplateFound(t *testing.T) { moduleInfo := newModuleInfoBuilder().WithName("test-module").WithChannel("regular").Enabled().Build() kyma := builder.NewKymaBuilder().Build() diff --git a/pkg/templatelookup/moduletemplateinfolookup/by_version_strategy_test.go b/pkg/templatelookup/moduletemplateinfolookup/by_version_strategy_test.go index c7d6b1698c..345582f5b8 100644 --- a/pkg/templatelookup/moduletemplateinfolookup/by_version_strategy_test.go +++ b/pkg/templatelookup/moduletemplateinfolookup/by_version_strategy_test.go @@ -6,10 +6,12 @@ import ( "github.com/stretchr/testify/assert" + "errors" "github.com/kyma-project/lifecycle-manager/api/v1beta2" "github.com/kyma-project/lifecycle-manager/pkg/templatelookup" "github.com/kyma-project/lifecycle-manager/pkg/templatelookup/moduletemplateinfolookup" "github.com/kyma-project/lifecycle-manager/pkg/testutils/builder" + "sigs.k8s.io/controller-runtime/pkg/client" ) func Test_ByVersionStrategy_IsResponsible_ReturnsTrue(t *testing.T) { @@ -103,6 +105,21 @@ func Test_ByVersion_Strategy_Lookup_WhenMoreThanOneModuleTemplateFound(t *testin "no unique template could be identified: more than one module template found for module: test-module, candidates: [test-module-1.0.0 test-module-1.0.0-duplicate]") } +func Test_ByVersion_Strategy_Lookup_WhenFailedToListModuleTemplates(t *testing.T) { + moduleInfo := newModuleInfoBuilder().WithName("test-module").WithVersion("1.0.0").Enabled().Build() + var kyma *v1beta2.Kyma = nil + var moduleReleaseMeta *v1beta2.ModuleReleaseMeta = nil + + byVersionStrategy := moduletemplateinfolookup.NewByVersionStrategy(&failedClientStub{}) + + moduleTemplateInfo := byVersionStrategy.Lookup(context.Background(), moduleInfo, kyma, moduleReleaseMeta) + + assert.NotNil(t, moduleTemplateInfo) + assert.Nil(t, moduleTemplateInfo.ModuleTemplate) + assert.ErrorContains(t, moduleTemplateInfo.Err, + "failed to list module templates on lookup") +} + func Test_ByVersion_Strategy_Lookup_WhenNoModuleTemplateFound(t *testing.T) { moduleInfo := newModuleInfoBuilder().WithName("test-module").WithVersion("1.0.0").Enabled().Build() var kyma *v1beta2.Kyma = nil @@ -185,3 +202,11 @@ func (b moduleInfoBuilder) Enabled() moduleInfoBuilder { func (b moduleInfoBuilder) Build() *templatelookup.ModuleInfo { return b.moduleInfo } + +type failedClientStub struct { + client.Client +} + +func (c *failedClientStub) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error { + return errors.New("failed to list module templates") +}