mirror of
https://github.com/jesseduffield/lazydocker.git
synced 2026-02-20 01:00:22 +08:00
99 lines
2.6 KiB
Go
99 lines
2.6 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/jesseduffield/yaml"
|
|
)
|
|
|
|
func TestDockerComposeCommandNoFiles(t *testing.T) {
|
|
composeFiles := []string{}
|
|
conf, err := NewAppConfig("name", "version", "commit", "date", "buildSource", false, composeFiles, "projectDir")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
actual := conf.UserConfig.CommandTemplates.DockerCompose
|
|
expected := "docker compose"
|
|
if actual != expected {
|
|
t.Fatalf("Expected %s but got %s", expected, actual)
|
|
}
|
|
}
|
|
|
|
func TestDockerComposeCommandSingleFile(t *testing.T) {
|
|
composeFiles := []string{"one.yml"}
|
|
conf, err := NewAppConfig("name", "version", "commit", "date", "buildSource", false, composeFiles, "projectDir")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
actual := conf.UserConfig.CommandTemplates.DockerCompose
|
|
expected := "docker compose -f one.yml"
|
|
if actual != expected {
|
|
t.Fatalf("Expected %s but got %s", expected, actual)
|
|
}
|
|
}
|
|
|
|
func TestDockerComposeCommandMultipleFiles(t *testing.T) {
|
|
composeFiles := []string{"one.yml", "two.yml", "three.yml"}
|
|
conf, err := NewAppConfig("name", "version", "commit", "date", "buildSource", false, composeFiles, "projectDir")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
actual := conf.UserConfig.CommandTemplates.DockerCompose
|
|
expected := "docker compose -f one.yml -f two.yml -f three.yml"
|
|
if actual != expected {
|
|
t.Fatalf("Expected %s but got %s", expected, actual)
|
|
}
|
|
}
|
|
|
|
func TestWritingToConfigFile(t *testing.T) {
|
|
// init the AppConfig
|
|
emptyComposeFiles := []string{}
|
|
conf, err := NewAppConfig("name", "version", "commit", "date", "buildSource", false, emptyComposeFiles, "projectDir")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
testFn := func(t *testing.T, ac *AppConfig, newValue bool) {
|
|
t.Helper()
|
|
updateFn := func(uc *UserConfig) error {
|
|
uc.ConfirmOnQuit = newValue
|
|
return nil
|
|
}
|
|
|
|
err = ac.WriteToUserConfig(updateFn)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
file, err := os.OpenFile(ac.ConfigFilename(), os.O_RDONLY, 0o660)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
sampleUC := UserConfig{}
|
|
err = yaml.NewDecoder(file).Decode(&sampleUC)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
err = file.Close()
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
if sampleUC.ConfirmOnQuit != newValue {
|
|
t.Fatalf("Got %v, Expected %v\n", sampleUC.ConfirmOnQuit, newValue)
|
|
}
|
|
}
|
|
|
|
// insert value into an empty file
|
|
testFn(t, conf, true)
|
|
|
|
// modifying an existing file that already has 'ConfirmOnQuit'
|
|
testFn(t, conf, false)
|
|
}
|