From 9ff00240d062ddfa7a26d0752381fedda09cb2de Mon Sep 17 00:00:00 2001 From: dhaus67 Date: Mon, 25 Nov 2024 01:49:47 +0100 Subject: [PATCH] fix: error types and introduce error types (#143) --- embedded_postgres.go | 13 +++++++++---- embedded_postgres_test.go | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/embedded_postgres.go b/embedded_postgres.go index fcf98d1..87bb427 100644 --- a/embedded_postgres.go +++ b/embedded_postgres.go @@ -14,6 +14,11 @@ import ( var mu sync.Mutex +var ( + ErrServerNotStarted = errors.New("server has not been started") + ErrServerAlreadyStarted = errors.New("server is already started") +) + // EmbeddedPostgres maintains all configuration and runtime functions for maintaining the lifecycle of one Postgres process. type EmbeddedPostgres struct { config Config @@ -63,7 +68,7 @@ func newDatabaseWithConfig(config Config) *EmbeddedPostgres { //nolint:funlen func (ep *EmbeddedPostgres) Start() error { if ep.started { - return errors.New("server is already started") + return ErrServerAlreadyStarted } if err := ensurePortAvailable(ep.config.port); err != nil { @@ -124,7 +129,7 @@ func (ep *EmbeddedPostgres) Start() error { if !reuseData { if err := ep.createDatabase(ep.config.port, ep.config.username, ep.config.password, ep.config.database); err != nil { if stopErr := stopPostgres(ep); stopErr != nil { - return fmt.Errorf("unable to stop database casused by error %s", err) + return fmt.Errorf("unable to stop database caused by error %s", err) } return err @@ -133,7 +138,7 @@ func (ep *EmbeddedPostgres) Start() error { if err := healthCheckDatabaseOrTimeout(ep.config); err != nil { if stopErr := stopPostgres(ep); stopErr != nil { - return fmt.Errorf("unable to stop database casused by error %s", err) + return fmt.Errorf("unable to stop database caused by error %s", err) } return err @@ -177,7 +182,7 @@ func (ep *EmbeddedPostgres) cleanDataDirectoryAndInit() error { // Stop will try to stop the Postgres process gracefully returning an error when there were any problems. func (ep *EmbeddedPostgres) Stop() error { if !ep.started { - return errors.New("server has not been started") + return ErrServerNotStarted } if err := stopPostgres(ep); err != nil { diff --git a/embedded_postgres_test.go b/embedded_postgres_test.go index a6b4bd2..e7e98b3 100644 --- a/embedded_postgres_test.go +++ b/embedded_postgres_test.go @@ -190,7 +190,7 @@ func Test_ErrorWhenStopCalledBeforeStart(t *testing.T) { err := database.Stop() - assert.EqualError(t, err, "server has not been started") + assert.ErrorIs(t, err, ErrServerNotStarted) } func Test_ErrorWhenStartCalledWhenAlreadyStarted(t *testing.T) { @@ -206,7 +206,7 @@ func Test_ErrorWhenStartCalledWhenAlreadyStarted(t *testing.T) { assert.NoError(t, err) err = database.Start() - assert.EqualError(t, err, "server is already started") + assert.ErrorIs(t, err, ErrServerAlreadyStarted) } func Test_ErrorWhenCannotStartPostgresProcess(t *testing.T) {