package ircserver import ( "context" "log/slog" "net" "git.eeqj.de/sneak/neoirc/internal/broker" "git.eeqj.de/sneak/neoirc/internal/config" "git.eeqj.de/sneak/neoirc/internal/db" "git.eeqj.de/sneak/neoirc/internal/service" ) // NewTestServer creates a Server suitable for testing. // The caller must call Stop() when finished. func NewTestServer( log *slog.Logger, cfg *config.Config, database *db.Database, brk *broker.Broker, ) *Server { svc := &service.Service{ DB: database, Broker: brk, Config: cfg, Log: log, } return &Server{ //nolint:exhaustruct log: log, cfg: cfg, database: database, brk: brk, svc: svc, conns: make(map[*Conn]struct{}), } } // Start exposes the unexported start method for tests. func (s *Server) Start(addr string) error { return s.start(context.Background(), addr) } // Stop exposes the unexported stop method for tests. func (s *Server) Stop() { s.stop() } // Listener returns the server's net.Listener for tests. func (s *Server) Listener() net.Listener { return s.listener }