Artifact a40389a59347f0091a9dbddf9d3c65b1f2373b52a82165b1b82e3412cf375bca:
- File
leaf/agent/iroh_test.go
— part of check-in
[eda7960b81]
at
2026-04-23 19:23:42
on branch trunk
— rename module to github.com/danmestas/EdgeSync
Fix the case-sensitive module path to match the actual GitHub repo URL (danmestas/EdgeSync). Remove tracked leaf/leaf binary and ignore .claude/skills/ scratchpad dirs. (user: [email protected], size: 1623) [annotate] [blame] [check-ins using] [more...]
package agent import ( "context" "io" "net" "net/http" "path/filepath" "testing" ) func TestIrohTransportRoundTrip(t *testing.T) { // Start a mock sidecar HTTP server on a Unix socket. dir := t.TempDir() sock := filepath.Join(dir, "iroh.sock") listener, err := net.Listen("unix", sock) if err != nil { t.Fatalf("listen: %v", err) } defer listener.Close() // Mock sidecar: accept any POST to /exchange/*, echo back a canned response. cannedResp := []byte("mock-xfer-response-payload") mux := http.NewServeMux() mux.HandleFunc("/exchange/", func(w http.ResponseWriter, r *http.Request) { body, _ := io.ReadAll(r.Body) if len(body) == 0 { t.Errorf("mock sidecar: empty request body") w.WriteHeader(http.StatusBadRequest) return } w.WriteHeader(http.StatusOK) w.Write(cannedResp) }) srv := &http.Server{Handler: mux} go srv.Serve(listener) defer srv.Close() transport := NewIrohTransport(sock, "fake-endpoint-id-abc123") reqPayload := []byte("mock-xfer-request-payload") ctx := context.Background() resp, err := transport.RoundTrip(ctx, reqPayload) if err != nil { t.Fatalf("RoundTrip: %v", err) } if string(resp) != string(cannedResp) { t.Errorf("response = %q, want %q", resp, cannedResp) } } func TestIrohTransportSidecarDown(t *testing.T) { transport := NewIrohTransport("/tmp/iroh-nonexistent.sock", "fake-id") reqPayload := []byte("mock-xfer-request-payload") ctx := context.Background() _, err := transport.RoundTrip(ctx, reqPayload) if err == nil { t.Fatal("expected error when sidecar is down, got nil") } t.Logf("error (expected): %v", err) }