diff --git a/database/test.go b/database/test.go index 86f7892ca412dbd41844d019a65a519bd6c2d254_ZGF0YWJhc2UvdGVzdC5nbw==..9363ce22972fae5993e1538d91fae4bf08482c40_ZGF0YWJhc2UvdGVzdC5nbw== 100644 --- a/database/test.go +++ b/database/test.go @@ -129,8 +129,8 @@ } // Close the lock connection, then the database -func (db *TestDB) Close() error { +func (db *TestDB) Close() { if err := db.lockConn.Close(); err != nil { db.tb.Error("lockConn.Close() failed", err) } @@ -133,6 +133,8 @@ if err := db.lockConn.Close(); err != nil { db.tb.Error("lockConn.Close() failed", err) } - return db.DB.Close() + if err := db.DB.Close(); err != nil { + db.tb.Error("db.Close() failed", err) + } } diff --git a/templates/server/cmd.gotmpl b/templates/server/cmd.gotmpl index 86f7892ca412dbd41844d019a65a519bd6c2d254_dGVtcGxhdGVzL3NlcnZlci9jbWQuZ290bXBs..9363ce22972fae5993e1538d91fae4bf08482c40_dGVtcGxhdGVzL3NlcnZlci9jbWQuZ290bXBs 100644 --- a/templates/server/cmd.gotmpl +++ b/templates/server/cmd.gotmpl @@ -61,7 +61,9 @@ parser.NamespaceDelimiter = "-" parser.EnvNamespaceDelimiter = "_" parser.EnvNamespace = "CARNET" - parser.AddGroup("Configuration", "Configuration file", ConfigFileOption) + if _, err := parser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil { + panic(err) + } g, err := parser.AddGroup("Logging", "Logging options", LoggingOptions) if err != nil { panic(err) @@ -83,8 +85,10 @@ g.Namespace="sentry" g.EnvNamespace="SENTRY" - parser.AddCommand("generate-config", "Generate a configuration file", "", orusapi.NewGenerateConfigCmd(parser)) + if _, err := parser.AddCommand("generate-config", "Generate a configuration file", "", orusapi.NewGenerateConfigCmd(parser)); err != nil { + panic(err) + } bootstrapParser.NamespaceDelimiter = "-" bootstrapParser.EnvNamespaceDelimiter = "_" bootstrapParser.EnvNamespace = "CARNET" @@ -87,8 +91,10 @@ bootstrapParser.NamespaceDelimiter = "-" bootstrapParser.EnvNamespaceDelimiter = "_" bootstrapParser.EnvNamespace = "CARNET" - bootstrapParser.AddGroup("Configuration", "Configuration file", ConfigFileOption) + if _, err := bootstrapParser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil { + panic(err) + } g, err = bootstrapParser.AddGroup("Logging", "Logging options", LoggingOptions) if err != nil { panic(err) diff --git a/templates/server/cmdMigrate.gotmpl b/templates/server/cmdMigrate.gotmpl index 86f7892ca412dbd41844d019a65a519bd6c2d254_dGVtcGxhdGVzL3NlcnZlci9jbWRNaWdyYXRlLmdvdG1wbA==..9363ce22972fae5993e1538d91fae4bf08482c40_dGVtcGxhdGVzL3NlcnZlci9jbWRNaWdyYXRlLmdvdG1wbA== 100644 --- a/templates/server/cmdMigrate.gotmpl +++ b/templates/server/cmdMigrate.gotmpl @@ -3,4 +3,6 @@ package cmd import ( + "github.com/golang-migrate/migrate/v4" + "github.com/rs/zerolog" "orus.io/orus-io/go-orusapi/database" @@ -6,6 +8,4 @@ "orus.io/orus-io/go-orusapi/database" - "github.com/golang-migrate/migrate/v4/source" - bindata "github.com/golang-migrate/migrate/v4/source/go_bindata" "{{ joinFilePath .TargetImportPath "migration" }}" ) @@ -32,7 +32,16 @@ if err != nil { return fmt.Errorf("failed to init migration engine: %s", err) } - defer m.Close() + defer func() { + if sourceErr, databaseErr := m.Close(); sourceErr != nil || databaseErr != nil { + if sourceErr != nil { + log.Err(err).Msg("error closing Migrate source") + } + if databaseErr != nil { + log.Err(err).Msg("error closing Migrate database") + } + } + }() if err := m.Up(); err != nil { if err == migrate.ErrNoChange { diff --git a/testutils/defered_errcheck.go b/testutils/defered_errcheck.go new file mode 100644 index 0000000000000000000000000000000000000000..9363ce22972fae5993e1538d91fae4bf08482c40_dGVzdHV0aWxzL2RlZmVyZWRfZXJyY2hlY2suZ28= --- /dev/null +++ b/testutils/defered_errcheck.go @@ -0,0 +1,12 @@ +package testutils + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +// DeferedErrCheck ... +func DeferedErrCheck(tb testing.TB, cb func() error) { + assert.NoError(tb, cb()) +}