github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/plan/new_test.go (about) 1 package plan_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/helmwave/helmwave/pkg/plan" 8 "github.com/helmwave/helmwave/pkg/release/uniqname" 9 "github.com/helmwave/helmwave/tests" 10 "github.com/stretchr/testify/suite" 11 ) 12 13 type NewTestSuite struct { 14 suite.Suite 15 16 ctx context.Context 17 } 18 19 func TestNewTestSuite(t *testing.T) { 20 t.Parallel() 21 suite.Run(t, new(NewTestSuite)) 22 } 23 24 func (ts *NewTestSuite) SetupTest() { 25 ts.ctx = tests.GetContext(ts.T()) 26 } 27 28 func (ts *NewTestSuite) TestNew() { 29 dir := "/proc/1/bla" 30 p := plan.New(dir) 31 32 ts.Require().NotNil(p) 33 ts.Require().False(p.IsExist()) 34 ts.Require().False(p.IsManifestExist()) 35 } 36 37 func (ts *NewTestSuite) TestNewAndImportError() { 38 _, err := plan.NewAndImport(ts.ctx, "/proc/1/blabla") 39 40 ts.Require().Error(err) 41 ts.Require().ErrorContains(err, "failed to read plan file") 42 } 43 44 func (ts *NewTestSuite) TestLogger() { 45 p := plan.New(".") 46 body := p.NewBody() 47 48 rel := &plan.MockReleaseConfig{} 49 uniq := uniqname.UniqName("blabla@namespace") 50 rel.On("Uniq").Return(uniq) 51 52 repo := &plan.MockRepositoryConfig{} 53 repoName := "blarepo" 54 repo.On("Name").Return(repoName) 55 56 body.Releases = append(body.Releases, rel) 57 body.Repositories = append(body.Repositories, repo) 58 59 logger := p.Logger() 60 61 ts.Require().NotNil(logger) 62 63 ts.Require().Contains(logger.Data, "releases") 64 ts.Require().Equal([]string{uniq.String()}, logger.Data["releases"]) 65 66 ts.Require().Contains(logger.Data, "repositories") 67 ts.Require().Equal([]string{repoName}, logger.Data["repositories"]) 68 69 rel.AssertExpectations(ts.T()) 70 repo.AssertExpectations(ts.T()) 71 } 72 73 func (ts *NewTestSuite) TestJSONSchema() { 74 schema := plan.GenSchema() 75 76 ts.Require().NotNil(schema) 77 78 ts.NotNil(schema.Properties.GetPair("repositories")) 79 ts.NotNil(schema.Properties.GetPair("registries")) 80 ts.NotNil(schema.Properties.GetPair("releases")) 81 ts.NotNil(schema.Properties.GetPair("lifecycle")) 82 }