diff --git a/internal/app/bridge.go b/internal/app/bridge.go index 6ce1f0d3..d174f544 100644 --- a/internal/app/bridge.go +++ b/internal/app/bridge.go @@ -109,12 +109,8 @@ func withBridge( //nolint:funlen return fmt.Errorf("could not create bridge: %w", err) } - // Close the bridge when we exit. - defer func() { - if err := bridge.Close(c.Context); err != nil { - logrus.WithError(err).Error("Failed to close bridge") - } - }() + // Ensure we close bridge when we exit. + defer bridge.Close(c.Context) return fn(bridge, eventCh) } diff --git a/internal/bridge/bridge.go b/internal/bridge/bridge.go index 87ce3efa..21262186 100644 --- a/internal/bridge/bridge.go +++ b/internal/bridge/bridge.go @@ -347,7 +347,7 @@ func (bridge *Bridge) GetErrors() []error { return bridge.errors } -func (bridge *Bridge) Close(ctx context.Context) error { +func (bridge *Bridge) Close(ctx context.Context) { // Close the IMAP server. if err := bridge.closeIMAP(ctx); err != nil { logrus.WithError(err).Error("Failed to close IMAP server") @@ -385,8 +385,6 @@ func (bridge *Bridge) Close(ctx context.Context) error { if err := bridge.vault.SetLastVersion(bridge.curVersion); err != nil { logrus.WithError(err).Error("Failed to save last version") } - - return nil } func (bridge *Bridge) publish(event events.Event) { diff --git a/internal/bridge/bridge_test.go b/internal/bridge/bridge_test.go index 62752e89..23c12090 100644 --- a/internal/bridge/bridge_test.go +++ b/internal/bridge/bridge_test.go @@ -460,7 +460,7 @@ func withBridge( require.NoError(t, bridge.SetSMTPPort(0)) // Close the bridge when done. - defer func() { require.NoError(t, bridge.Close(ctx)) }() + defer bridge.Close(ctx) // Use the bridge. tests(bridge, mocks) diff --git a/tests/ctx_bridge_test.go b/tests/ctx_bridge_test.go index c5236074..a4fbd6d6 100644 --- a/tests/ctx_bridge_test.go +++ b/tests/ctx_bridge_test.go @@ -106,10 +106,12 @@ func (t *testCtx) startBridge() error { } func (t *testCtx) stopBridge() error { - if err := t.bridge.Close(context.Background()); err != nil { - return err + if t.bridge == nil { + return fmt.Errorf("bridge is not running") } + t.bridge.Close(context.Background()) + t.bridge = nil return nil diff --git a/tests/ctx_test.go b/tests/ctx_test.go index 89f32040..9c3eb81b 100644 --- a/tests/ctx_test.go +++ b/tests/ctx_test.go @@ -261,9 +261,7 @@ func (t *testCtx) close(ctx context.Context) error { } if t.bridge != nil { - if err := t.bridge.Close(ctx); err != nil { - return err - } + t.bridge.Close(ctx) } t.api.Close()