github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/util/configv3/config_windows_test.go (about) 1 //go:build windows 2 // +build windows 3 4 package configv3_test 5 6 import ( 7 "fmt" 8 "os" 9 "path/filepath" 10 11 . "code.cloudfoundry.org/cli/util/configv3" 12 13 . "github.com/onsi/ginkgo" 14 . "github.com/onsi/ginkgo/extensions/table" 15 . "github.com/onsi/gomega" 16 ) 17 18 var _ = Describe("Verbose", func() { 19 var homeDir string 20 21 BeforeEach(func() { 22 homeDir = setup() 23 }) 24 25 AfterEach(func() { 26 teardown(homeDir) 27 }) 28 29 DescribeTable("absolute paths", 30 func(env string, configTrace string, flag bool, expected bool, location []string) { 31 rawConfig := fmt.Sprintf(`{ "Trace":"%s", "ConfigVersion": %d }`, configTrace, CurrentConfigVersion) 32 setConfig(homeDir, rawConfig) 33 34 defer os.Unsetenv("CF_TRACE") 35 if env == "" { 36 Expect(os.Unsetenv("CF_TRACE")).ToNot(HaveOccurred()) 37 } else { 38 Expect(os.Setenv("CF_TRACE", env)).ToNot(HaveOccurred()) 39 } 40 41 config, err := LoadConfig(FlagOverride{ 42 Verbose: flag, 43 }) 44 Expect(err).ToNot(HaveOccurred()) 45 Expect(config).ToNot(BeNil()) 46 47 verbose, parsedLocation := config.Verbose() 48 Expect(verbose).To(Equal(expected)) 49 Expect(parsedLocation).To(Equal(location)) 50 }, 51 52 Entry("CF_TRACE true: enables verbose", "true", "", false, true, nil), 53 Entry("CF_TRACE true, config trace false: enables verbose", "true", "false", false, true, nil), 54 Entry("CF_TRACE true, config trace file path: enables verbose AND logging to file", "true", "C:\\\\foo\\\\bar", false, true, []string{"C:\\foo\\bar"}), 55 56 Entry("CF_TRACE false: disables verbose", "false", "", false, false, nil), 57 Entry("CF_TRACE false, '-v': enables verbose", "false", "", true, true, nil), 58 Entry("CF_TRACE false, config trace true: disables verbose", "false", "true", false, false, nil), 59 Entry("CF_TRACE false, config trace file path: enables logging to file", "false", "C:\\\\foo\\\\bar", false, false, []string{"C:\\foo\\bar"}), 60 Entry("CF_TRACE false, config trace file path, '-v': enables verbose AND logging to file", "false", "C:\\\\foo\\\\bar", true, true, []string{"C:\\foo\\bar"}), 61 62 Entry("CF_TRACE empty: disables verbose", "", "", false, false, nil), 63 Entry("CF_TRACE empty:, '-v': enables verbose", "", "", true, true, nil), 64 Entry("CF_TRACE empty, config trace true: enables verbose", "", "true", false, true, nil), 65 Entry("CF_TRACE empty, config trace file path: enables logging to file", "", "C:\\\\foo\\\\bar", false, false, []string{"C:\\foo\\bar"}), 66 Entry("CF_TRACE empty, config trace file path, '-v': enables verbose AND logging to file", "", "C:\\\\foo\\\\bar", true, true, []string{"C:\\foo\\bar"}), 67 68 Entry("CF_TRACE filepath: enables logging to file", "C:\\foo\\bar", "", false, false, []string{"C:\\foo\\bar"}), 69 Entry("CF_TRACE filepath, '-v': enables logging to file", "C:\\foo\\bar", "", true, true, []string{"C:\\foo\\bar"}), 70 Entry("CF_TRACE filepath, config trace true: enables verbose AND logging to file", "C:\\foo\\bar", "true", false, true, []string{"C:\\foo\\bar"}), 71 Entry("CF_TRACE filepath, config trace filepath: enables logging to file for BOTH paths", "C:\\foo\\bar", "C:\\\\baz", false, false, []string{"C:\\foo\\bar", "C:\\baz"}), 72 Entry("CF_TRACE filepath, config trace filepath, '-v': enables verbose AND logging to file for BOTH paths", "C:\\foo\\bar", "C:\\\\baz", true, true, []string{"C:\\foo\\bar", "C:\\baz"}), 73 ) 74 75 Context("relative paths (cannot be tested in DescribeTable)", func() { 76 It("resolves relative paths into absolute paths", func() { 77 configTrace := "foo/bar" 78 rawConfig := fmt.Sprintf(`{ "Trace":"%s", "ConfigVersion": %d }`, configTrace, CurrentConfigVersion) 79 setConfig(homeDir, rawConfig) 80 81 cfTrace := "foo2\bar2" 82 Expect(os.Setenv("CF_TRACE", cfTrace)).ToNot(HaveOccurred()) 83 defer os.Unsetenv("CF_TRACE") 84 85 config, err := LoadConfig(FlagOverride{}) 86 Expect(err).ToNot(HaveOccurred()) 87 Expect(config).ToNot(BeNil()) 88 89 cwd, err := os.Getwd() 90 Expect(err).ToNot(HaveOccurred()) 91 _, parsedLocation := config.Verbose() 92 Expect(parsedLocation).To(Equal([]string{filepath.Join(cwd, cfTrace), filepath.Join(cwd, configTrace)})) 93 }) 94 }) 95 })