github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/plan/rollback_test.go (about) 1 package plan_test 2 3 import ( 4 "context" 5 "errors" 6 "path/filepath" 7 "testing" 8 9 "github.com/helmwave/helmwave/pkg/kubedog" 10 "github.com/helmwave/helmwave/pkg/plan" 11 "github.com/helmwave/helmwave/tests" 12 log "github.com/sirupsen/logrus" 13 "github.com/stretchr/testify/suite" 14 ) 15 16 type RollbackTestSuite struct { 17 suite.Suite 18 19 ctx context.Context 20 } 21 22 func TestRollbackTestSuite(t *testing.T) { 23 t.Parallel() 24 suite.Run(t, new(RollbackTestSuite)) 25 } 26 27 func (ts *RollbackTestSuite) SetupTest() { 28 ts.ctx = tests.GetContext(ts.T()) 29 } 30 31 func (ts *RollbackTestSuite) TestRollback() { 32 tmpDir := ts.T().TempDir() 33 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 34 35 mockedRelease := &plan.MockReleaseConfig{} 36 mockedRelease.On("Rollback").Return(nil) 37 mockedRelease.On("Logger").Return(log.WithField("test", ts.T().Name())) 38 39 p.SetReleases(mockedRelease) 40 41 err := p.Rollback(ts.ctx, -1, &kubedog.Config{Enabled: false}) 42 ts.Require().NoError(err) 43 44 mockedRelease.AssertExpectations(ts.T()) 45 } 46 47 func (ts *RollbackTestSuite) TestRollbackError() { 48 tmpDir := ts.T().TempDir() 49 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 50 51 mockedRelease := &plan.MockReleaseConfig{} 52 e := errors.New(ts.T().Name()) 53 mockedRelease.On("Rollback").Return(e) 54 mockedRelease.On("Logger").Return(log.WithField("test", ts.T().Name())) 55 56 p.SetReleases(mockedRelease) 57 58 err := p.Rollback(ts.ctx, -1, &kubedog.Config{Enabled: false}) 59 ts.Require().ErrorIs(err, e) 60 61 mockedRelease.AssertExpectations(ts.T()) 62 } 63 64 func (ts *RollbackTestSuite) TestRollbackNoReleases() { 65 tmpDir := ts.T().TempDir() 66 p := plan.New(filepath.Join(tmpDir, plan.Dir)) 67 p.NewBody() 68 69 err := p.Rollback(ts.ctx, -1, &kubedog.Config{Enabled: false}) 70 ts.Require().NoError(err) 71 }