Pulse/pkg/pulsecli/mock_test.go
2026-03-18 16:06:30 +00:00

49 lines
1.2 KiB
Go

package pulsecli
import (
"os"
"path/filepath"
"testing"
"github.com/rcourtman/pulse-go-rewrite/internal/config"
)
func TestGetMockEnvPathUsesDataDir(t *testing.T) {
dir := t.TempDir()
t.Setenv("PULSE_DATA_DIR", dir)
if got := GetMockEnvPath(&MockDeps{}); got != filepath.Join(dir, ".env") {
t.Fatalf("GetMockEnvPath() = %q", got)
}
}
func TestGetMockEnvPathFallsBackToDefaultDir(t *testing.T) {
t.Setenv("PULSE_DATA_DIR", "")
defaultDir := t.TempDir()
mock := &MockDeps{
DefaultEnvDir: func() string { return defaultDir },
Stat: os.Stat,
}
if err := os.WriteFile(filepath.Join(defaultDir, ".env"), []byte("PULSE_MOCK_MODE=false\n"), 0o644); err != nil {
t.Fatalf("WriteFile: %v", err)
}
if got := GetMockEnvPath(mock); got != filepath.Join(defaultDir, ".env") {
t.Fatalf("GetMockEnvPath() = %q", got)
}
}
func TestGetMockEnvPathFallsBackToDefaultDirWithoutFile(t *testing.T) {
t.Setenv("PULSE_DATA_DIR", "")
defaultDir := filepath.Join(t.TempDir(), "missing-dir")
mock := &MockDeps{
DefaultEnvDir: func() string { return defaultDir },
Stat: os.Stat,
}
if got := GetMockEnvPath(mock); got != filepath.Join(config.ResolveRuntimeDataDir(""), ".env") {
t.Fatalf("GetMockEnvPath() = %q", got)
}
}