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 ( import (
"git.wisehodl.dev/jay/go-honeybee/transport" "git.wisehodl.dev/jay/go-honeybee/transport"
"git.wisehodl.dev/jay/go-honeybee/types"
"time" "time"
) )
@@ -17,6 +18,7 @@ type PoolConfig struct {
ConnectionConfig transport.ConnectionConfig ConnectionConfig transport.ConnectionConfig
WorkerFactory WorkerFactory WorkerFactory WorkerFactory
WorkerConfig WorkerConfig WorkerConfig WorkerConfig
Dialer types.Dialer
} }
type PoolOption func(*PoolConfig) error 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 { func WithWorkerFactory(wf WorkerFactory) PoolOption {
return func(c *PoolConfig) error { return func(c *PoolConfig) error {
c.WorkerFactory = wf c.WorkerFactory = wf
+8
View File
@@ -1,6 +1,7 @@
package honeybee package honeybee
import ( import (
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
"git.wisehodl.dev/jay/go-honeybee/transport" "git.wisehodl.dev/jay/go-honeybee/transport"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"testing" "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 package transport
import ( import (
"git.wisehodl.dev/jay/go-honeybee/types"
"net/http" "net/http"
"time" "time"
) )
@@ -21,6 +22,7 @@ type ConnectionConfig struct {
IncomingBufferSize int IncomingBufferSize int
ErrorsBufferSize int ErrorsBufferSize int
Retry RetryConfig Retry RetryConfig
Dialer types.Dialer
} }
type RetryConfig struct { 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 { func WithRetryDisabled() ConnectionOption {
return func(c *ConnectionConfig) error { return func(c *ConnectionConfig) error {
c.Retry.Disabled = true c.Retry.Disabled = true
+8
View File
@@ -1,6 +1,7 @@
package transport package transport
import ( import (
"git.wisehodl.dev/jay/go-honeybee/honeybeetest"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"net/http" "net/http"
"testing" "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)
}