GitRepositoryManager/internal/config/cmd_test.go
Mikołaj Pęczkowski 5445ce1ccf Restructure project directories
Follow the standard of all go projects
2024-01-13 15:39:40 +01:00

84 lines
2.1 KiB
Go

package config
import (
"fmt"
"os"
"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) {
// 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)
}
if err.Error() != errNoCommand {
t.Errorf("Expected to get \"%v\", instead of this got \"%v\"", errNoCommand, err.Error())
}
}
func TestParsingNothingProvided(t *testing.T) {
// 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)
}
}
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())
}
}