Skip to content

Commit 32b1142

Browse files
committed
fix: test sse
1 parent bf241cf commit 32b1142

File tree

2 files changed

+7
-49
lines changed

2 files changed

+7
-49
lines changed

pkg/sse/client_test.go

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,38 +56,25 @@ func TestSSEClient_Connect(t *testing.T) {
5656

5757
func TestSSEClient_Reconnect(t *testing.T) {
5858
port, _ := utils.GetAvailablePort()
59+
t.Log("use port", port)
5960
eventType := DefaultEventType
60-
ctx, cancel := context.WithCancel(context.Background())
61-
hub := NewHub(WithContext(ctx, cancel))
62-
go runSSEServer2(ctx, port, hub)
6361

6462
client := NewClient(fmt.Sprintf("http://localhost:%d/events", port), WithClientReconnectTimeInterval(time.Millisecond*100))
6563
client.OnEvent(eventType, func(event *Event) {
6664
t.Log("on event", event)
6765
})
6866
err := client.Connect()
6967
assert.NoError(t, err)
70-
time.Sleep(200 * time.Millisecond)
71-
72-
// expected connect is true
73-
assert.True(t, client.GetConnectStatus(), "Client should be connected")
68+
time.Sleep(300 * time.Millisecond)
7469

75-
// close sse server
76-
hub.Close()
77-
78-
time.Sleep(time.Millisecond * 300)
79-
// expected connect is false
80-
assert.False(t, client.GetConnectStatus(), "Client should be disconnected")
81-
82-
// run sse server again
83-
ctx, cancel = context.WithCancel(context.Background())
84-
hub = NewHub(WithContext(ctx, cancel))
85-
go runSSEServer2(ctx, port, hub)
70+
// run sse server
71+
ctx, cancel := context.WithCancel(context.Background())
72+
hub := NewHub(WithContext(ctx, cancel))
8673
defer hub.Close()
87-
_ = client.Connect()
74+
go runSSEServer(port, hub)
8875

8976
// wait for client to reconnect
90-
time.Sleep(2 * time.Second)
77+
time.Sleep(3 * time.Second)
9178

9279
// expected connect is true
9380
assert.True(t, client.GetConnectStatus(), "Client should be connected again")

pkg/sse/server_test.go

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package sse
22

33
import (
4-
"context"
54
"fmt"
6-
"net"
75
"net/http"
86
"strconv"
97
"testing"
@@ -29,33 +27,6 @@ func runSSEServer(port int, hub *Hub) {
2927
r.Run(":" + strconv.Itoa(port))
3028
}
3129

32-
func runSSEServer2(ctx context.Context, port int, hub *Hub) {
33-
gin.SetMode(gin.ReleaseMode)
34-
r := gin.New()
35-
count := 10000
36-
r.GET("/events", func(c *gin.Context) {
37-
count++
38-
uid := strconv.Itoa(count) // mock user id
39-
hub.Serve(c, uid)
40-
})
41-
42-
listener, err := net.Listen("tcp", ":"+strconv.Itoa(port))
43-
if err != nil {
44-
panic(err)
45-
}
46-
srv := &http.Server{Handler: r}
47-
48-
go func() {
49-
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
50-
panic(err)
51-
}
52-
}()
53-
54-
<-ctx.Done()
55-
_ = listener.Close()
56-
_ = srv.Shutdown(ctx)
57-
}
58-
5930
func TestServe(t *testing.T) {
6031
port, _ := utils.GetAvailablePort()
6132
eventType := DefaultEventType

0 commit comments

Comments
 (0)