Improve Add source/test reliability.
This commit is contained in:
4
pool.go
4
pool.go
@@ -113,6 +113,10 @@ func (p *Pool) Add(rawURL string) error {
|
|||||||
|
|
||||||
// Check for existing connection in pool
|
// Check for existing connection in pool
|
||||||
p.mu.Lock()
|
p.mu.Lock()
|
||||||
|
if p.closed {
|
||||||
|
p.mu.Unlock()
|
||||||
|
return errors.NewPoolError("pool is closed")
|
||||||
|
}
|
||||||
_, exists := p.connections[url]
|
_, exists := p.connections[url]
|
||||||
p.mu.Unlock()
|
p.mu.Unlock()
|
||||||
|
|
||||||
|
|||||||
15
pool_test.go
15
pool_test.go
@@ -25,13 +25,14 @@ func TestPoolAdd(t *testing.T) {
|
|||||||
err = pool.Add("wss://test")
|
err = pool.Add("wss://test")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
select {
|
assert.Eventually(t, func() bool {
|
||||||
case event := <-pool.events:
|
select {
|
||||||
assert.Equal(t, "wss://test", event.URL)
|
case event := <-pool.events:
|
||||||
assert.Equal(t, EventConnected, event.Kind)
|
return event.URL == "wss://test" && event.Kind == EventConnected
|
||||||
case <-time.After(100 * time.Millisecond):
|
default:
|
||||||
t.Fatal("timeout waiting for Connected event")
|
return false
|
||||||
}
|
}
|
||||||
|
}, testTimeout, testTick)
|
||||||
|
|
||||||
pool.Close()
|
pool.Close()
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user