fix: make embedded NATS opt-in so tests don't hang
All checks were successful
CI / Build and Test (push) Successful in 31s

Move NATS startup from New() to Start(), so tests that don't use
pubsub never block on server initialization. Add a 10s timeout to
WaitForServer() and skip NATS tests gracefully when unavailable.
This commit is contained in:
Ryan Hamamura
2026-02-18 08:45:03 -10:00
parent 08b7dbd17f
commit 5d61149fa3
5 changed files with 49 additions and 25 deletions

View File

@@ -1,8 +1,9 @@
package via
// PubSub is an interface for publish/subscribe messaging backends.
// By default, New() starts an embedded NATS server. Supply a custom
// implementation via Config(Options{PubSub: yourBackend}) to override.
// By default, Start() launches an embedded NATS server if no backend
// has been configured. Supply a custom implementation via
// Config(Options{PubSub: yourBackend}) to override.
type PubSub interface {
Publish(subject string, data []byte) error
Subscribe(subject string, handler func(data []byte)) (Subscription, error)