github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/transferfiles/state/testutils.go (about)

     1  package state
     2  
     3  import (
     4  	"github.com/jfrog/build-info-go/utils"
     5  	"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
     6  	"github.com/jfrog/jfrog-cli-core/v2/utils/tests"
     7  	"github.com/stretchr/testify/assert"
     8  	"testing"
     9  )
    10  
    11  func InitStateTest(t *testing.T) (stateManager *TransferStateManager, cleanUp func()) {
    12  	cleanUpJfrogHome, err := tests.SetJfrogHome()
    13  	assert.NoError(t, err)
    14  
    15  	// Create transfer directory
    16  	transferDir, err := coreutils.GetJfrogTransferDir()
    17  	assert.NoError(t, err)
    18  	err = utils.CreateDirIfNotExist(transferDir)
    19  	assert.NoError(t, err)
    20  
    21  	stateManager, err = NewTransferStateManager(true)
    22  	assert.NoError(t, err)
    23  
    24  	undoSaveInterval := SetAutoSaveState()
    25  	return stateManager, func() {
    26  		undoSaveInterval()
    27  		cleanUpJfrogHome()
    28  	}
    29  }
    30  
    31  // Set the state's save-interval to 0 so every action will be persisted and data can be asserted.
    32  func SetAutoSaveState() (cleanUp func()) {
    33  	previousSaveInterval := stateAndStatusSaveIntervalSecs
    34  	stateAndStatusSaveIntervalSecs = 0
    35  	return func() {
    36  		stateAndStatusSaveIntervalSecs = previousSaveInterval
    37  	}
    38  }