github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/plan/list_test.go (about) 1 package plan_test 2 3 import ( 4 "errors" 5 "path/filepath" 6 "testing" 7 8 "github.com/helmwave/helmwave/pkg/plan" 9 log "github.com/sirupsen/logrus" 10 "github.com/stretchr/testify/suite" 11 "helm.sh/helm/v3/pkg/chart" 12 helmRelease "helm.sh/helm/v3/pkg/release" 13 ) 14 15 type ListTestSuite struct { 16 suite.Suite 17 } 18 19 func (s *ListTestSuite) TestList() { 20 tmpDir := s.T().TempDir() 21 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 22 23 mockedRelease := &plan.MockReleaseConfig{} 24 r := &helmRelease.Release{ 25 Info: &helmRelease.Info{}, 26 Chart: &chart.Chart{ 27 Metadata: &chart.Metadata{}, 28 }, 29 } 30 mockedRelease.On("List").Return(r, nil) 31 32 p.SetReleases(mockedRelease) 33 34 err := p.List() 35 s.Require().NoError(err) 36 37 mockedRelease.AssertExpectations(s.T()) 38 } 39 40 // TestListError tests that List method should just skip releases that fail List method. 41 func (s *ListTestSuite) TestListError() { 42 tmpDir := s.T().TempDir() 43 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 44 45 mockedRelease := &plan.MockReleaseConfig{} 46 mockedRelease.On("List").Return(&helmRelease.Release{}, errors.New(s.T().Name())) 47 mockedRelease.On("Logger").Return(log.WithField("test", s.T().Name())) 48 49 p.SetReleases(mockedRelease) 50 51 err := p.List() 52 s.Require().NoError(err) 53 54 mockedRelease.AssertExpectations(s.T()) 55 } 56 57 func (s *ListTestSuite) TestListNoReleases() { 58 tmpDir := s.T().TempDir() 59 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 60 p.NewBody() 61 62 err := p.List() 63 s.Require().NoError(err) 64 } 65 66 func TestListTestSuite(t *testing.T) { 67 t.Parallel() 68 suite.Run(t, new(ListTestSuite)) 69 }