fix: make embedded NATS opt-in so tests don't hang
All checks were successful
CI / Build and Test (push) Successful in 31s
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:
14
nats.go
14
nats.go
@@ -56,7 +56,19 @@ func startDefaultNATS() (dn *defaultNATS, err error) {
|
||||
os.RemoveAll(dataDir)
|
||||
return nil, fmt.Errorf("start embedded nats: %w", err)
|
||||
}
|
||||
ns.WaitForServer()
|
||||
ready := make(chan struct{})
|
||||
go func() {
|
||||
ns.WaitForServer()
|
||||
close(ready)
|
||||
}()
|
||||
select {
|
||||
case <-ready:
|
||||
case <-time.After(10 * time.Second):
|
||||
ns.Close()
|
||||
cancel()
|
||||
os.RemoveAll(dataDir)
|
||||
return nil, fmt.Errorf("embedded nats server did not start within 10s")
|
||||
}
|
||||
|
||||
nc, err := ns.Client()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user