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  }