cbc155d5f1427bdcd4b43a1d1595f7c894998431

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

fix(test): increase git daemon test timeout & close db

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 }