From 42e69ac82197fccfe60d81fb06c1fa034319b21f Mon Sep 17 00:00:00 2001 From: winhung Date: Thu, 25 Jul 2019 22:23:27 +0800 Subject: [PATCH] added test to increase coverage #31 --- pkg/config/app_config_test.go | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/pkg/config/app_config_test.go b/pkg/config/app_config_test.go index b6764493..4553920a 100644 --- a/pkg/config/app_config_test.go +++ b/pkg/config/app_config_test.go @@ -1,7 +1,10 @@ package config import ( + "os" "testing" + + "github.com/jesseduffield/yaml" ) func TestDockerComposeCommandNoFiles(t *testing.T) { @@ -48,3 +51,50 @@ func TestDockerComposeCommandMultipleFiles(t *testing.T) { 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(ac *AppConfig, newReportingValue string, t *testing.T) { + updateFn := func(uc *UserConfig) error { + uc.Reporting = newReportingValue + return nil + } + + err = ac.WriteToUserConfig(updateFn) + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + file, err := os.OpenFile(ac.ConfigFilename(), os.O_RDONLY, 0660) + 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.Reporting != newReportingValue { + t.Fatalf("Got %s, Expected %s\n", sampleUC.Reporting, newReportingValue) + } + } + + // insert value into an empty file + testFn(conf, "on", t) + + // modifying an existing file that already has 'Reporting' + testFn(conf, "off", t) +}