okami.mom/albedo

git clone https://git.nkp.pet/okami.mom/albedo

Aly Raffauffeat(api)!: migrate daemon and clients to protocol 361c43ca

main
1.0 KiB38 linesraw
1package daemon
2
3import (
4	"albedo/cli/internal/testwire"
5	"net"
6	"net/http"
7	"net/http/httptest"
8	"testing"
9)
10
11const generationA = testwire.GenerationA
12const generationB = testwire.GenerationB
13
14var canonicalSession = testwire.Session
15var canonicalInput = testwire.Input
16var canonicalEvent = testwire.Event
17var canonicalText = testwire.Text
18var writeBatch = testwire.WriteBatch
19var writeInitialStream = testwire.InitialStream
20var canonicalProgress = testwire.Progress
21
22func controlledConnection(t *testing.T, handler http.HandlerFunc) *Connection {
23	t.Helper()
24	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
25		if r.URL.Path == "/server" {
26			_, _ = w.Write([]byte(testwire.Server))
27			return
28		}
29		handler(w, r)
30	}))
31	t.Cleanup(server.Close)
32	conn, err := Attach(t.Context(), ConnectionSnapshot{Port: server.Listener.Addr().(*net.TCPAddr).Port, Token: "token", Version: ProtocolVersion}, nil)
33	if err != nil {
34		t.Fatal(err)
35	}
36	t.Cleanup(conn.HTTPClient().CloseIdleConnections)
37	return conn
38}