@@ -114,7 +114,7 @@ func buildConnectionOptions(cfg config.ConnectionConfig) []grpc.ServerOption {
114114func Run (ctx context.Context , cfg * config.Config ) error {
115115 errCh := make (chan error )
116116
117- server , err := New (ctx , cfg )
117+ server , err := New (ctx , cfg , nil )
118118 if err != nil {
119119 return fmt .Errorf ("failed to create server: %w" , err )
120120 }
@@ -153,7 +153,7 @@ func configureOASFValidation(cfg *config.Config) error {
153153}
154154
155155//nolint:cyclop // This function has been at the limit; refactoring is out of scope.
156- func New (ctx context.Context , cfg * config.Config ) (* Server , error ) {
156+ func New (ctx context.Context , cfg * config.Config , databaseAPI types. DatabaseAPI ) (* Server , error ) {
157157 logger .Debug ("Creating server with config" , "config" , cfg , "version" , version .String ())
158158
159159 if err := configureOASFValidation (cfg ); err != nil {
@@ -227,9 +227,11 @@ func New(ctx context.Context, cfg *config.Config) (*Server, error) {
227227 return nil , fmt .Errorf ("failed to create routing: %w" , err )
228228 }
229229
230- databaseAPI , err := database .New (cfg .Database )
231- if err != nil {
232- return nil , fmt .Errorf ("failed to create database API: %w" , err )
230+ if databaseAPI == nil {
231+ databaseAPI , err = database .New (cfg .Database )
232+ if err != nil {
233+ return nil , fmt .Errorf ("failed to create database API: %w" , err )
234+ }
233235 }
234236
235237 // Create JWT authentication service if enabled
@@ -317,6 +319,8 @@ func New(ctx context.Context, cfg *config.Config) (*Server, error) {
317319 }, nil
318320}
319321
322+ func (s Server ) GrpcServer () * grpc.Server { return s .grpcServer }
323+
320324func (s Server ) Options () types.APIOptions { return s .options }
321325
322326func (s Server ) Store () types.StoreAPI { return s .store }
0 commit comments