config: add Dialer field to ConnectionConfig and PoolConfig with option constructors

This commit is contained in:
Jay
2026-05-26 14:17:58 -04:00
parent fac62c0675
commit 695389798e
4 changed files with 34 additions and 0 deletions
+9
View File
@@ -2,6 +2,7 @@ package honeybee
import (
"git.wisehodl.dev/jay/go-honeybee/transport"
"git.wisehodl.dev/jay/go-honeybee/types"
"time"
)
@@ -17,6 +18,7 @@ type PoolConfig struct {
ConnectionConfig transport.ConnectionConfig
WorkerFactory WorkerFactory
WorkerConfig WorkerConfig
Dialer types.Dialer
}
type PoolOption func(*PoolConfig) error
@@ -122,6 +124,13 @@ func WithWorkerConfig(wc WorkerConfig) PoolOption {
}
}
func WithPoolDialer(d types.Dialer) PoolOption {
return func(c *PoolConfig) error {
c.Dialer = d
return nil
}
}
func WithWorkerFactory(wf WorkerFactory) PoolOption {
return func(c *PoolConfig) error {
c.WorkerFactory = wf
+8
View File
@@ -1,6 +1,7 @@
package honeybee
import (
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
"git.wisehodl.dev/jay/go-honeybee/transport"
"github.com/stretchr/testify/assert"
"testing"
@@ -138,3 +139,10 @@ func TestValidatePoolConfig(t *testing.T) {
})
}
}
func TestWithPoolDialer(t *testing.T) {
mock := &honeybeetest.MockDialer{}
conf, err := NewPoolConfig(WithPoolDialer(mock))
assert.NoError(t, err)
assert.Equal(t, mock, conf.Dialer)
}
+9
View File
@@ -1,6 +1,7 @@
package transport
import (
"git.wisehodl.dev/jay/go-honeybee/types"
"net/http"
"time"
)
@@ -21,6 +22,7 @@ type ConnectionConfig struct {
IncomingBufferSize int
ErrorsBufferSize int
Retry RetryConfig
Dialer types.Dialer
}
type RetryConfig struct {
@@ -220,6 +222,13 @@ func WithErrorsBufferSize(value int) ConnectionOption {
}
}
func WithConnectionDialer(d types.Dialer) ConnectionOption {
return func(c *ConnectionConfig) error {
c.Dialer = d
return nil
}
}
func WithRetryDisabled() ConnectionOption {
return func(c *ConnectionConfig) error {
c.Retry.Disabled = true
+8
View File
@@ -1,6 +1,7 @@
package transport
import (
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
"github.com/stretchr/testify/assert"
"net/http"
"testing"
@@ -253,3 +254,10 @@ func TestValidateConnectionConfig(t *testing.T) {
})
}
}
func TestWithConnectionDialer(t *testing.T) {
mock := &honeybeetest.MockDialer{}
conf, err := NewConnectionConfig(WithConnectionDialer(mock))
assert.NoError(t, err)
assert.Equal(t, mock, conf.Dialer)
}