github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/store/storetest/dir.go (about)

     1  package storetest
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/markusbkk/elvish/pkg/store"
     8  	"github.com/markusbkk/elvish/pkg/store/storedefs"
     9  )
    10  
    11  var (
    12  	dirsToAdd  = []string{"/usr/local", "/usr", "/usr/bin", "/usr"}
    13  	black      = map[string]struct{}{"/usr/local": {}}
    14  	wantedDirs = []storedefs.Dir{
    15  		{
    16  			Path:  "/usr",
    17  			Score: store.DirScoreIncrement*store.DirScoreDecay*store.DirScoreDecay + store.DirScoreIncrement,
    18  		},
    19  		{
    20  			Path:  "/usr/bin",
    21  			Score: store.DirScoreIncrement * store.DirScoreDecay,
    22  		},
    23  	}
    24  	dirToDel           = "/usr"
    25  	wantedDirsAfterDel = []storedefs.Dir{
    26  		{
    27  			Path:  "/usr/bin",
    28  			Score: store.DirScoreIncrement * store.DirScoreDecay,
    29  		},
    30  	}
    31  )
    32  
    33  // TestDir tests the directory history functionality of a Store.
    34  func TestDir(t *testing.T, tStore storedefs.Store) {
    35  	for _, path := range dirsToAdd {
    36  		err := tStore.AddDir(path, 1)
    37  		if err != nil {
    38  			t.Errorf("tStore.AddDir(%q) => %v, want <nil>", path, err)
    39  		}
    40  	}
    41  
    42  	dirs, err := tStore.Dirs(black)
    43  	if err != nil || !reflect.DeepEqual(dirs, wantedDirs) {
    44  		t.Errorf(`tStore.ListDirs() => (%v, %v), want (%v, <nil>)`,
    45  			dirs, err, wantedDirs)
    46  	}
    47  
    48  	tStore.DelDir(dirToDel)
    49  	dirs, err = tStore.Dirs(black)
    50  	if err != nil || !reflect.DeepEqual(dirs, wantedDirsAfterDel) {
    51  		t.Errorf(`After DelDir("/usr"), tStore.ListDirs() => (%v, %v), want (%v, <nil>)`,
    52  			dirs, err, wantedDirsAfterDel)
    53  	}
    54  }