github.com/terramate-io/tf@v0.0.0-20230830114523-fce866b4dfcd/command/workdir/plugin_dirs_test.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package workdir 5 6 import ( 7 "path/filepath" 8 "testing" 9 10 "github.com/google/go-cmp/cmp" 11 ) 12 13 func TestDirForcedPluginDirs(t *testing.T) { 14 tmpDir := t.TempDir() 15 16 dir := NewDir(tmpDir) 17 // We'll use the default convention of a data dir nested inside the 18 // working directory, so we don't need to override anything on "dir". 19 20 want := []string(nil) 21 got, err := dir.ForcedPluginDirs() 22 if err != nil { 23 t.Fatal(err) 24 } 25 if diff := cmp.Diff(want, got); diff != "" { 26 t.Errorf("wrong initial settings\n%s", diff) 27 } 28 29 fakeDir1 := filepath.Join(tmpDir, "boop1") 30 fakeDir2 := filepath.Join(tmpDir, "boop2") 31 err = dir.SetForcedPluginDirs([]string{fakeDir1, fakeDir2}) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 want = []string{fakeDir1, fakeDir2} 37 got, err = dir.ForcedPluginDirs() 38 if err != nil { 39 t.Fatal(err) 40 } 41 if diff := cmp.Diff(want, got); diff != "" { 42 t.Errorf("wrong updated settings\n%s", diff) 43 } 44 45 err = dir.SetForcedPluginDirs(nil) 46 if err != nil { 47 t.Fatal(err) 48 } 49 50 want = nil 51 got, err = dir.ForcedPluginDirs() 52 if err != nil { 53 t.Fatal(err) 54 } 55 if diff := cmp.Diff(want, got); diff != "" { 56 t.Errorf("wrong final settings, after reverting back to defaults\n%s", diff) 57 } 58 }