Wrote session dial tests. Use new helpers.
This commit is contained in:
@@ -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())
|
||||
|
||||
@@ -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")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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()
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user