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 }