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  }