Diff
1diff --git a/server/daemon_test.go b/server/daemon_test.go
2index 1e324dbb8387d9d1b291ce6d95aeef5c4f9903fe..4b5899ddd33341be670bb1426071e270713ca4c9 100644
3--- a/server/daemon_test.go
4+++ b/server/daemon_test.go
5@@ -10,7 +10,6 @@ import (
6 "os"
7 "strings"
8 "testing"
9- "time"
10
11 "github.com/charmbracelet/soft-serve/server/backend/sqlite"
12 "github.com/charmbracelet/soft-serve/server/config"
13@@ -53,6 +52,7 @@ func TestMain(m *testing.M) {
14 os.Unsetenv("SOFT_SERVE_GIT_IDLE_TIMEOUT")
15 os.Unsetenv("SOFT_SERVE_GIT_LISTEN_ADDR")
16 _ = d.Close()
17+ _ = fb.Close()
18 os.Exit(code)
19 }
20
21@@ -61,12 +61,11 @@ func TestIdleTimeout(t *testing.T) {
22 if err != nil {
23 t.Fatal(err)
24 }
25- time.Sleep(2 * time.Second)
26 out, err := readPktline(c)
27 if err != nil && !errors.Is(err, io.EOF) {
28 t.Fatalf("expected nil, got error: %v", err)
29 }
30- if out != ErrTimeout.Error() {
31+ if out != ErrTimeout.Error() || out == "" {
32 t.Fatalf("expected %q error, got %q", ErrTimeout, out)
33 }
34 }
35diff --git a/server/session_test.go b/server/session_test.go
36index 1e5b74fdbe90ec481535128de427750f8f34873c..56c0b59efc3872bf3e2b2c22f2cb335af61a3720 100644
37--- a/server/session_test.go
38+++ b/server/session_test.go
39@@ -21,9 +21,10 @@ import (
40 func TestSession(t *testing.T) {
41 is := is.New(t)
42 t.Run("authorized repo access", func(t *testing.T) {
43- s := setup(t)
44+ t.Log("setting up")
45+ s, close := setup(t)
46 s.Stderr = os.Stderr
47- defer s.Close()
48+ t.Log("requesting pty")
49 err := s.RequestPty("xterm", 80, 40, nil)
50 is.NoErr(err)
51 go func() {
52@@ -32,13 +33,16 @@ func TestSession(t *testing.T) {
53 // FIXME: exit with code 0 instead of forcibly closing the session
54 s.Close()
55 }()
56- err = s.Run("test")
57+ t.Log("waiting for session to exit")
58+ _, err = s.Output("test")
59 var ee *gossh.ExitMissingError
60 is.True(errors.As(err, &ee))
61+ t.Log("session exited")
62+ _ = close()
63 })
64 }
65
66-func setup(tb testing.TB) *gossh.Session {
67+func setup(tb testing.TB) (*gossh.Session, func() error) {
68 tb.Helper()
69 is := is.New(tb)
70 dp := tb.TempDir()
71@@ -60,9 +64,10 @@ func setup(tb testing.TB) *gossh.Session {
72 return testsession.New(tb, &ssh.Server{
73 Handler: bm.MiddlewareWithProgramHandler(SessionHandler(cfg), termenv.ANSI256)(func(s ssh.Session) {
74 _, _, active := s.Pty()
75- tb.Logf("PTY active %v", active)
76- tb.Log(s.Command())
77+ if !active {
78+ os.Exit(1)
79+ }
80 s.Exit(0)
81 }),
82- }, nil)
83+ }, nil), fb.Close
84 }