From fc6e8a4eb2d3ed0610feab26ef13e278d6aa147a Mon Sep 17 00:00:00 2001
From: Garet Halliday <me@garet.holiday>
Date: Mon, 4 Dec 2023 16:52:09 -0600
Subject: [PATCH] use httptest

---
 contrib/extension/subscription/client_test.go | 46 ++++---------------
 1 file changed, 8 insertions(+), 38 deletions(-)

diff --git a/contrib/extension/subscription/client_test.go b/contrib/extension/subscription/client_test.go
index 4bf7f10..0f338c5 100644
--- a/contrib/extension/subscription/client_test.go
+++ b/contrib/extension/subscription/client_test.go
@@ -3,9 +3,9 @@ package subscription
 import (
 	"context"
 	"log"
-	"net"
-	"net/http"
+	"net/http/httptest"
 	_ "net/http/pprof"
+	"strings"
 	"testing"
 	"time"
 
@@ -17,10 +17,6 @@ import (
 )
 
 func TestSubscription(t *testing.T) {
-	go func() {
-		t.Error(http.ListenAndServe(":6060", nil))
-	}()
-
 	const count = 100
 
 	engine := NewEngine()
@@ -42,23 +38,10 @@ func TestSubscription(t *testing.T) {
 
 	srv := server.NewServer(r)
 	handler := codecs.WebsocketHandler(srv, []string{"*"})
-	httpSrv := http.Server{
-		Addr:    ":8855",
-		Handler: handler,
-	}
-	listener, err := net.Listen("tcp", ":8855")
-	if err != nil {
-		t.Error(err)
-		return
-	}
-	go func() {
-		if err := httpSrv.Serve(listener); err != nil {
-			t.Error(err)
-			return
-		}
-	}()
+	httpSrv := httptest.NewServer(handler)
 
-	cl, err := UpgradeConn(jrpc.Dial("ws://localhost:8855"))
+	wsURL := "ws:" + strings.TrimPrefix(httpSrv.URL, "http:")
+	cl, err := UpgradeConn(jrpc.Dial(wsURL))
 	if err != nil {
 		t.Error(err)
 		return
@@ -112,23 +95,10 @@ func TestWrapClient(t *testing.T) {
 	})
 	srv := server.NewServer(r)
 	handler := codecs.WebsocketHandler(srv, []string{"*"})
-	httpSrv := http.Server{
-		Addr:    ":8855",
-		Handler: handler,
-	}
-	listener, err := net.Listen("tcp", ":8855")
-	if err != nil {
-		t.Error(err)
-		return
-	}
-	go func() {
-		if err := httpSrv.Serve(listener); err != nil {
-			t.Error(err)
-			return
-		}
-	}()
+	httpSrv := httptest.NewServer(handler)
 
-	cl, err := UpgradeConn(jrpc.Dial("ws://localhost:8855"))
+	wsURL := "ws:" + strings.TrimPrefix(httpSrv.URL, "http:")
+	cl, err := UpgradeConn(jrpc.Dial(wsURL))
 	if err != nil {
 		t.Error(err)
 		return
-- 
GitLab