Wrote session dial tests. Use new helpers.

This commit is contained in:
Jay
2026-04-19 09:58:41 -04:00
parent 6998ccf701
commit 45b1a31cbb
9 changed files with 175 additions and 91 deletions
+2 -2
View File
@@ -87,14 +87,14 @@ func TestConnectedConnectionClose(t *testing.T) {
incomingData <- honeybeetest.MockIncomingData{
MsgType: websocket.TextMessage, Data: canary}
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
select {
case msg := <-conn.Incoming():
return bytes.Equal(msg, canary)
default:
return false
}
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected canary message")
conn.Close()
assert.Equal(t, StateClosed, conn.State())
+2 -2
View File
@@ -69,8 +69,8 @@ func TestStartReader(t *testing.T) {
conn, err := NewConnectionFromSocket(mockSocket, nil, nil)
assert.NoError(t, err)
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return conn.State() == StateClosed
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected closed state")
})
}
+8 -11
View File
@@ -83,12 +83,11 @@ func TestConnectionSend(t *testing.T) {
wg.Wait()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
mu.Lock()
defer mu.Unlock()
return len(messages) == 50
}, honeybeetest.TestTimeout, honeybeetest.TestTick,
"should have received 50 messages")
}, "should have received 50 messages")
})
@@ -137,15 +136,14 @@ func TestConnectionSend(t *testing.T) {
err = conn.Send([]byte("test"))
assert.NoError(t, err)
assert.Never(t, func() bool {
honeybeetest.Never(t, func() bool {
select {
case <-deadlineCalled:
return true
default:
return false
}
}, honeybeetest.NegativeTestTimeout, honeybeetest.TestTick,
"SetWriteDeadline should not be called when timeout is zero")
}, "SetWriteDeadline should not be called when timeout is zero")
})
t.Run("write timeout sets deadline when positive", func(t *testing.T) {
@@ -184,15 +182,14 @@ func TestConnectionSend(t *testing.T) {
err = conn.Send([]byte("test"))
assert.NoError(t, err)
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
select {
case <-deadlineCalled:
return true
default:
return false
}
}, honeybeetest.TestTimeout, honeybeetest.TestTick,
"SetWriteDeadline should be called when timeout is positive")
}, "SetWriteDeadline should be called when timeout is positive")
})
t.Run("send fails on deadline error", func(t *testing.T) {
@@ -218,9 +215,9 @@ func TestConnectionSend(t *testing.T) {
err = conn.Send([]byte("test"))
assert.ErrorContains(t, err, "failed to set write deadline: test error")
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return conn.State() == StateClosed
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected closed state")
})
t.Run("send fails on socket write error", func(t *testing.T) {
+4 -4
View File
@@ -283,14 +283,14 @@ func TestConnect(t *testing.T) {
testData := []byte("test")
conn.Send(testData)
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
select {
case msg := <-outgoingData:
return bytes.Equal(msg.Data, testData)
default:
return false
}
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected message")
conn.Close()
})
@@ -433,9 +433,9 @@ func TestConnectContextCancellation(t *testing.T) {
}()
// wait for first dial
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return dialCount.Load() >= 1
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected dial")
cancel()
select {
+14 -14
View File
@@ -273,10 +273,10 @@ func TestCloseLogging(t *testing.T) {
conn.Close()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelInfo, "closed") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
records := mockHandler.GetRecords()
@@ -303,10 +303,10 @@ func TestCloseLogging(t *testing.T) {
conn.Close()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelError, "socket close failed") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
records := mockHandler.GetRecords()
@@ -336,10 +336,10 @@ func TestReaderLogging(t *testing.T) {
assert.NoError(t, err)
defer conn.Close()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelInfo, "connection closed by peer") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
record := findLogRecord(mockHandler.GetRecords(), slog.LevelInfo, "connection closed by peer")
assert.NotNil(t, record)
@@ -364,10 +364,10 @@ func TestReaderLogging(t *testing.T) {
assert.NoError(t, err)
defer conn.Close()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelError, "unexpected close") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
record := findLogRecord(mockHandler.GetRecords(), slog.LevelError, "unexpected close")
assert.NotNil(t, record)
@@ -389,10 +389,10 @@ func TestReaderLogging(t *testing.T) {
assert.NoError(t, err)
defer conn.Close()
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelError, "read error") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
})
}
@@ -415,10 +415,10 @@ func TestWriterLogging(t *testing.T) {
err = conn.Send([]byte("test"))
assert.ErrorContains(t, err, "failed to set write deadline: deadline error")
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelError, "write deadline error") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
records := mockHandler.GetRecords()
@@ -445,10 +445,10 @@ func TestWriterLogging(t *testing.T) {
err = conn.Send([]byte("test"))
assert.ErrorContains(t, err, "write error")
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return findLogRecord(
mockHandler.GetRecords(), slog.LevelError, "write error") != nil
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected log")
records := mockHandler.GetRecords()
+2 -2
View File
@@ -200,9 +200,9 @@ func TestAcquireSocketContextCancellation(t *testing.T) {
}()
// wait for first two dials to complete, then cancel during sleep
assert.Eventually(t, func() bool {
honeybeetest.Eventually(t, func() bool {
return dialCount.Load() > 1
}, honeybeetest.TestTimeout, honeybeetest.TestTick)
}, "expected dials")
cancel()
select {