github.imxd.top/gopinath-langote/1build@v1.2.0/testing/fixtures/command_set_fixtures.go (about) 1 package fixtures 2 3 import ( 4 "github.com/gopinath-langote/1build/testing/def" 5 "github.com/gopinath-langote/1build/testing/utils" 6 "github.com/stretchr/testify/assert" 7 "io/ioutil" 8 "testing" 9 ) 10 11 func FeatureSetTestsData() []Test { 12 feature := "set" 13 14 return []Test{ 15 shouldSetNewCommand(feature), 16 shouldUpdateExistingCommand(feature), 17 shouldFailWhenConfigurationFileIsNotFound(feature), 18 shouldFailWhenConfigurationFileIsInInvalidFormat(feature), 19 } 20 } 21 22 func shouldSetNewCommand(feature string) Test { 23 24 defaultFileContent := ` 25 project: Sample Project 26 commands: 27 - build: go build 28 ` 29 30 expectedOutput := `project: Sample Project 31 commands: 32 - build: go build 33 - test: go test 34 ` 35 36 return Test{ 37 Feature: feature, 38 Name: "shouldSetNewCommand", 39 CmdArgs: []string{"set", "test", "go test"}, 40 Setup: func(dir string) error { 41 return utils.CreateConfigFile(dir, defaultFileContent) 42 }, 43 Assertion: func(dir string, actualOutput string, t *testing.T) bool { 44 filePath := dir + "/" + def.ConfigFileName 45 assert.FileExists(t, dir+"/"+def.ConfigFileName) 46 content, _ := ioutil.ReadFile(filePath) 47 return assert.Contains(t, string(content), expectedOutput) 48 }, 49 } 50 } 51 52 func shouldUpdateExistingCommand(feature string) Test { 53 54 defaultFileContent := ` 55 project: Sample Project 56 commands: 57 - build: go build 58 ` 59 60 expectedOutput := `project: Sample Project 61 commands: 62 - build: go build -o 63 ` 64 65 return Test{ 66 Feature: feature, 67 Name: "shouldUpdateExistingCommand", 68 CmdArgs: []string{"set", "build", "go build -o"}, 69 Setup: func(dir string) error { 70 return utils.CreateConfigFile(dir, defaultFileContent) 71 }, 72 Assertion: func(dir string, actualOutput string, t *testing.T) bool { 73 filePath := dir + "/" + def.ConfigFileName 74 assert.FileExists(t, dir+"/"+def.ConfigFileName) 75 content, _ := ioutil.ReadFile(filePath) 76 return assert.Contains(t, string(content), expectedOutput) 77 }, 78 } 79 } 80 81 func shouldFailWhenConfigurationFileIsNotFound(feature string) Test { 82 return Test{ 83 Feature: feature, 84 Name: "shouldFailWhenConfigurationFileIsNotFound", 85 CmdArgs: []string{"set", "build", "go build -o"}, 86 Assertion: func(dir string, actualOutput string, t *testing.T) bool { 87 return assert.Contains(t, actualOutput, "no '"+def.ConfigFileName+"' file found in current directory") 88 }, 89 } 90 } 91 92 func shouldFailWhenConfigurationFileIsInInvalidFormat(feature string) Test { 93 return Test{ 94 Feature: feature, 95 Name: "shouldFailWhenConfigurationFileIsInInvalidFormat", 96 CmdArgs: []string{"set", "build", "go build"}, 97 Setup: func(dir string) error { 98 return utils.CreateConfigFile(dir, "invalid config content") 99 }, 100 Assertion: func(dir string, actualOutput string, t *testing.T) bool { 101 return assert.Contains(t, actualOutput, "Unable to parse '"+def.ConfigFileName+"' config file. Make sure file is in correct format.") 102 }, 103 } 104 }