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

     1  package dependency_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/helmwave/helmwave/pkg/release/dependency"
     7  	"github.com/stretchr/testify/suite"
     8  )
     9  
    10  type NodeTestSuite struct {
    11  	suite.Suite
    12  }
    13  
    14  func (s *NodeTestSuite) TestNewNode() {
    15  	data := "123"
    16  	node := dependency.NewNode(data)
    17  
    18  	s.Require().IsType(data, node.Data)
    19  }
    20  
    21  func (s *NodeTestSuite) TestPending() {
    22  	node := dependency.NewNode("")
    23  
    24  	s.Require().False(node.IsDone())
    25  }
    26  
    27  func (s *NodeTestSuite) TestSucceeded() {
    28  	node := dependency.NewNode("")
    29  
    30  	s.Require().False(node.IsDone())
    31  	s.Require().False(node.IsFailed())
    32  
    33  	node.SetSucceeded()
    34  	s.Require().True(node.IsDone())
    35  	s.Require().False(node.IsFailed())
    36  }
    37  
    38  func (s *NodeTestSuite) TestFailed() {
    39  	node := dependency.NewNode("")
    40  
    41  	s.Require().False(node.IsDone())
    42  	s.Require().False(node.IsFailed())
    43  
    44  	node.SetFailed()
    45  	s.Require().True(node.IsDone())
    46  	s.Require().True(node.IsFailed())
    47  }
    48  
    49  func (s *NodeTestSuite) TestReadyWithDependencies() {
    50  	node := dependency.NewNode("")
    51  	nodeDep := dependency.NewNode("")
    52  
    53  	s.Require().True(node.IsReady())
    54  
    55  	node.AddDependency(nodeDep)
    56  
    57  	s.Require().False(node.IsReady())
    58  
    59  	nodeDep.SetSucceeded()
    60  
    61  	s.Require().True(node.IsReady())
    62  
    63  	nodeDep.SetFailed()
    64  
    65  	s.Require().False(node.IsReady())
    66  	s.Require().True(node.IsFailed())
    67  }
    68  
    69  func TestNodeTestSuite(t *testing.T) {
    70  	t.Parallel()
    71  	suite.Run(t, new(NodeTestSuite))
    72  }