github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/release/get_test.go (about)

     1  //go:build integration
     2  
     3  package release_test
     4  
     5  import (
     6  	"context"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/helmwave/helmwave/pkg/plan"
    11  	"github.com/helmwave/helmwave/pkg/release"
    12  	"github.com/helmwave/helmwave/pkg/repo"
    13  	"github.com/helmwave/helmwave/tests"
    14  	"github.com/stretchr/testify/suite"
    15  	"gopkg.in/yaml.v3"
    16  )
    17  
    18  type GetTestSuite struct {
    19  	suite.Suite
    20  
    21  	ctx context.Context
    22  }
    23  
    24  func TestGetTestSuite(t *testing.T) { //nolint:paralleltest // uses helm repository.yaml flock
    25  	// t.Parallel()
    26  	suite.Run(t, new(GetTestSuite))
    27  }
    28  
    29  func (ts *GetTestSuite) SetupSuite() {
    30  	ts.ctx = tests.GetContext(ts.T())
    31  
    32  	var rs repo.Configs
    33  	str := `
    34  - name: bitnami
    35    url: https://charts.bitnami.com/bitnami
    36  `
    37  	err := yaml.Unmarshal([]byte(str), &rs)
    38  
    39  	ts.Require().NoError(err)
    40  	ts.Require().Len(rs, 1)
    41  
    42  	ts.Require().NoError(plan.SyncRepositories(ts.ctx, rs))
    43  }
    44  
    45  func (ts *GetTestSuite) TestGetNotInstalled() {
    46  	rel := release.NewConfig()
    47  	rel.NamespaceF = strings.ToLower(strings.ReplaceAll(ts.T().Name(), "/", ""))
    48  	rel.CreateNamespace = true
    49  	rel.Wait = false
    50  	rel.ChartF.Name = "bitnami/nginx"
    51  
    52  	r, err := rel.Get(0)
    53  	ts.Require().Error(err)
    54  	ts.Require().Nil(r)
    55  
    56  	_, err = rel.GetValues()
    57  	ts.Require().Error(err)
    58  }
    59  
    60  func (ts *GetTestSuite) TestGet() {
    61  	rel := release.NewConfig()
    62  	rel.NamespaceF = strings.ToLower(strings.ReplaceAll(ts.T().Name(), "/", ""))
    63  	rel.CreateNamespace = true
    64  	rel.Wait = false
    65  	rel.ChartF.Name = "bitnami/nginx"
    66  
    67  	r1, err := rel.Sync(ts.ctx, false)
    68  	ts.Require().NoError(err)
    69  	ts.Require().NotNil(r1)
    70  
    71  	r2, err := rel.Get(0)
    72  	ts.Require().NoError(err)
    73  	ts.Require().NotNil(r2)
    74  
    75  	_, err = rel.GetValues()
    76  	ts.Require().NoError(err)
    77  }