more testing, refactoring
This commit is contained in:
parent
ccd5d5f0cb
commit
610febd055
3
main.go
3
main.go
@ -85,7 +85,8 @@ func verify(directory string) error {
|
||||
if !verifyTideliftYamlExists(directory) {
|
||||
return cli.NewExitError("no .tidelift.yml at supplied directory path", 6)
|
||||
}
|
||||
missingKey := passesMinimumRequirements(directory)
|
||||
|
||||
missingKey := passesMinimumRequirements(readTideliftYamlFile(directory))
|
||||
if missingKey != "" {
|
||||
errorMsg := fmt.Sprintf("Missing key '%s:' in .tidelift.yml", missingKey)
|
||||
return cli.NewExitError(errorMsg, 7)
|
||||
|
@ -9,6 +9,11 @@ import (
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
type TideliftYML struct {
|
||||
TeamName string `yaml:"team-name"`
|
||||
RepositoryName string `yaml:"repository-name"`
|
||||
}
|
||||
|
||||
func verifyTideliftYamlExists(directory string) bool {
|
||||
filepath := fmt.Sprintf("%s/.tidelift.yml", directory)
|
||||
|
||||
@ -19,25 +24,29 @@ func verifyTideliftYamlExists(directory string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func passesMinimumRequirements(directory string) string {
|
||||
|
||||
func readTideliftYamlFile(directory string) []byte {
|
||||
filename, _ := filepath.Abs(fmt.Sprintf("%s/.tidelift.yml", directory))
|
||||
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
|
||||
check(err)
|
||||
|
||||
type TideliftYML struct {
|
||||
TeamName string `yaml:"team-name"`
|
||||
RepositoryName string `yaml:"repository-name"`
|
||||
return yamlFile
|
||||
}
|
||||
|
||||
func getKeysFromYaml(yamlText []byte) TideliftYML {
|
||||
var yml TideliftYML
|
||||
|
||||
err = yaml.Unmarshal(yamlFile, &yml)
|
||||
err := yaml.Unmarshal(yamlText, &yml)
|
||||
|
||||
check(err)
|
||||
|
||||
return yml
|
||||
}
|
||||
|
||||
func passesMinimumRequirements(yamlText []byte) string {
|
||||
yml := getKeysFromYaml(yamlText)
|
||||
|
||||
// Check for Team name
|
||||
if len(yml.TeamName) <= 0 {
|
||||
return "team-name"
|
||||
|
@ -14,3 +14,19 @@ func TestVerifyTideliftYamlExists(t *testing.T) {
|
||||
assert.True(t, verifiedTrue, "should be a .tidelift.yml in test/bad_config")
|
||||
|
||||
}
|
||||
|
||||
func TestPassesMinimumRequirements(t *testing.T) {
|
||||
missingTeam := []byte("")
|
||||
assert.Equal(t, "team-name", passesMinimumRequirements(missingTeam), "should be `team-name`")
|
||||
|
||||
missingRepo := []byte("team-name: teamname")
|
||||
assert.Equal(t, "repository-name", passesMinimumRequirements(missingRepo), "should be `repository-name`")
|
||||
|
||||
ok := []byte("team-name: teamname\nrepository-name: repo")
|
||||
assert.Equal(t, "", passesMinimumRequirements(ok), "should be ``")
|
||||
}
|
||||
|
||||
func TestReadTideliftYamlFile(t *testing.T) {
|
||||
yamlFile := string(readTideliftYamlFile("test/good_config"))
|
||||
assert.Equal(t, "team-name: tidelift\nrepository-name: fake\n", yamlFile, "should have parsed")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user