2021-11-02 18:19:31 +00:00
|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
2024-03-24 14:17:49 +00:00
|
|
|
"strings"
|
2021-11-02 18:19:31 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestGetDefaultConfigDir(t *testing.T) {
|
|
|
|
ud, _ := os.UserHomeDir()
|
|
|
|
|
|
|
|
desiredPath := fmt.Sprintf("%v/%v", ud, defaultConfigPath)
|
|
|
|
|
|
|
|
if getDefaultConfigDir() != desiredPath {
|
|
|
|
t.Errorf("Expected to get %v, instead of this got %v", desiredPath, getDefaultConfigDir())
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParsingDefaultArguments(t *testing.T) {
|
|
|
|
|
|
|
|
// First item in os.Args is appPath, this have to be mocked
|
|
|
|
fakeOSArgs := []string{"appName", "sync"}
|
|
|
|
|
|
|
|
parseResult, err := ParseCliArguments("", "", fakeOSArgs)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("Unexpected error %v", err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
if parseResult.ConfigurationFile != getDefaultConfigDir() {
|
|
|
|
t.Errorf("Default value for configurationFile should be %v, instead of this got %v", getDefaultConfigDir(), parseResult.ConfigurationFile)
|
|
|
|
}
|
|
|
|
|
|
|
|
if parseResult.Sync != true {
|
|
|
|
t.Errorf("Default value for configurationFile should be %v, instead of this got %v", true, parseResult.Sync)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParsingWithoutCommand(t *testing.T) {
|
|
|
|
|
2021-11-07 13:05:45 +00:00
|
|
|
// First item in os.Args is appPath, this have to be mocked
|
|
|
|
fakeOSArgs := []string{"appName", "--name", "test"}
|
|
|
|
|
|
|
|
results, err := ParseCliArguments("", "", fakeOSArgs)
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
t.Errorf("Expected error, not results: %v", results)
|
|
|
|
}
|
2024-03-24 14:17:49 +00:00
|
|
|
if !strings.Contains(err.Error(), "Please follow this help") {
|
|
|
|
t.Errorf("Expected the error contains \"Please follow this help\", but as a result received: \"%v\"", err.Error())
|
2021-11-07 13:05:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParsingNothingProvided(t *testing.T) {
|
|
|
|
|
2021-11-02 18:19:31 +00:00
|
|
|
// First item in os.Args is appPath, this have to be mocked
|
|
|
|
fakeOSArgs := []string{"appName"}
|
|
|
|
|
|
|
|
results, err := ParseCliArguments("", "", fakeOSArgs)
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
t.Errorf("Expected error, not results: %v", results)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2021-11-07 13:05:45 +00:00
|
|
|
func TestParsingNameAndTags(t *testing.T) {
|
|
|
|
|
|
|
|
// First item in os.Args is appPath, this have to be mocked
|
|
|
|
fakeOSArgs := []string{"appName", "status", "--tag", "example", "--name", "example"}
|
|
|
|
|
|
|
|
results, err := ParseCliArguments("", "", fakeOSArgs)
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
t.Errorf("Expected error, not results: %v", results)
|
|
|
|
}
|
|
|
|
|
|
|
|
if err.Error() != errNameAndTagsTogether {
|
|
|
|
t.Errorf("Expected to get \"%v\", instead of this got \"%v\"", errNameAndTagsTogether, err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|