Files
iris-context/integration/history_atuin_test.go

71 lines
1.7 KiB
Go

package integration
import (
"testing"
"github.com/versenilvis/iris/internal/config"
)
func TestSearchHistory_AtuinSourceMapping(t *testing.T) {
originalConfig := config.Get()
cfg := config.DefaultConfig()
cfg.Core.Atuin = 2
cfg.Core.AtuinDBPath = "/tmp/does-not-exist.db"
config.Init(cfg)
sessionHistoryMu.Lock()
origSessionHistory := sessionHistory
sessionHistory = []string{"npm run build", "ls -l"}
sessionHistoryMu.Unlock()
mu.Lock()
origHistoryCache := historyCache
origAtuinCmds := atuinCmds
origAtuinEntries := atuinEntries
origAtuinLastMod := atuinLastMod
origLastAtuinMode := lastAtuinMode
historyCache = nil
atuinCmds = []string{"git push", "ls -l"}
mu.Unlock()
t.Cleanup(func() {
config.Init(originalConfig)
sessionHistoryMu.Lock()
sessionHistory = origSessionHistory
sessionHistoryMu.Unlock()
mu.Lock()
historyCache = origHistoryCache
atuinCmds = origAtuinCmds
atuinEntries = origAtuinEntries
atuinLastMod = origAtuinLastMod
lastAtuinMode = origLastAtuinMode
mu.Unlock()
})
results, err := SearchHistory("", nil)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(results) < 3 {
t.Fatalf("expected at least 3 results, got %d", len(results))
}
sourceMap := make(map[string]string)
for _, r := range results {
sourceMap[r.Cmd] = r.Source
}
if source := sourceMap["ls -l"]; source != "atuin" {
t.Errorf("expected 'ls -l' to have source 'atuin', got %q", source)
}
if source := sourceMap["npm run build"]; source != "session" {
t.Errorf("expected 'npm run build' to have source 'session', got %q", source)
}
if source := sourceMap["git push"]; source != "atuin" {
t.Errorf("expected 'git push' to have source 'atuin', got %q", source)
}
}