71 lines
1.7 KiB
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)
|
|
}
|
|
}
|