github.com/chyroc/anb@v0.3.0/internal/config/config_test.go (about)

     1  package config
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func Test_Config(t *testing.T) {
    12  	as := assert.New(t)
    13  	chTestDir()
    14  
    15  	t.Run("", func(t *testing.T) {
    16  		conf, err := LoadConfig("testdata/config.1.yaml")
    17  		as.Nil(err)
    18  		as.Equal("root", conf.Server.User)
    19  		as.Equal("1.2.3.4", conf.Server.Host)
    20  
    21  		{
    22  			as.Equal("x", conf.Tasks[0].Name)
    23  			as.Equal("a", conf.Tasks[0].Upload.Src)
    24  			as.Equal("b", conf.Tasks[0].Upload.Dest)
    25  			as.Equal(TaskTypeUpload, conf.Tasks[0].TaskType())
    26  		}
    27  		{
    28  			as.Equal([]string{"ls", "ls -alh"}, conf.Tasks[1].Cmd.Commands)
    29  			as.Equal(TaskTypeCmd, conf.Tasks[1].TaskType())
    30  		}
    31  		{
    32  			as.Equal([]string{"ls"}, conf.Tasks[2].Cmd.Commands)
    33  			as.Equal(TaskTypeCmd, conf.Tasks[2].TaskType())
    34  		}
    35  	})
    36  }
    37  
    38  func chTestDir() {
    39  	pwd, _ := os.Getwd()
    40  	if strings.Contains(pwd, "/internal") {
    41  		count := strings.Count(strings.SplitN(pwd, "/internal", 2)[1], "/")
    42  		for i := 0; i <= count; i++ {
    43  			_ = os.Chdir("..")
    44  		}
    45  	}
    46  }