github.com/tilotech/tilores-cli@v0.28.0/internal/pkg/step/steps_test.go (about)

     1  package step
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestExecute(t *testing.T) {
    10  	steps := []Step{}
    11  	err := Execute(steps)
    12  	assert.NoError(t, err)
    13  
    14  	counter := 0
    15  	increment := func() error {
    16  		counter++
    17  		return nil
    18  	}
    19  
    20  	fail := func() error {
    21  		return assert.AnError
    22  	}
    23  
    24  	steps = []Step{
    25  		increment,
    26  	}
    27  	err = Execute(steps)
    28  	assert.NoError(t, err)
    29  	assert.Equal(t, 1, counter)
    30  
    31  	counter = 0
    32  	steps = []Step{
    33  		increment,
    34  		increment,
    35  		increment,
    36  	}
    37  	err = Execute(steps)
    38  	assert.NoError(t, err)
    39  	assert.Equal(t, 3, counter)
    40  
    41  	counter = 0
    42  	steps = []Step{
    43  		increment,
    44  		fail,
    45  		increment,
    46  	}
    47  	err = Execute(steps)
    48  	assert.Error(t, err)
    49  	assert.Equal(t, 1, counter)
    50  }