summaryrefslogtreecommitdiff
path: root/cmd/hexai-lsp-server/main_test.go
blob: 9861f54cdab5cc73daf4f1fdb6fd6819720bc4c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"bytes"
	"log"
	"os"
	"path/filepath"
	"testing"
)

func TestMain_Version(t *testing.T) {
	oldArgs := os.Args
	defer func() { os.Args = oldArgs }()
	os.Args = []string{"hexai-lsp-server", "-version"}
	var buf bytes.Buffer
	old := log.Writer()
	log.SetOutput(&buf)
	defer log.SetOutput(old)
	main()
	if buf.Len() == 0 {
		t.Fatalf("expected version log")
	}
}

func TestDefaultLogPathFallsBackToTempDirOnStateDirFailure(t *testing.T) {
	stateHome := filepath.Join(t.TempDir(), "state-home-file")
	if err := os.WriteFile(stateHome, []byte("not-a-directory"), 0o644); err != nil {
		t.Fatalf("write state home marker: %v", err)
	}
	t.Setenv("XDG_STATE_HOME", stateHome)

	got := defaultLogPath()
	want := filepath.Join(os.TempDir(), "hexai-lsp-server.log")
	if got != want {
		t.Fatalf("expected temp-dir fallback %q, got %q", want, got)
	}
}