diff --git a/.env.test b/.env.test index 11eb2a1..fde7f84 100644 --- a/.env.test +++ b/.env.test @@ -7,6 +7,10 @@ GRPC_PORT=8081 YOOMONEY_STORE_ID=storeid YOOMONEY_SECRET_KEY=secret +IS_MOCK=true +MOCK_SERVICE_HOST=http://treasurer-mock:8080 +YOOMONEY_WEBHOOKS_URL=http://treasurer-mock:8080/webhooks +YOOMONEY_PAYMENTS_URL=http://treasurer-mock:8080/payments MONGO_HOST=mongo MONGO_PORT=27017 diff --git a/internal/app/app.go b/internal/app/app.go index caf1d3e..f2d5bb8 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -2,6 +2,7 @@ package app import ( "context" + "errors" "fmt" "time" @@ -19,7 +20,14 @@ const ( shutdownTimeout = 5 * time.Second ) -func Run(ctx context.Context, config *models.Config, logger *zap.Logger) error { +func Run(ctx context.Context, config *models.Config, logger *zap.Logger) (appErr error) { + defer func() { + if recovered := recover(); recovered != nil { + appErr = errors.New("recovered panic on application run") + logger.Error("recovered panic on application run", zap.Any("recovered", recovered)) + } + }() + mongoDB, connectionErr := mongo.Connect(ctx, &mongo.ConnectDeps{ Configuration: &config.Database, Timeout: 10 * time.Second, @@ -56,6 +64,7 @@ func Run(ctx context.Context, config *models.Config, logger *zap.Logger) error { Repositories: *repositories, Clients: *clients, ConfigurationHTTP: &config.HTTP, + Configuration: &config.Service, }) if err != nil { return err.Wrap("failed to initialize services") @@ -93,9 +102,7 @@ func Run(ctx context.Context, config *models.Config, logger *zap.Logger) error { httpServer.Register(api) - grpcServer, err := server.NewGRPC(server.DepsGRPC{ - Logger: logger, - }) + grpcServer, err := server.NewGRPC(server.DepsGRPC{Logger: logger}) if err != nil { return err.Wrap("failed to initialize grpc server") }